Operating

Photopea: “Photoshop That Runs in a Browser,” Built Solo for 13 Years — a Bizarre P&L of $3M Revenue on $12,600 in Expenses

Ivan Kutskir started building the browser-based image editor Photopea while a student in 2012. It ran unmonetized for five years before he added ads in 2017. By 2021 annual revenue hit about $1M, and by 2024 it reached $3M (90% from ads) — with expenses of about $12,600 a year and development still done by one person.

Photopea: “Photoshop That Runs in a Browser,” Built Solo for 13 Years — a Bizarre P&L of $3M Revenue on $12,600 in Expenses

(Yen conversions in this article use an approximate rate of ¥150/$1.)

The full picture in numbers

ItemFigure
Annual revenue2021: ~$1M → 2024: ~$3M (about ¥450M)
Revenue mix~90% from advertising, the rest from premium ($5/month, ad-free) and licensing
Annual expenses~$12,600 ($20 domain + $600 servers + ~$12,000 for AI features)
TeamDevelopment and operations handled by Ivan Kutskir alone
Users12 million monthly users; 1 million per day as of May 2025
Time to monetizationStarted development in 2012 → zero revenue for 5 years, until 2017
Codebase size7,000 lines → 140,000 lines (plain JavaScript, no framework)

13 years, on a timeline

YearEvent
2012Kutskir, then a student in Prague, starts development. His estimate that “a PSD viewer would take 1–2 weeks” stretches into roughly 5 months of work squeezed between classes
September 2013First public version released
September 2016Launches Premium (ad-free, $5/month)
2017Finishes his master’s degree and starts monetizing seriously through ads. Up to this point, roughly five years with zero revenue
2018Reaches 1 million monthly users
November 2018First Reddit AMA gets 43,000 upvotes and 2,200 comments. Monthly users go from 1.5 million to 3 million in seven months
2021Publicly reports roughly $1M in trailing-12-month revenue on a Hacker News AMA
2024Annual revenue reaches about $3M (about ¥450M); 90% from ads
May 2025Reaches a scale of 1 million users per day

What kind of business this is

Photopea is a “browser-based Photoshop” that lets you edit PSD files with no installation required. Because all processing happens entirely inside the user’s browser, server costs barely rise even as the user base grows. The expense breakdown is public: $20 for a domain, $600 for hosting, and about $12,000 for AI features, totaling roughly $12,600 a year. Against $3M in annual revenue, expenses come to just 0.4% of revenue, a profit margin north of 99%, close to the theoretical limit of a software business’s cost structure. Users spend roughly 1.5 million hours a month inside the editor combined, and the server bill supporting all of it still runs $600 a year.

Kutskir’s programming history goes back to making Flash games at age 16, and in college he was already earning about $400 a month from ads. Photopea began in 2012 as an offhand idea: “I’ll build a PSD viewer in 1–2 weeks.” In reality, it took several months to reach the first public version, and he kept up roughly 10 hours a week of development for years after that, monetization through ads didn’t come until five years later, in 2017. In his own words: “The first 7,000 hours were $0. Now that I’ve passed roughly 10,000 hours, a million people use it every month.” On top of an amount of invested time that almost refuses to be converted into an hourly wage sits today’s profit structure. The codebase grew from an initial 7,000 lines to 140,000 lines, still maintained solo, still in plain HTML/CSS/JavaScript with no framework.

Breaking down the revenue: six cents per hour of use

  • Advertising (~90%): Shown on screen to free users. Because image editing sessions run long, the combination of dwell time × ads works with unusually high efficiency. Divide revenue by total user hours, and it works out to roughly 6 cents per hour
  • Premium ($5/month): The value proposition, in effect, is just “no ads.” Functionality is otherwise identical to the free version
  • Self-hosted license: $500–$2,000/month (paid annually) for enterprise customers

What’s notable is that the monetization design doesn’t hold features hostage. Every feature is open to everyone for free, and only the people who want ads removed or want it hosted in-house pay. It’s the inverse of the freemium model, which cordons off features to push free users toward paying, and this only works because marginal cost is zero.

Acquisition: search, word of mouth, and a Reddit AMA

  • The product is designed to catch search demand directly — for terms like “photoshop online” and “psd editor” — as-is. Because it’s free, requires no signup, and works instantly, it spreads on its own through word of mouth and shared links
  • The turning point was a Reddit AMA in November 2018. It pulled 43,000 upvotes and 2,200 comments, and monthly users went from 1.5 million to 3 million in seven months. He’s kept doing AMAs regularly since, growing to a scale of 12 million monthly users. Ad spend has stayed at zero throughout
  • Beyond AMAs, he’s personally answered more than 400 user problems on Reddit, writes technical blog posts, and shares his development process publicly. Reportedly 80% of his GitHub followers gathered there specifically for feature requests — support, PR, and product planning have all consolidated into his own community activity

What this teaches us

“Free plus ads” is strongest only in a zero-marginal-cost structure. This is the exact opposite of Levels dismissing free users as “terrible,” but there’s no contradiction. PhotoAI incurs GPU costs per user, so it has to charge. Photopea processes everything inside the browser at zero cost, so it can give it all away for free and capture the whole market. The cost structure determines the monetization model, not the other way around.

Five years without revenue amounted to building a moat, not running a loss. Photoshop-level feature parity can’t be replicated overnight. The sheer volume of 140,000 lines of implementation built up over five years when no one else was chasing him is itself today’s moat, though it’s easy to overlook this was a time investment only possible because he had the low-cost status of a student.

An AMA turns “being the actual author” into an asset. The experience of “the person who built it personally answers everything”, structurally impossible for a giant corporation’s product, became the strongest form of PR within Reddit’s developer/creator culture. As with Own the Yard’s public case study, transparency and personal authenticity are the royal road for an individual to earn media exposure for free.

The decision not to sell

Kutskir has consistently turned down acquisition offers. His advice is blunt: “Even if someone offers you 10x, 100x, or 1,000x everything you’ve earned in your life so far, don’t sell what you built” (paraphrased). On Hacker News, he framed the comparison with employment like this: “You never really know, when you start, whether your own project will make $250K a year. But if you take a job, you know with near certainty it won’t exceed $250K a year” (paraphrased).

In a business with $3M in annual revenue, $12,600 in expenses, and one person running it, holding onto ongoing cash flow tends to beat cashing out for a lump sum from a sale. The decision not to sell is arithmetic as much as aesthetics. At the same time, deliberately keeping the product’s scope within what one person can maintain (for instance, repeatedly turning down requests for an offline version, citing maintenance cost) has likely been a condition for this setup lasting 13 years.

Conditions and limits for replication

  • What replicates easily: demand for “an installation-free free alternative to an expensive standard piece of software” exists in other categories too. Zero-cost design via in-browser processing is technically generalizable, and the pattern of a product name/design that catches search demand directly is also copyable
  • Limits: the premise is being in a position (student, side project) that can absorb 7,000 hours of upfront investment. The advertising that accounts for 90% of revenue depends on variables he can’t control himself — ad market conditions and browser privacy regulation. Because it’s a one-person operation, if he stops, maintenance of 140,000 lines stops too. And the AMA’s explosive reach was the product of both a product that resonated with Reddit’s culture and his own willingness to answer thousands of comments in English — not a path that’s open to just anyone
You may freely quote or republish this article in news media, blogs, or AI answers, provided you credit "Small Start (small-start.com)" and link to this page. No prior permission is needed. Reprint & quotation policy →

Similar cases

Found this useful? Share it
Share on X