Three.js From Zero · Article s15-08

Selling a Paid Three.js Course

Selling a Paid Three.js Course is Article s15-08 of Three.js From Zero, a MasterAllArts free interactive lesson for artists learning creative 3D on the web.

← Three.js From ZeroS15-08 · Portfolio & Career

Season 15 · Article 08 · Portfolio & Career

Bruno Simon's Three.js Journey reportedly does seven figures. That number isn't impossible to approach if you ship the right thing to the right people the right way. The economics, the platforms, the launch playbook.

The economics

A Three.js course at $99 with 1000 sales is $99k. With 5000, it's half a million. The maker's economics shake out roughly:

  • Production — 100-300 hours for a real, polished course.
  • Marketing — ongoing, 5-10 hr/week forever.
  • Hosting / platform fees — 5-15% of revenue.
  • Taxes — 25-40% in your country's bracket.
  • Refunds — 2-5% of sales typically.

Net: a $99 course that sells 1000 copies nets you $50-70k after all costs. Realistic for someone with a small audience (~5k Twitter followers, an established blog).

Platforms compared

PlatformFeePros
Gumroad10% + StripeEasiest to launch. Bundle videos + downloads. Built-in coupon tools.
Lemon Squeezy5% + StripeMerchant of record (handles VAT). Cleaner checkout.
Teachable / Thinkific5-15% + monthly feeBuilt for courses. Drip content, quizzes, certificates.
Self-host (Stripe + your site)Stripe 2.9% onlyFull margin, full control. Most work.

Bruno self-hosts. Most beginners should not — the operational overhead (VAT, refunds, fraud, hosting reliability) is more work than producing the course. Start on Gumroad or Lemon Squeezy. Migrate later if it makes sense.

Pricing

Bruno charges ~$95 for a 90-hour course. That's roughly $1/hour of content, which is the price-anchor for tech courses.

Your launch price options:

  • Below $30 — low-status. People assume it's a small/incomplete course.
  • $50-100 — beginner-friendly. Wide reach. Good if your audience is students.
  • $150-300 — premium. Smaller audience but higher conversion of qualified buyers.
  • $500+ — enterprise / corporate training. Different market entirely.

You can also tier — $79 base, $149 with code/community, $299 with 1:1 review. Different psychology, different revenue.

The pre-launch list

Six months before launch:

  1. Pick a topic narrow enough to be the "best in the world" at. ("Three.js" is too broad. "Three.js shaders for designers" is right.)
  2. Publish free content weekly on that topic — articles, YouTube, tweets.
  3. Build an email list. Free content → newsletter signup. Aim for 500-1000 before launch.
  4. Talk publicly about building the course ("week 3 of recording — here's the shader chapter").
  5. Pre-launch the course at 30% off to your email list. 7-day window.
  6. Ship.

Launch week

  • Day 0 (launch day) — email list, X/Twitter announcement, ProductHunt, HackerNews ("Show HN"), Reddit r/threejs.
  • Day 1 — reply to every comment, every email. Build social proof.
  • Day 3 — first testimonials. Get screenshots, share publicly.
  • Day 5 — "ending tonight" launch-discount reminder.
  • Day 7 — close the discount. Resume normal pricing.

Then sustain: monthly drumbeat content, occasional sales, affiliate program.

What sells the course

Buyers want:

  • A clear outcome. "After 30 days, you'll have shipped X." Not "you'll learn Y."
  • Social proof. 5-10 testimonials with names + photos visible on landing page.
  • Free preview. Two full lessons unlocked. Bruno does this. So do all serious paid courses.
  • A money-back guarantee. 30-day no-questions-asked. Refund rate stays low; conversion jumps.

Refunds, taxes, support

You will refund. Honor every request without arguing. Bad reviews from refused refunds cost more than the refund.

Taxes: VAT in EU, GST in some regions. If you sell internationally, use a merchant-of-record (Lemon Squeezy, Paddle) — they handle all of it. Self-host means you handle it.

Support: budget 5 hours/week. Most questions repeat — build a FAQ as you go.

Common first-time pitfalls

"Built the course before validating the topic." Pre-sell first. $30 deposit, 30 spots, "course launches in 8 weeks." If you can't fill 30 spots in pre-sale, the topic is wrong.
"Priced too low." You can raise prices. You cannot un-anchor low. Start at the high end of your range; lower with launch discount if needed.
"No audience, started cold." Marketing-from-zero on launch day is misery. Spend 6 months building free content first. Skip this and conversion is 1/10th.

Exercises

  1. Validate a niche. Pick a Three.js sub-topic you're great at. Tweet about it weekly for a month. Track engagement — if people care, you have your topic.
  2. Build the landing page first. Outcome, curriculum, instructor, FAQ, testimonials (use placeholders for now), price, CTA. If this page doesn't excite YOU, the course won't sell.
  3. Pre-sell V0. 30 seats at 50% off, payment now, course delivered in 8 weeks. If you fill them, build it. If you don't, learn what's missing.