
Codecademy
The Story Of $10M To $50M ARR — On The Way To A $525M Exit.
Four years inside Codecademy. Optimizing every corner of the subscription business — pricing, trials, paywalls, retention, payments. The team grew from 20 to 250. Traffic stayed flat. Revenue 5x'd.
Client Snapshot
- Company
- codecademy.com
- Product
- Interactive coding curriculum for self-taught developers
- Model
- Consumer freemium subscription (Basic / Pro / Pro Plus)
- Funding
- ~$87.5M raised across Series A–D — Kleiner Perkins, Naspers, Owl Ventures, USV, Prosus
- My Role
- Head of Growth, 2017–2021 (~20 people → ~250)
The Situation
When I joined Codecademy in 2017, we were about 20 people. By the time I left in 2021, we were around 250. Shortly after, Skillsoft acquired the company for $525M.
The product had been famous for years. Millions of self-taught developers had learned to code through the free curriculum. Anyone who tried to copy Codecademy failed. The brand was a moat.
What we didn't have, when I joined, was a real subscription engine underneath the product. Pricing hadn't been seriously revisited in years. Packaging didn't map to how different users actually used the product. Free-to-paid conversion had room to grow. International conversion was lagging the US by an order of magnitude. There was almost no expansion revenue.
The assumption people make is that we grew traffic during those four years. We didn't — not meaningfully. Codecademy already had massive awareness. Millions of people had heard of us, used the free product, knew the brand. The problem wasn't at the top of the funnel. It was everything after.
We grew revenue 5x without growing the funnel. The work I did in those four years became the foundation for everything I do now at Subscription Index.
Inside The Codecademy Years




You can only monetize a great product
Every lever on this page — pricing, paywalls, conversion, retention, payments — is a multiplier on something else. If the product underneath is weak, every monetization win is a short-term squeeze that accelerates churn. If the product is strong, the same levers compound for years. Codecademy worked because the curriculum, the engineering, and the design were already great when I joined — a product millions of self-taught developers in 190+ countries came back to year after year. The monetization story is leverage on top of that. Never a substitute for it.
The Plan
Three levers, in this order:
- 1.Re-architect pricing — for the US market, for international markets, and for how monthly-versus-annual decisions actually got made
- 2.Fix the conversion engine — paywall placement, trial model, time-to-value, every step where free users dropped before paying
- 3.Build the LTV layer — cancellation saves, dunning, payment recovery, expansion paths. The invisible stuff that funds the business
Every change had to pass through one of the most opinionated learner communities on the internet, ship under the founder's bar of “this still feels like Codecademy,” and pay for itself in a metric we could watch every single week.
The Results
Four years in: ARR grew from $10M to $50M. The share of new subscribers on annual plans grew from roughly 5% to 50% — a 10x shift in plan mix. International conversion stopped being a leak and started being a contributor. Free-to-paid conversion roughly tripled at the same cohort lifecycle stage. The team grew from 20 to 250 people. Skillsoft acquired Codecademy for $525M in December 2021, shortly after I left.
ARR Growth
$10M → $50M
Subscription ARR grew 5x over four years — without meaningful traffic growth
Annual Plan Share
5% → 50%
10x'd the share of new subscribers on annual plans by re-architecting the monthly-to-annual ratio
Free-To-Paid Conversion
214%
Cohort-over-cohort free-to-paid conversion grew by 214% at the same lifecycle stage
Exit Outcome
$525M
Skillsoft acquired Codecademy in December 2021, shortly after I left
Execution: What We Did
Three workstreams, run roughly in sequence. We started with pricing — because the cheapest revenue is from cohorts you've already acquired but under-monetized. Then we fixed the conversion engine. Then the LTV layer. Each step was measured independently. Each stacked on the one before.
Re-Architected Pricing — US, International, And The Annual Ratio
Pricing hadn't been seriously revisited in years. We didn't just change the numbers — we changed how the whole shelf worked, who it was priced for, and how monthly-versus-annual decisions actually got made.
- -Moved US monthly from $19.99 to $39.99 — nearly doubled — while keeping the annual plan around $19.99/month. That's a roughly 0.50 ratio, deliberately calibrated to the 3–4 month average lifetime of a monthly subscriber
- -Stood up regional pricing tiers across India, Brazil, Southeast Asia, and the long tail of non-US markets. These weren't discounted users — they were users we would never have converted at the US price. The real choice was $7.99 vs. $0, not $7.99 vs. $19.99
- -Layered Pro Plus on top of Pro to capture career-track learners willing to pay more for outcomes — without overpricing the base subscription
- -Annual replaced monthly as the dominant on-ramp. Cohort LTV climbed steadily as the mix shifted; year-two renewal rates on annual were meaningfully higher than monthly churn would have predicted

The long arc of plan-mix at Codecademy. Monthly used to own the shelf. Annual was the lever we kept pushing.

Each line = one monthly signup cohort, oldest (red) to newest (yellow). The fan-out is the work compounding.
Fixed The Conversion Engine — Trial, Paywall, And Time-To-Value
Codecademy already had millions of free users. The problem wasn't getting them in the door — it was converting them after. We rebuilt the funnel from the inside.
- -Replaced the locked-content model with a true trial — every user got to feel the full product before they were asked to pay
- -Moved paywalls to high-intent moments inside the curriculum — projects, certifications, career paths — not brittle landing pages
- -Restructured onboarding around one insight from our cohort data: users who completed their first lesson within 24 hours were dramatically more likely to convert to paid AND still be subscribed six months later
- -Each new signup cohort converted higher than the previous one. Free-to-paid conversion roughly tripled on the latest cohorts vs. the earliest, at the same lifecycle stage — with no change in product and no change in core pricing
Built The LTV Layer That Nobody Talks About
Front of the funnel gets all the attention. The bottom — cancellation, dunning, expansion — is where we found most of the easy revenue.
- -Built a cancellation flow that asked first, then offered a save tailored to the reason. The #1 cancellation reason wasn't price — it was "life got busy." So pause became the primary save lever, and it worked
- -Stood up a real dunning system: pre-expiration emails, multiple retry windows, grace periods, multi-currency support. Most churn turned out to be involuntary, not voluntary — and most of it was recoverable
- -Added expansion paths — Pro Plus upgrades, gift subscriptions, multi-product offers — to give existing subscribers somewhere to spend more, since the cheapest revenue is from people who already trust you
- -None of these wins moved the needle on their own. Stacked over 36+ months, they reshaped the unit economics enough to fund everything else

Hundreds of small, invisible launches. Most never made it into a slide deck.
Why It Worked
Worked With The Funnel That Already Existed
Codecademy had millions of users walking in the door. The job wasn't to bring more in — it was to make the existing funnel do its job. That's the cheapest and most defensible kind of growth there is.
Pricing Decisions Came Out Of Cohort Data
Every annual ratio, every international tier, every price change came out of retention math. The cohort data told us how to price. Opinions came after the data, not before.
The Bottom Of The Funnel Got First-Class Attention
Most companies obsess over acquisition and ignore the cancellation flow. We treated dunning, save flows, and the boring payments work like first-class problems — because the cohorts we already had were worth more than the cohorts we hadn't gotten yet.
The Codecademy Lessons Series
Early in the newsletter, I wrote a five-part series breaking down exactly what we did at Codecademy — pillar by pillar, with the tactics, formulas, and decision frameworks behind each one. Start with Part 1 for the overview.
Subscription Revenue: $10M to $50M ARR (Pt 1)
The overview of the whole playbook. Why monetization mattered more than acquisition, and how the five pillars stacked.
Subscription Revenue: Payments & Churn (Pt 2)
The invisible work — dunning, card retry logic, multi-currency, payment recovery. Most churn turned out to be involuntary.
Subscription Revenue: Extending LTV (Pt 3)
Cancellation flows, downgrade paths, save offers, expansion revenue. The LTV stack that funds everything else.
Subscription Revenue: Trials & Paywalls (Pt 4)
The conversion engine. Trial model, paywall placement, time-to-value, and the signup-flow choices that compounded cohort over cohort.
Subscription Revenue: Checkout Pages (Pt 5)
The last few pixels — checkout copy, error states, third-party payment processors, mobile flows. The leakiest part of every subscription business.
Same Playbook For Your Subscription Business?
I work with subscription businesses that look like Codecademy did in 2017 — strong product, strong brand, real traffic, and a monetization layer that hasn't been built yet. If that's you, the next move is the same one I made there: stop trying to grow the funnel and start fixing what happens after it.