CSS for JavaScript Developers: $577K in a 7-day presale
Josh W. Comeau's CSS course took $577K across 4,773 orders in a seven-day presale in March 2021, against a goal of 380 copies and about $50,000. What sold was a course roughly 50% finished, and the lever was an email list that went from 1,000 to 28,000 in fourteen months.
On March 16, 2021, Josh W. Comeau posted a dashboard to Indie Hackers showing $577K in revenue, 4,773 orders, $3,108 in refunds, and a $120 average order. The window ran seven days, Wednesday March 10 through Tuesday March 16. His own target had been 380 copies and roughly $50,000, and he wrote that hitting ten times that goal was “absolutely ridiculous.” Failory later classified the ongoing revenue in a band of $25,000 to $100,000 a month, which puts it somewhere between 14 and 56 times the median monthly revenue of the 28 content-sales businesses that disclose one.
Hearing $577K in seven days, the mind reaches for a finished course carrying a matching ad budget. What was actually on sale was a course his own account puts at roughly 50% complete. Full release was scheduled six months out in September, and the price was $129 against a planned post-completion price of $349. Buyers were paying in advance for a half that did not yet exist. No advertising ran. The lever was an email list that had stood at roughly 1,000 people in January 2020 and reached about 28,000 by launch.
The seven days, in figures
| Item | Figure | Notes |
|---|---|---|
| Presale window | March 10 to 16, 2021 | Closed after seven days |
| Revenue | $577K | From the dashboard he published |
| Orders | 4,773 | |
| Average order | $120 | Coupons pulled it below the $129 early price |
| Refunds | $3,108 | |
| Coupon-attributed sales | $1,819 | |
| Original goal | 380 copies, about $50,000 | To confirm “I wasn’t being dumb by quitting my job” |
| Completion at the time | About 50% | Full release planned for September 2021 |
| Planned full price | $349 | The $129 early price is 37% of it |
Failory records the same presale as roughly $550,000 across about 5,000 copies. The rounding of refunds, coupons, and currency probably explains it, and the gap of about $27K between a secondary account and the founder’s own dashboard is worth stating. This article uses his figures.
His previous job was Staff Software Engineer at Gatsby Inc. at $165,000 a year. He injured his ulnar nerve in March 2020, spent eight months in pain when typing, and left that summer. The $50,000 target was the level at which that decision would look sound.
A half-finished product sold 4,773 times
Presales as a format are ordinary. What deserves attention here is the pairing of price and completeness. At $129 against a planned $349, buyers accepted something close to a 60% discount in exchange for waiting half a year. From the seller’s side, development costs came back before development finished.
Put plainly, this reads less like selling a course and more like selling the right to wait, at a discount. The conditions are demanding. It works only where buyers already believe this particular person will finish, and that belief is built by the quality of what was given away beforehand rather than by the course itself. Comeau’s blog has accumulated roughly 60 posts since 2019 and draws 80,000 to 100,000 visits a month. He is known for building a custom interactive component for each article, and what buyers were purchasing was the continuation of that body of work.
1,000 people became 28,000 in fourteen months
The email list stood at roughly 1,000 in January 2020 and about 28,000 at launch. Twitter followers went from about 10,000 to 31,000 over the same stretch. Failory reports that after launch the newsletter held about 20,000 subscribers, the course waitlist about 11,000, and free book downloads about 12,000, with email as the most significant lever. Twitter is credited with roughly 14% of sales.
Comeau explains the outcome this way: “I spent years creating free resources with no expectation of making money. Developers respond well to people genuinely trying to help.”
Our reading diverges slightly from his. The growth is not spread across “years.” Almost all of it lands in the fourteen months immediately before the launch. Going from 1,000 to 28,000 is a factor of 28, and that increment is the denominator of the $577K. The accumulation before 2019 was hardly worthless, yet the observable movement sits inside a single year, 2020. The period when he quit and devoted himself to the course overlaps almost exactly with the period when the list went exponential. Giving work away did its job, and converting that into revenue required the free time to increase the volume of giving sharply.
Choosing to double the development time
Comeau turned down Teachable, Podia, and their peers, and wrote the course platform himself. In his words, it “doubled the development time, but allowed me to create something truly special and unlike other courses on the market.” The platform carries five media types, comprising interactive articles, videos, exercises, workshops, and mini-games, and it fires an animated fireworks display on enrollment.
His initial estimate was three to four months. The build ran past twelve, into August 2021. A five-minute video takes about an hour to produce, and he says he sometimes repeats that process three or four times for a single video. Operating costs at launch were around $450 a month, split across ConvertKit at $260, Vercel at $20, MongoDB at $50, and Sentry at $20. By August 2021 the figure had grown to roughly $1,000 a month.
For a single course, building the platform plainly does not pay. It was recovered by putting the next product on the same foundation. The Joy of React now runs on it, and the official site lists Whimsical Animations in production. CSS for JavaScript Developers spans 10 modules, 200 lessons, and about 40 hours, and remains on sale. Investment in the platform is the kind of spending that acquires meaning with the second title rather than the first.
A coupon that ran out in 90 seconds
He also records what went wrong. The lesson he gives Failory first is to avoid limited-edition coupons. A limited coupon released the night before the presale was exhausted in 90 seconds, buyers who missed it were left confused, and part of the situation had to be refunded. Some of the $3,108 originates there.
The estimating error is on the record as well. A build he sized at three to four months ran past twelve, and at presale time half of it remained unwritten. The September 27 full release matched what he had announced, and throughout that stretch 4,773 people who had already paid were waiting.
Plenty of numbers stay hidden. How many of the 4,773 orders came at the $129 early price, the denominator behind the refund rate, monthly revenue after the full release, total enrollment, and sales for The Joy of React are all unpublished. The fact that ongoing revenue appears only as a band as wide as $25,000 to $100,000 says something in itself about how much the monthly figure swings. Revenue from one-time products spikes around discount campaigns and new releases, so a fourfold spread between the bottom and top of that band is unremarkable.
The structure one person runs
The operation is Comeau plus one contractor working two to three hours a week on support and video captioning. Against roughly $1,000 a month in expenses, ongoing revenue that never drops below $25,000 makes for an extremely light margin structure. A one-time product has no concept of churn, which narrows the metrics worth watching to list size and release cadence.
What the $577K turned into can be read from what followed. Someone who walked away from a $165,000 salary collected 3.5 times that figure in cash within seven days. Removing “next month’s rent” from every subsequent decision is what carried a twelve-month build to completion and moved him to a second course. The real output of the presale was time bought back with money.
$577K was a launch week, and steady state is only a band from $25,000
Sorting the “build your own course and sell it” pattern by monthly revenue gives Piano in 21 Days at ¥4.5M a month, with 10,000 students and $4M cumulative, run in about an hour a week, 24 Udemy courses at ¥210,000 a month, where the creator switched to volume once one course reliably meant $100, and 22 Udemy courses including eight bestsellers at ¥150,000 a month. The two Udemy cases hand acquisition and payments to a platform, while Comeau holds all of it himself. Owning the audience is what separates two businesses an order of magnitude apart, even though both describe themselves as making courses.
The conditions around that presale are worth laying out. 2020 was the year demand for at-home frontend learning swelled the most, and the fourteen months in which the list grew 28 times sit inside it. Leaving a $165,000 job to work full time for seven or eight months rested on savings from that salary. Fifteen years of CSS experience, bootcamp teaching, and two years at Khan Academy all form part of the credibility the presale drew on. The point that most needs care in reading is that $577K describes a single event. Ongoing revenue is public only as a $25,000 to $100,000 band, and launch-week figures cannot be read on the same scale as steady-state ones.
If this one impressed you
Similar cases

GoRails: Stacking $19/Month Screencasts for Seven Years to $60,000 MRR as a One-Person Business
Digital products
Visualize Value: Jack Butcher Closed His Ad Agency and Reached $1.1M a Year on Black-and-White Diagrams
Digital products
kan.kikuchi: ¥5,913,887 a Year from Solo-Built Joke VR Games — With the ¥420K Build Cost and 813 Hours All on the Record
Digital products
Justin Welsh: $12.5M Cumulative With One Person and an Outsourced VA — a Solo Business Portfolio With 90%+ Margins
Digital productsMost read
- 1
¥4.61 Million a Year, Five Years After Starting to Learn Programming. The Full Three-Year P&L and Playbook of an Indie Education App
33 recent visits - 2
Payout: A Class-Action App Vibe-Coded in 14 Days Reached $1,003,227 ARR in 9 Months. It Cost About $10 to Build, and a Partner With 10 Million Followers Grew It
32 recent visits - 3
Easy Folders: One Chrome Extension, $3,700 MRR and $42,000 Lifetime Revenue in 6 Months — a “Fill the Gap” Structure
24 recent visits - 4
Starter Story: The $91.7K/Month Startup Case-Study Media Acquired by HubSpot — Months After the Founder Tweeted "HubSpot Should Acquire Starter Story"
24 recent visits - 5
From 30 yen in revenue to 8 years later: how running 3 apps in parallel got an indie developer to 200,000 yen a month
21 recent visits
Latest articles
- 2026-11-02
Omameya: ¥2.26M Monthly Revenue Six Months After Opening, From a Location the Owner Calls "Not Even Good"
- 2026-11-01
Hana: ¥7.5M in year three, saved by ¥200K a month
- 2026-11-01
Write With AI: $400K ARR From 114,000 Readers, With Under 2% Paying
- 2026-10-31
lemlist: A French SaaS Started on $1,000 Reached $28M ARR — and a $150M Valuation Without a Cent of VC
- 2026-10-31
Apollo for Reddit: One Price List Ended a Solo App With 1.5M Monthly Users — a Projected $20M a Year, and $250,000 in Refunds
Sources
- Founder Josh W. Comeau氏本人によるIndie HackersのAMA(2021年3月)。先行販売は2021年3月10日(水)から16日(火)までの1週間、公開したダッシュボードに売上$577K・注文4,773件・返金$3,108・平均$120・クーポン売上$1,819。目標は380本・約$50,000だったこと、Gatsby Inc.のスタッフエンジニア時代の年収$165,000、自作プラットフォームが開発時間を倍にしたこと、先行販売時点で講座は約50%、ブログの月間訪問80,000〜100,000、月額運営費の内訳
- Founder Josh W. Comeau氏の公式サイトの講座一覧。CSS for JavaScript Developers、The Joy of React、制作中のWhimsical Animationsが同じ自作プラットフォーム上にあること
- Founder 講座の公式サイト。10モジュール・200レッスン・約40時間という構成と、現在も販売中であること
- Reported Failoryのインタビュー(2021年時点)。先行販売の売上を約$550,000・約5,000本と記載。2020年3月の尺骨神経の故障と8か月続いたタイピングの痛み、2020年夏のGatsby退職、当初3〜4か月と見積もった開発が12か月超になったこと、正式公開は2021年9月27日、継続収入の区分$25k〜$100k/月、月額経費約$1,000、ソロ+週2〜3時間の契約者、メール施策と各リストの規模、Twitter経由が売上の約14%、限定クーポンの失敗