Hitting $60k MRR by building an SDK instead of an app

Anton Lavrenov, founder of Polotno

After years of building graphic design applications for big companies, Anton Lavrenov decided to build his own. But instead of going B2C and competing in a crowded market, he went B2B and built an SDK. Six years later, Polotno is bringing in $60k MRR.

Here's Anton on how he did it. 👇

For years, I built graphic design applications — essentially Canva-like apps — for companies. I kept thinking, "Why am I building these apps for someone else, when I could build it for myself and launch my own product?"

As a software developer, I knew I could build a good product. The problem was that I knew the marketing side would be impossible. The market was already super crowded. So for a long time, I did nothing with the idea.

But I had been maintaining Konva.js — an open-source, 2D canvas library — for many years. While engaging with that community on Discord and answering questions on GitHub and Stack Overflow, I noticed a pattern: Companies still needed editors for their own audiences. So, instead of building a product for end users (B2C), I decided to build a product for businesses and developers (B2B). This is how Polotno SDK began.

Today, Polotno is a JavaScript SDK that lets any company embed a white-label design editor into their app. We also have an API that generates images and videos at scale. It is fully bootstrapped and profitable, with a team of three. We have 200+ paying customers, and the editor is loaded around 2M times per month. We're currently at $60k MRR.

Polotno started in February 2020 as a true side project, which I built on evenings and weekends while working full-time. The first public website and docs went live that September.

I spent almost nothing, other than my own time. A full-time job paid the bills. Hosting and domain costs were minimal.

Konva.js provided the biggest help. After many years of maintaining it and building several editors for other companies using it, I already understood every canvas editor problem: text editing, transformations, export quality, and performance. Polotno was mostly me writing for myself what I had already written for other companies several times.

I used a simple stack: React, konva.js, mobx-state-tree for the store, and Blueprint.js for UI. These were all tools I already knew well. The code is entirely client-side JavaScript. Clients do their own hosting and deployment.

We built the first website using https://docusaurus.io/. It had almost no marketing pages, only docs. In 2023, my partner joined the project. As his main focus was marketing, we migrated the website to Framer. Then, we built the first server-side stack for cloud rendering of designs: Node.js, Puppeteer, and Supabase.

My first paying customer came in November 2020 from the Konva.js community. They paid $186/mo. The second followed six months later. It was very slow, but the pattern was clear — there was demand. And the questions and bug reports of those early users shaped the product.

So, Konva.js was the first growth lever. Many developers already knew me from the library, so when they needed a design editor, Polotno was the natural next step.

The second lever was SEO. Our documentation attracts users. Developers search for a problem, land on a docs page, and try it.

And the third is Polotno Studio, which is our free editor that is built on our SDK. We don't know how many customers have actually come from Studio, but it's clear that people share it, and it grows the brand. It's also helpful because it is a live sandbox where developers quickly see the SDK's capabilities. And when I launched it on r/InternetIsBeautiful, it received 20k upvotes.

About three years passed before Polotno's revenue matched my main job's income of $8k/mo. In May 2023, I left my job to focus solely on Polotno. This resulted in a drop in my personal income, but I was confident that focusing full-time would restore it.

Our primary model is a monthly SDK subscription. Companies pay for a license and embed the editor in their product.

When Polotno started, we designed pricing for small companies and indie developers: simple monthly plans, self-serve, and no sales calls. But as the product and team matured, larger companies began to approach us, requiring different solutions. They sought not more features, but trust: a custom contract that undergoes procurement, security and compliance review, a defined support model with escalation and named contacts, version pinning, custom liability terms, and a source code license option. Therefore, we added an Enterprise license to include these elements and custom development when needed.

I started charging from day one; we never offered a free version of the SDK for commercial use. Revenue grows mostly from new customers and existing customers who expand their usage and upgrade to a larger plan.

My biggest advantage was open source. Years of answering strangers' questions on GitHub, Discord, and Stack Overflow taught me what people struggled with and built trust before Polotno existed. You can't buy this.

Another advantage was my low-risk setup. I had a job; the project cost nothing, so I could wait years. No pressure to make fast money is a big advantage, and in my case, it was necessary. I was not sure the market for this product existed. I did not know the customers; I did not know if anyone would pay. I had to be careful.

At the same time, the length of time it took to make this work was probably my biggest challenge. It required a lot of patience. The first paying client appeared nine months after the first commit, and the second followed six months later. For a very long time, it seemed like nothing was happening: I worked almost every evening, and the result was only a couple hundred dollars per month.

In the past, my advice would have been to sell to businesses, not consumers. But we're entering the AI era now, and the SaaS apocalypse may be real, so I'm not sure that advice still works.

What I'm sure of: Start with what you already know deeply. My unfair advantage was ten years of canvas work. Yours is somewhere in your work history. And if you don't have that history yet, pick a domain and dive deep. AI makes learning faster than ever, but the depth is still on you.

From here, I want to keep Polotno as a stable, long-term company. We are profitable and independent, with no investors and no exit plans, so customers who build on us can plan for years, not quarters. The goal is to be the obvious choice when a company needs a design editor inside their product.

The interesting part is AI. Everyone can generate images now, but somebody still needs to edit the result, add the logo, fix the text, export for print. An editor becomes the control surface for AI output, and I want Polotno to be that editor.

You can follow along on X. Or check out our free editor, Polotno Studio.

Indie Hackers Newsletter: Subscribe to get the latest stories, trends, and insights for indie hackers in your inbox 3x/week.

Support This Post

Leave a Comment

  1. 1
    The SDK-instead-of-app path is underrated. You inherit distribution from whoever embeds you, and the product has to survive real integration friction instead of demo-day polish. That matches a pattern we keep seeing on a Discord discovery side project: tools that sit inside an existing workflow get reused; destinations people have to remember fade. Expertise from open source + employment also buys trust that cold-start consumer apps rarely get. Did the early revenue come mostly from teams who already knew the open-source work, or from net-new developers finding the SDK cold?
  2. 1
    Can't understand
  3. 1
    Nice story. You dont do any social media outside of the open source community? Im thinking Linked or X would be very beneficial for you...
  4. 1
    What kept you going during those early years, especially when the open-source work and the product were bringing in very little money? I’m building a few small tools myself right now, and traffic is still pretty low. There are definitely days when I wonder whether I should just stop and move on to something else. I’m curious what signals made you believe it was worth continuing before the revenue really started to grow.
  5. 1
    Also loved the point about starting with what you already know deeply. That is probably one of the most practical lessons for anyone building a product today.
  6. 1
    Great breakdown. It’s incredibly rare to see someone turn open-source maintenance into a direct B2B funnel like this. Usually, maintaining libraries feels like a thankless job, but Anton perfectly leveraged that developer trust. The transition into the Enterprise tier is a huge takeaway here. A lot of indie hackers get stuck trying to optimize self-serve pricing for small dev shops, but adding compliance, custom liability, and source code licenses is where the real scale happens. Anton, if you see this—how did you navigate that first Enterprise contract negotiation without a formal sales/legal background? Did you use a standard template for the custom liability terms, or did you have to hire legal counsel early on?
  7. 1
    The strongest part for me is that the opportunity didn’t come from “inventing a new market” it came from noticing a repeated problem inside a domain Anton already understood deeply. The SDK angle is smart because it turned a crowded B2C category into infrastructure for other businesses. Also interesting how the growth loop was so technical: open source → trust → docs/SEO → product adoption. That feels much harder to copy than just shipping another app with more features.
  8. 1
    Building an SDK can be a powerful way to reach $60k MRR by helping other businesses integrate your technology into their products. Focus on solving a clear developer pain point, offering strong documentation, and using recurring pricing that scales with usage.
  9. 1
    Amazing strategy brother
  10. 1
    Hey everyone! 👋 I’m a 14-year-old developer coding from Sumy, Ukraine — a frontline city. Between managing power blackouts and sirens, building this project has been my way to stay sane and focused. I absolutely hate traditional calorie tracking apps, so I connected advanced neural network APIs to build Calorie Dintis — a real multimodal AI Agent that tracks nutrition from photos or natural speech. • Photo Scan: Snap a picture of your plate, and it extracts exact calories, protein, carbs, and fats. • Natural Conversation: You can literally just type or voice note what you ate, and the AI parses and logs it behind the scenes. • Privacy: All history is fully isolated and saved locally on your own device (localStorage). • Telegram Companion: I built a fully functional bot helper since it works best with an unstable connection here: @cal_dintis_bot My official launch on Product Hunt is happening tomorrow morning. I’m super stressed because my hosting just moved to a paid plan ($7/mo), which is tough to pay out of pocket here. I would love to get your honest feedback on the UI, speed, and accuracy! • Web App: calorie-dintis-app.netlify.app • Telegram Bot: @cal_dintis_bot Thank you so much for your support! 🇺🇦💪🔥
  11. 1
    Awesome Job. I always inspired this type of posts where peoples are building and earning lot of money. thanks
  12. 1
    Building for devs works if you're building valuable tools
  13. 1
    The open-source-to-Docs-to-sandbox path is a great example of distribution compounding from real user help. One practical lesson I’m taking away is to treat support questions as a content backlog: group repeated questions into docs, then turn the most common workflow into a runnable example. That makes the product easier to evaluate without adding a sales step.
  14. 1
    Really interesting example of finding a B2B opportunity in a crowded B2C market. The shift from “build another Canva” to solving the underlying need companies already had was smart. Also, the fact that Polotno started as a side project and grew to $60k MRR with a team of three is impressive. Great reminder that deep expertise in a niche can be a much stronger advantage than trying to compete head-on in a crowded market.
  15. 1
    The B2C to B2B pivot part really resonates, building for yourself first taught you the market, but building for other businesses is what actually pays. The line about "pick a domain and dive deep" is solid advice too. Congrats on the $60k MRR, especially bootstrapped with a team of three.
  16. 1
    I've found the simplest version of this that still ships usually beats waiting for a perfect plan. What are you measuring week to week to know it's working?
  17. 1
    What sign in a Konva.js support conversation told you someone needed a supported commercial editor, rather than another library example? I’d be interested in how you recognized that boundary before there was much revenue.
  18. 1
    Awesome Job. I always inspired this type of posts where peoples are building and earning lot of money.
  19. 1
    Outstanding, I never thought this way where you dont even need an app.
  20. 1
    I spent almost nothing, other than my own time so well it
  21. 1
    Interesting shift. The part that stands out to me is not just “B2B instead of B2C”, but choosing a narrower problem where the value is easier to prove and the buyer is clearer. I’m seeing the same pattern while validating software products: broad positioning tends to create attention, but specific operational pain creates action. Curious — at what point did you know the SDK wedge was strong enough to stop exploring broader product directions?