Launched my first course, earned over US $500,000! AMA

Hey IH!

Last week, I pre-launched my very first course, CSS for JavaScript Developers. I just closed down preorders, and I'm thrilled to report that the course has made over half a million dollars:

A screenshot of my Paddle dashboard, showing $577k revenue, $4773 orders, $3108 refunds, $120 average transaction, and $1819 coupon sales

The backstory / product

CSS for JavaScript Developers is a course aimed to help intermediate JavaScript framework developers (React, Vue, Angular) solidify their CSS skills.

It's a work-in-progress; this was an "Early Access" launch, which means that folks who purchased are able to access the content, but only about 50% of the course is completed. I hope to launch the course in full by September of this year.

I started working on this course in August of last year, after a repetitive stress injury led to me leaving my job. I had a pretty profound realization that helped me "take the plunge" and pursue this indie-hacking thing full-time. For the past 7-8 months, I've been working full-time on my course (and my blog, joshwcomeau.com).

The course is a bit hard to describe. It's not a video course, though it's on track to have >100 videos. It uses 5 different media types:

  • Interactive articles
  • Videos
  • Exercises (short challenges in-browser)
  • Workshops (larger real-world projects)
  • Mini-games

I built my own course platform to support this, a move which easily doubled the development time, but allowed me to create something truly special and unlike other courses on the market.

The launch

I decided to keep registration open for 1 week: from Wednesday, March 10th until yesterday (Tuesday, March 16th). This wasn't a marketing tactic, though I did learn about scarcity and how it could be useful; I primarily wanted to make sure I would be able to focus the bulk of my attention from now until September on finishing the course. Having new students onboarding every day would have made that more challenging.

The course launched at USD$129 + tax. This is a special "Early Access" price; I expect to sell the full course for USD$349, though I'll also be supporting Purchasing Power Parity (region-based pricing) and tiers (starting, likely, from $129).

I launched on Twitter (where I have 31k followers) and to my email lists (~28k subscribers). For what it's worth, both of these numbers have grown quite a lot over the past year: in January 2020, I had ~10k followers and ~1k email subscribers. And I spent a few months that year unable to work because of an injury. Happy to talk more about this process!

I had hoped to sell about 380 copies, for ~50k USD. That number would have been validating, an encouraging sign that I wasn't being dumb by quitting my job (Staff Software Engineer at Gatsby Inc, earning $165k USD a year). The fact that it hit 10x my goal is absolutely ridiculous and I don't know how to process it 😅

The launch was chaotic and stressful; I built my own platform, and it had bugs. The first 48 hours were spent bouncing between fixing bugs and trying (unsuccessfully) to keep up with support requests. I feel awful knowing that many people paid for the course, but weren't able to access it for 24h+. I'm still dealing with a couple curious issues, but overall I know my platform is way more robust than it was.


I've learned so much over this past week, and would be happy to share whatever I can to be helpful! Ask any questions you'd like about the launch, the numbers, etc.

  1. 24

    Congratulations! How did you grow your email list from 1k to 28k in one year? That's really incredible (I imagine at least half of your sales came from there?).

    1. 19

      I don't have perfect metrics, but yeah I'd say at least half!

      A few things:

      • Started publishing way more on my blog, and had a few viral hits (my most popular posts have topped 100k visits)
      Wrote a book and gave it away for free, for folks who join the mailing list (this added about 8k)
      • Added a little fella and asks if you want to join the newsletter:

      As the user scrolls, a little guy peeks out and asks to share something cool. The user clicks 'sure', and a newsletter opt-in form appears

      ^ This one increased newsletter signups by 50% (compared with just a form at the end), and I get wayyy more love-mail than hate-mail about it 😄

      1. 1

        Woa, thanks for sharing! Great idea and execution 🙂

      2. 1

        Love the work, impressive. is the little guy a widget?
        Would love to use it :)

        1. 4

          It's my own thing, but feel free to take inspiration!

          1. 1

            Love the little guy! So different and unique :) Congrats btw! It shows the power of having an audience!

        2. 3

          I'm going to build it for my site

          check this: http://frontendor.com/magic-popup

          1. 1

            hey, signed up. very cool

      3. 1

        Ha! This is amazing! Well played 😎

        So you collected emails from your blog visitors. From what I can see it's a healthy mix of Google search traffic, HN referrals and Twitter + Reddit?

        1. 2

          Yeah, pretty much. It's been growing for a couple years, averages 80-100k visits a month (according to GA, so probably a fair bit higher in reality).

          I don't really do much to promote it other than Twitter, HN, and sometimes Reddit. There's some SEO (maybe 20%) but mostly it's word-of-mouth / lots and lots of sources sending small %s of traffic

          1. 1

            Cool, dark traffic from chat like Slack and WhatsApp then! What type of articles resonate the most? Always interested in analyzing successful content marketing strategies.

            1. 3

              It feels almost random in terms of topic 😅 though I'd say my niche is "explaining commonly-misunderstood things". On the homepage, "popular posts" are sorted by hits (so it's the top 10 posts of all time, essentially)

  2. 19

    Congrats, dude.

    This is the power of a personal brand.

    You did Twitter. You did blogging. You provided value up front before pushing for the big sale. You used a proper sales page with social proof, etc., and you made it aesthetic.


      1. 3

        I left out the most important thing: his product promises to fix a real pain.

        1. 2

          I think the early access program is a clever way to go.

          1. 6

            Honestly it was less that I was trying to be clever, and more that I was burning through my life savings too quickly 😅

            I had initially hoped to launch in full in January. But creating a course takes wayyy longer than I expected, for the kind of thing I want to do. By the time I'm done, it will likely have been >1 year.

            1. 3

              Do you think you got a lot of "infrastructure" out of the way now, such that your next course will take significantly less time? Or is it mostly the content itself?

              1. 5

                Yeah, it’s a good question! There’s still a fair amount of infrastructure to do though. Off the top of my head:

                • support team licenses / admin accounts
                • proper support process (right now everything goes to email)
                • lots of account admin I skipped (editing email, linking GitHub)
                • better accessibility (biggest missing thing is closed captions, but there’s lots of little things I’ve discovered)
                • about 100 bugs and feature requests I’ve gotten from the Early Access students

                A lot of the foundation is there, but that last 20% always seems to take 50% of the time, so my guess is I still have a good chunk of work ahead.

                Plus, I have to polish and redo a bunch of the early content.

                Honestly I think if I can get it shipped by August, it’ll be a mini-miracle 😅

                1. 1

                  Best of luck man! Inspiration for all of us :)

            2. 1

              I appreciate the honesty.

              I think it’s a good approach though, because you have the opportunity to create a story around it, people get excited, it will make it easier to get attention.

  3. 9

    As someone who bought the course early, don't over think it everyone, good content converts. Simply doing simple tutorials or doing things to provide "value" (which is not really "value") never works. Josh has a lot of great content, I barely read any of his blog but knew his course was going to be high signal and a good use of my time as I can see the thought put into the blog. I didn't even look at the landing pages of who said what, I really think it came down to the fact that skimming over the tutorials, the website itself was enough to tell me this person knows CSS well and can also teach it.

    1. 3

      You spoke my mind. As soon as there was an announcement about a course, I was sold. I knew I'd be one of the first ones to buy it.

  4. 5

    You are an inspiration for me, and perhaps for every software developer ! I love what you do !

    1. 2

      Thanks so much Albert 💖

  5. 4

    Great work!

    I'm pretty sure your landing page was an important part of the success. A couple of questions about that:

    1. How did you get all those developer celebrity endorsements?
    2. Did you have someone with marketing/copywriting experience help you with it?
    1. 5

      I already had friendly relationships with the folks who gave testimonials 😅 which I realize isn’t super generalizable advice. I’ve been a conference speaker for a few years, so I met some folks there (Kent, Max, Shawn). Others I got to know over Twitter, over the course of years.

      I did have to reach out and ask them if they could check out the course and write something about it, which brought me pretty far out of my comfort zone. But everyone was more than willing! They’re wonderful people. I know how busy they are and it means a lot to me that they took the time!

      But yeah, it’s super not something I would recommend as a “strategy”. I didn’t try to befriend anyone for personal gain. People can smell that a mile away.

      I wrote the copy myself, and made up for my lack of experience by drawing inspiration from things I know work, and rewriting it over and over until it felt OK 😅

      Thanks, these are great questions!

      1. 1

        Thanks for answering!

  6. 4

    Hi Josh!

    I watched your video and should admit: you did a really great job! Not only the course looks solid and helpful, but your framework, exercises, and even video itself - it's obvious you put a lot of effort into everything.

    My question is: what was (or still is) the most challenging part of this project?


    1. 4

      Appreciate it =)

      The most challenging part of course creation is creating the videos. That video on the homepage took about 10 hours (3-4 hours of filming on 3 different days). I kinda suck at it 😅 so it takes a lot of takes to get something I'm happy with.

      I'm getting better, slowly.

      In terms of the launch, the hardest thing is having 20 important things to do, and trying to prioritize them

      1. 2

        Hi again, my I ask you why creating the videos was so hard? Technical issues? Plot? Editing? Actor skills (pretty good btw :)?


        1. 3

          Ah, missed this!

          So in terms of the technical videos, first I need to practice the solution enough that I know it well enough that I can do it without really thinking. This takes maybe 30 minutes for 5 minutes of on-screen content.

          As I record, I'll make little mistakes. Often I'll finish the video, realize I forgot something, start recording again to add it, edit the video, and decide the editing is bad / it's too obvious I recorded it at 2 different times. So I'll trash it and start over.

          Sometimes I repeat this process 3-4 times for 1 video 😬

          I'm definitely getting better at it; more recently, it's 30 minutes for prep, 10 minutes for a draft recording, 10 minutes for a real recording, and ~20 minutes of editing. So a little over an hour for a 5-minute video.

          1. 1

            Thanks for your response! It's not obvious how much time and effort even a simple video requires.

  7. 4

    On first appearances it looks like quick success but I imagine that the life building up to this was significant - becoming a top software engineer, knowing your subject well, knowing how to teach and having thousands of people willing to listen to you... this is no small feat.

    Well done!

    1. 8

      Yeah, honestly it feels like my career has been building to this:

      • Taught for 2-3 years at a bootcamp
      • Worked for 2 years at Khan Academy, learning about pedagogy
      • Community involvement (blogging, speaking at conferences, running workshops) for 5-6 years
      • Writing CSS for 15 years

      The course took 7 months to build (so far), but it was only possible because of the 15 years beforehand :D

  8. 3

    Congratulations! I have been following your work and it always impress me. So happy for you man!
    I'd like to ask you how did you prepare yourself from the business point of view . From what I see you have done this alone without a team, haven't you?
    As developers we sometimes leak that business knowledge, so I'd like to know how you approach that and how did you mange to do all of that from marketing to launching the course, how do you know what platform that you need and so on.

    1. 3

      Yeah, so it's just me — to be honest a lot of the "business" stuff happens now. Got an accountant, looking into building processes that will make it possible for me to hire a support person, stuff like that.

      I spent most of the summer unable to use a computer so I read/listened to a lot of books, stuff like Adam Davidson's The Passion Economy, Paul Jarvis' Company of One, Jeff Walker's Launch… Plus a bunch of podcasts (the IH podcast, Amy Porterfield's Online Marketing, The Online Course Show). Learned a lot from those resources!

  9. 3

    Fantastic Work Josh. Well done.

    Can you give us some insights about your creative process?
    Did you start by outline the course first and then work from there?
    Did you start by designing the platform user interaction and then worked from there or did you add that functionalities as you were going through your course steps?
    Did you design prototype sketch before implementing the code?
    How is your work process?

    Because you say you're a perfectionist (to which I relate a lot), how do you deal with launching without having perfect the process yet? (sorry for asking so many questions, but they are sort of related :) )

    1. 3

      So the creative process was sorta forced by the fact that I wasn't able to use a computer when I started this process — I had severe RSI. At the very beginning, all I could do was research and create outlines. When I actually started building, I had a pretty clear idea of how it would be structured (though it's also changed A LOT since those early days).

      Once I got to building, I bounced between content and platform, since the two influenced each other. I'd work on content and then add platform features necessary to support it. I also just like variety, so it's been fun to bounce between them.

      I drew some lo-fi sketches, but mostly I design as I build.

      At first, I was limited by my health. Since maybe November or December, though, I've been working 40-50 hours a week on this course (and maybe 10-15 hours on my blog). It's not really sustainable long-term, but after not being able to work for so long, I'm nowhere near burnout =)

      One fun thing I do: Fridays are my weekly day off, but with the pandemic there's nothing to do anyway, so I've been treating it as a whimsy day: I tackle fun tasks and bits of polish that otherwise wouldn't be high-enough priority to focus on. Stuff like celebratory fireworks in canvas when purchasing the course, nifty SVG paths between lessons, stuff like that.

      The course/platform definitely isn't as polished as I'd like, but I was watching my savings tumble off a cliff, so that incentivized me to release before I felt it was ready 😅 Plus, once I had a date on the calendar, it felt out of my hands.

  10. 3

    Hey Josh. I had a few questions for you!

    1. How did you grow your subscription base?
    2. How long did it take to get your subscription/follower count up?
    3. What were the main channels of advertising or letting people know about your course, and which were the most successful?
    4. Any thoughts on how/why it became a huge success? I see that you didn't initially think it would be, but maybe you had time to reflect on it?

    Great job on the launch!

    1. 3


      1. If you mean email subscribers, I covered that in this answer. It was a few different strategies that all helped a fair amount =)

      2. At the beginning of 2020, I had 10k Twitter followers (32k now), and ~1k email subs (28k now), so it's happened pretty quickly!

      3. My only real channels were twitter and email. Pretty much all the sales came directly or indirectly from there.

      4. I spent years happily creating free resources with no expectation of making any money from it (for the most part I just did it because it was fun, and partially because I thought it might help me land a better job; I wasn't really thinking that it would help me sell a course!). I think that developers especially respond well to people genuinely trying to help. We're really good at sniffing out someone trying to make a quick buck. The fact that I didn't take the obvious shortcuts (eg. releasing the materials on Teachable or Podia) helped a lot, I think.

      But really, I don't really know 😅 these are just my assumptions / what I'd like to be true!

      1. 1

        Thanks for taking the time to answer my questions.

        I was curious on two things you said:
        A) When you were creating resources, did you create them based on what people asked, or did you just make stuff up as you went along?
        B) What do you mean by shortcuts? Would you consider releasing materials on Podia or Teachable a bad thing? I guess Im not sure what you mean there. Can you clarify?

        It appears that you have released material over the course of (a year?) for free and it attracted more and more people, but I think the one thing I struggle with is how to know what attracts people in the first place. Seems like you had a good start!

        1. 2

          Ah, thanks. I do want to clarify something I said: I don't think that releasing through Podia or Teachable is necessarily bad, IF it's clear that I did it for the right reasons (because I wanted to put as much time as possible into the content).

          I've seen some folks who will spend, like, a weekend hastily recording a few videos, slap it on Podia, and start trying to sell it. It feels like a cash grab, people trying to monetize for the sake of monetization, not actually trying to help anyone, or produce something of value.

          So Podia/Teachable isn't itself bad, but it can be a sign that someone isn't really interested in creating a great resource, and cares more about a quick buck.

          In terms of creating resources, mostly it would be whatever I was already doing. If I learned something cool, I'd write a blog post about it, or share a minimal example on Twitter. Sometimes I'll have a great idea for how to explain something tricky, and that'll become the foundation for a blog post.

  11. 2

    First of all congrats. Well done. Did you launch your course on a website like meetup? Where did they find your course?

    1. 4


      Nope, the launch was pretty much entirely Twitter and my mailing list. A lot of the "standard" launch things like ProductHunt didn't do anything for me.

      1. 1

        Thanks. Did you do some marketing on twitter for your course or was it all organic? Also where did you get the mailing list from?

        1. 3

          All organic — I suspect for the price I'm charging, people would need to be already familiar with my work in order to pay $129. I doubt paid traffic would convert super well (but maybe at some point I'll test it!)

          So I have 3 separate mailing lists: My primary newsletter, the course waitlist, and a third list consisting of people who downloaded a free book I wrote and published last year.

          I spoke a bit about how I grew the primary newsletter (which is by far the biggest of the 3) here: https://www.indiehackers.com/post/launched-my-first-course-earned-over-us-500-000-ama-4382405cd5?commentId=-MW1WqTCdCbYH_tJkvqw

  12. 2

    Hey Josh! First off, Congrats on such a massive success. Did you got those all sales solely from your list and twitter?? Much interested in your launch strategy!

    1. 5

      Yeah, pretty much. And word of mouth.

      I posted it on HN and it got 3 upvotes, never got near the front page (which isn't at all surprising, HN doesn't usually go for sales landing pages). Posted on PH and it went nowhere.

      The biggest thing is definitely that I spent a few years helping the community without asking for anything in return =)

      1. 1

        Indeed, thats the all and only secret to massive success my friend. Serve your community selflessly and your reward awaits you. More Wishes and Best of Luck!
        You can also capitalize on your success and attract even more customers as well. As a marketer, I know strategies I'm sure will massively attract you new customers if you're interested and at fraction of the cost.

  13. 2

    You said that you build your own interactive framework , can you tell more about it?
    From tech point of view .
    Also where do you host your course ?
    And how much profite you left after hosting and services you use?
    What services you are using for this course ?

    1. 4

      Sure! So the stack is MDX / Next.js (and thus React) / MongoDB. I was initially planning on having a Node.js backend, but I've managed to do everything with Next, via API routes and SSR.

      MDX is the most critical piece. It allows me to create and embed one-off components, like the interactive widgets, the minigames, all that stuff.

      I plan on writing a blog post that really digs into this, though I can't promise it'll be soon 😅

      I estimate that my costs are about $450 a month. ConvertKit is the biggest, at $260 a month (28k subscribers). I use Vercel for hosting and so it's a ridiculously cheap $20 a month. MongoDB is $50 a month, Sentry is $20 a month… I'm sure I'm forgetting a few standard SaaS products.

      At this point it's 99% profit, but I will be spending a lot of that money on course improvements. Hoping to hire an accessibility firm to help me test the platform with users with disabilities. Will also need to hire someone to help with customer support.

  14. 2

    Congratulations Josh!
    I have a couple of questions

    1. what's your advice who never wrote any tutorial but wants to teach like you
    2. what's the average time need when you create most of your CSS blog post
    3. how did you choose which topic to teach
    4. how did you come up with the table of content for that course
    5. when https://css-for-js.dev/ will available again for buy
    1. 2

      what's your advice who never wrote any tutorial but wants to teach like you

      My advice would be to start writing tutorials 😅

      It takes a long time to get good at it, but yeah I definitely think people should start by creating free content. The mistake I see a lot of folks make is that they try to sell something before they've really built a reputation for themselves.

      I wrote dozens of blog posts on medium that nobody ever read. You can see some of my old work here: https://medium.com/@joshuawcomeau

      So yeah, practice and get good at helping people!

      what's the average time need when you create most of your CSS blog post

      Probably 10-20 hours, though it's really hard to say, since it's lots of small bits of time.

      how did you choose which topic to teach

      So in terms of my blog, I cover lots of stuff!

      For my course, I picked the thing I thought would be most helpful. CSS is the biggest frustration many front-end devs have, and I knew it was low-ish hanging fruit: in a few hours, I can teach things about CSS that will help you every day for years to come. The same isn't true for other things I could teach.

      how did you come up with the table of content for that course

      Lots of outlines and refining over time. It might still change. But yeah, just trying to figure out what skills were critical when it comes to building for the web.

      when https://css-for-js.dev/ will available again for buy

      When it's done — hopefully August or September

      1. 1

        Thanks you so much for your answer

  15. 2

    Is there any way we can sneak peek into the platform itself, maybe short video or something like that... kinda behind the scenes... how those 3d css models were created, hopefully I'll see those in the remaining modules?

    1. 2

      So there's a video on the landing page (https://css-for-js.dev/) — the second half of that video is a tour of the platform =)

      I'm not sure what you mean by 3d CSS models, but I should clarify that the course is really more about CSS fundamentals / getting comfortable with position and layout and stuff. I hope to include a lot of fun little extras, but I won't be going super deep into the whimsical touches (I think that'd be a separate course 😄)

      1. 1

        I meant for example that envelope thingy, separating pieces into layers, those are done by CSS right? those kind of stuff :D

        1. 1

          Ohh, yeah! We'll build that later in the course =)

  16. 1

    Congratulations! Boost your productivity today by using our free online Pomodoro timer app https://pomodoro-timer.io/

  17. 1

    Cool! The tech-lead on my team showed me your course the other day and told me he just bought it. Good on you!!

  18. 1

    did you work on SEO to improve the ranking for blog post or used other channels to get traffic to your websites ?

  19. 1

    Where are you hosting the video? CDN?

    what is the video player you are using?

  20. 1

    Awesome stuff, congrats!!

    I was just wondering how you view the trend of bitesize education and training videos like egghead.io screencasts?

  21. 1

    Congrats! I came across your blog last year and learnt a ton!

  22. 1

    It really looks amazing!

  23. 1

    Awesome story! A true inspiration for hard work.

  24. 1

    Wow, congrats Josh!
    Considering the amazing work you've done so far, the result makes sense. You deserve it!

  25. 1

    Congrats Josh!

    I’ve attended your whimsical animations workshop in Paris 2-3 years ago - was the best thing from this whole event.

    Keep it going!

  26. 1

    Congrats, Josh. I'm loving the course. Could you talk a bit about what you learned about pedagogy when you were at Khan Academy and how it inspired the approach you took with the course?

  27. 1

    Hey Josh, is there anywhere we can see your launch email sequence? Would you be willing to share any stats like open/clicks etc?

    Also, I'm interested to know how many sales were from email vs twitter?

    Thanks for the AMA, this is really helpful.

  28. 1

    Congratulations! I built an audience of 40k developers on Instagram + 5K on my mailing list. I'm planning to share more content on Twitter too.

    Q1: Do you think social media platforms play role in the sale process (Mean 40K on Twitter have a higher chance to buy compared to 40k on Twitter).

    Q2: Should I start my own blog or just focus on Twitter + Instagram

  29. 1

    Cool stuff, Joch! Keep posting and I wish you good luck!

  30. 1

    Congrats Josh! Are the 3D illustrations, SVGs on your blog, course handcrafted by you? or you hired a designer for those kinds of stuff? If those are your creations, please create a course on getting started with SVGs and 3D illustrations. I will buy it no matter how much it'll cost. 😅

    1. 2

      So the only thing I haven't created is the 3D avatar I use on my site (joshwcomeau.com). I hired an artist to create that.

      I am thinking of doing a whimsical animations and interactions course, and SVG would be a big part of that!

  31. 1

    Yesssss Josh!! So well deserved. Can buy a few Yo-Yos with that 😛

    1. 1

      Josh! :D good to hear from you

  32. 1

    Wow! All that from one country! It really puts marketing efforts in perspective

    1. 1

      Oh, there are sales from all over the world!

      About 35% of the sales are from the US, but that's a plurality: second place is the UK, but it's ~10% of sales. So on the map, the US is a very dark blue, but if you look closely, most of the countries in the world are a pale blue. The grey countries have 0 sales.

      1. 1

        All the other countries looked grey to me 👀 ... but now the pale blues are clearer.

        In any case, congratulations on your success ... It's truly inspirational!

  33. 1

    This is incredible and speaks to the deep value work many won't do in order to achieve these results. I've built courses for many speakers in various verticals, and there are two things that you mentioned that people miss:

    1. Long-tail, value-driven, semi-evergreen (tech evolves) content is worth every hour and penny. This means having a mindset that you'll be building for at least six months before seeing a financial gain. Investments are dollars, time, and checking your immediacy ego.

    2. Selling a course for $9 and selling a course for $900 takes the same amount of effort. That you made 500k on a course that is not completed speaks to the value of your free content that you've been publishing often. The price was not really a factor for your early course subscribers.

    Bonus points: There are two points that matter in course monetization 1. The open 2. The close. This is reflected in your graph. People who spend time understanding the "pain points" and interests of their audience through something like a Deep Dive Survey or their most popular posts have a better chance at succeeding the way you did at the top.

    All in all, CONGRATS! I love when course launches go this well and your insights are invaluable.

  34. 1

    This is amazing. I do courses through the Pluralsight platform but I've always had it in the back of my head that there's gotta be a better way to make online courses. Your approach is right in tune!

    Have you thought about the cohort approach? It's such a powerful learning device and some indie course creators (like KCD) are adding cohort-like features to their courses. As I understand it, it's such a cobbled-together thing with no real cohort-based platform to build on. Such a great opportunity for someone to swoop in and solve a real pain point for online course creators.

    The blogging approach is great. I have a blog, but I don't write on it much. I've actually been sending weekly newsletters to good effect but I hate how it's not integrated. I'm actively trying to switch over to Ghost so I can integrate my newsletters as blog posts, which I do for my wife and I's lifestyle blog (which has more subscribers than my personal blog LOL).

    1. 2

      Yeah it's interesting; I wound up having a de facto cohort, since registrations were only open for 1 week.

      I'm not currently planning on keeping it cohort-based because I really like the idea of people being able to start whenever they like, not having to wait for the next cycle.

      I've been thinking about doing a design course in the future… and for that, cohorts might make a lot more sense. The way I'm thinking about it, it would be more of a traditional course, with assignments and feedback and stuff. So in that context, a cohort starts to make a lot of sense.

      But that's all distant-future stuff for me :D we'll see how it goes!

  35. 1

    Inspiring story, exactly how it should be done! It proves that there is a connection between hard work, patience, and success. Good luck with your next growth targets!

  36. 1


    Also congrats, course looks good!

  37. 1

    First off - congrats, this really is some achievement! My question is:
    Have you earned any money from your blog before launching a course? If yes then how?

    1. 3

      I have not — it's actually been a not-insignificant expense 😅 It's cheaper now that I'm on Vercel, but for a while it was something like $100 a month, on Netlify (it used a lot of bandwidth, + I had the "functions" and "analytics" addons).

  38. 1

    That’s a great idea for a course. Same old stuff but from a fresh angle that resonates. Congrats :)

  39. 1

    Congrats @Joshwcomeau! Awesome numbers. Two quick questions:

    1. How did you decide that you needed to build a custom platform? (vs using existing course creation platforms)

    2. Are you thinking about productizing the platform so it can eventually become a SAAS? (I guess this would answer question 1 :P )

    1. 2

      For #1, I'll copy an answer that got buried below:

      Yeah, so I decided to build my own platform for 2 reasons:

      1. I'm a perfectionist and I couldn't bear the thought of not having control over the presentation of the materials
      2. I wanted to build minigames and interactive widgets and other things that really wouldn't fit into an existing platform.

      For #2, I suppose I could have made heavy use of embedded codepens, but it wouldn't have felt as nice.

      It was absolutely worth it, IMO. It doubled the development time, but I doubt it would have sold as well if it was a Podia or Teachable course. And honestly, the course is better because of it; I was able to apply the CSS ideas I was teaching in the course platform itself!

      I know Wes Bos is big on this idea as well: you don't want to become an instructor that never builds anything. By maintaining my own course platform, I always have a significantly-complex project I can work on, experiment with.

      For #2, I don't think so. I have less interest in running that kind of business. One thing I might explore is partnering with 2-3 aspiring course creators and having them launch on this platform. I think I'd find it super rewarding. But it wouldn't be a "anyone can sign up and publish for $X a month" kind of thing.

  40. 1

    Epic launch!

    Was wondering what you do about your older medium blog posts.
    Don't you want to move them to your new domain for SEO ? Or do you think it's not even worth it and consider the new domain for more polished and interactive content like you produced this year?

    1. 1

      They're not good enough to be worth the trouble 😅

      I've done it for a couple posts (eg this one), but wound up substantially rewriting it, since I've gotten much better at writing blog posts. It's too much trouble.

      Plus, the sorts of things I've written about has changed over the years.

  41. 1

    Congratulations Josh! You deserved it for all the work you put into the community, significantly your blog posts. Your blog is one of the best in the inter-webs (at least that I know) in terms of content, technicality, and delivery.

    One question I had is about the custom platform that you build. Firstly, why did you decide to make it? What was missing in the existing ones, and second, is this something that you might open source or have as a SaaS for others who might want to release courses?

    1. 1

      Appreciate it, Joey :)

      Copying from an answer that got buried:

      Yeah, so I decided to build my own platform for 2 reasons:

      1. I'm a perfectionist and I couldn't bear the thought of not having control over the presentation of the materials
      2. I wanted to build minigames and interactive widgets and other things that really wouldn't fit into an existing platform.

      For #2, I suppose I could have made heavy use of embedded codepens, but it wouldn't have felt as nice.

      It was absolutely worth it, IMO. It doubled the development time, but I doubt it would have sold as well if it was a Podia or Teachable course. And honestly, the course is better because of it; I was able to apply the CSS ideas I was teaching in the course platform itself!

      I know Wes Bos is big on this idea as well: you don't want to become an instructor that never builds anything. By maintaining my own course platform, I always have a significantly-complex project I can work on, experiment with.

      I'm not super interested in making a course-publishing platform; honestly for most folks, Teachable/Podia/whatever would be a better option. The real benefit is that I can create custom React components to embed, I can have the power of a React app with the writing ergonomics of Markdown. But that's a hard thing to generalize into a SaaS (unless it really is just for folks who want to teach programming using MDX and React, but that feels so niche).

      The thing I'm more interested in is partnering with aspiring course creators and working with them to publish through my platform. But we're years away from that; first I need to publish a couple courses of my own :D

  42. 1

    Congrats! 500k for your "pre-launch" is amazing! I'm sure your hard work over the years of sharing your knowledge has paid off.

  43. 1

    Congrats Josh! It's inspiring to see that hard work is rewarded in this World

  44. 1

    Congratulations Josh, this is amazing!

  45. 1

    I saw that course few days ago on Twitter. Your landing page blow my mind. I inspected almost every div on DevTools and learned a lot of new techniques without even buying your course. 😅

    I already use some techniques learned from your landing page on https://lesserui.com/ and that changes made my website way better than its initial version.

    I wonder which solutions you are using for managing your newsletter?

    1. 2

      Glad to hear it! Yeah, I use a lot of fancy techniques on that page. Honestly the course doesn't go into SVGs and things, I hope people aren't being misled… I have plans in the future to do an advanced course on whimsy and animations, and all that stuff would be covered there.

      I use ConvertKit. I'm not SUPER happy with them, especially for the cost ($260 a month), but they work well enough.

  46. 1

    Congratulations! And a great topic :)
    You mentioned in your intro video on the landing page that you learned at a deeper level by digging into MDN docs and CSS spec...what was one important thing you did once you decided to go from learning for yourself only to share and teach others? Did it change how you were learning, did you take more notes or do more experiments? Just curious (I'm interested in pedagogy and meta-learning techniques and am a teacher as well)

  47. 1

    Congratulations Josh!! Thank you so much for the transparency! I wanted to ask what was the tech stack you used to build it, including DevOps even... I'm really curious

  48. 1

    Would you consider re-opening signups this weekend just for us here on IH?

    I wish I'd seen this post before it was too late!

    Also, how are your wrists, etc now? Severe RSI is a big part of why I started Alchemist Camp 3 years ago and I've only really felt at 100% the past 4 months or so.

    1. 3

      Afraid not 😅 honestly I'm already pretty overwhelmed with support tickets, and it would make me feel a bit slimy to reopen registrations, since presumably people hustled to make it in time for the deadline.

      My RSI is doing better =) I have cubital tunnel syndrome and it manifests primarily in the elbows, but it's 99% better. I plan on writing much more about this because it's really interesting and (I believe, anecdotally) there's a lot of misconceptions about it.

      1. 1

        Yeah fair enough. I've already set myself a reminder to check in around Black Friday and joined the email list. It looks like a really impressive course worth learning from.

      2. 1

        I think Courtland talked about RSI in one of the recent IH episodes on noodles-making. You may want to listen to it if you haven't!

  49. 1

    Everything about this is incredible. Huge congrats 🎉

  50. 1

    There are already 5 modules available. Do you have an idea of how many exercises did you threw away or how many sketches/major re-iterations did you do so far along the way?

    1. 3

      It hasn't been too bad — maybe 20% of material didn't make the cut.

      Most videos took 4-5 "takes" to get right, though. Video has been the slowest part for me, because it's the least familiar. Still a novice with that stuff!

  51. 1

    Could you share a little bit about the timeline behind this course?
    You mentioned you started last year in August, but when was the very first time you had the idea of creating an online course? How long after did that idea evolved to this topic?

    When I read your post I think "Oh, 7 months only? That was quick!" I'd like to know more about the backstage - idealization, planning, and re-iterations.

    1. 3

      When I was first working on the course I wasn't really able to use a computer, but I could use a phone, so I created a lot of outlines and did a lot of reading/research… I think that was mostly in August, though, so it's included in the 7 months.

      It's important to note that it was a "full-time" thing, though. If I had been working another job at the same time, it would have been more like 2+ years 😅

  52. 1

    Amazing Josh congratulations. Personally I loved your post 'The styled-components Happy Path' as a junior developer it really helped improve the way I manage CSS in my projects.

    1. 3

      Glad to hear it 😄

      Incidentally, that post was repackaged from the course materials — I've been getting a lot of blog post ideas out of the course content 😅

  53. 1

    Massive congrats! Please tell us more about the custom features you built into your platform?

    1. 4

      Hey Christopher!

      So the biggest thing is that I use MDX to embed "custom stuff" in each lesson. It's an extension of Markdown that allows me to inject pretty much whatever I want!

      The coolest part of this IMO is the minigames. I have 4-5 examples where CSS concepts are taught through little games/quizzes. My favourite involves dragging rectangles around to the correct position, like a puzzle, based on the shown CSS (the concept being tested is around margin collapse. The questions get way more challenging, but this demonstrates the concept best):

      A rectangle is dragged to match a CSS snippet

      It's also just nice not having to pick a "media type" for each lesson. A single lesson might include some words, an interactive widget, a video, and a couple exercises.

      1. 1

        Niiice! Yeah I'm a big fan of mdx too, using it a lot with a custom Gatsby theme (I just realized you used to work for Gatsby).

        If it's not too much secret sauce how are you doing the drag and drop animation stuff?

        1. 3

          Definitely not secret sauce, but I don't quite know how best to explain it 😅it's my own solution, I listen for mousemoves, get the delta between the start and current position, round to the nearest 20px interval, and update.

          I also listen for key-up/key-down, all of the games work without needing a mouse :D

  54. 1

    Wow this is amazing! Congrats mate! well bloody done!

  55. 1

    CONGRATS Josh!! Not a developer but read an article you wrote about collaborating with designers and have shared it with many people.

    Love seeing people build engaged audiences and gaining freedom as a result. Sorry to hear about your injury, but maybe this is the silver lining :)

    Since it's an AMA: your site is incredible - can this be made in Webflow? Particularly like how you designed the modules.

    1. 2

      Hey Linda! Thanks for the kind words :D

      I haven't used Webflow much so it's hard to say 🤔the trickiest part about that UI is that the dashed lines get redrawn based on the window size. It's kind of a tricky thing to do even in code… though from what I've seen, there isn't much that Webflow can't do! I'm just not the right person to ask 😅

      1. 1

        No worries! Ya I imagine responsive gets tricky.

        Anyway, excited for you! What an achievement that will inspire many others

  56. 1

    Thanks for all your hard work and for the course. Work bought it for me as they are investing in me to be the UI/UX Architect guy.

    I know you are still working on finishing this course so it may not be the easiest question to answer, but do you have any plans for future courses at this point? And if so, could we maybe, potentially, hear what those are? 🤣

    1. 2

      Hah, it actually is something I've given some thought!

      I'd like to do one on animation/interaction/whimsy/"polish", since I think it's something I'm well-known for / could teach well. I debated doing this first, but wanted to pick something with a) broader appeal, and b) more potential impact (so many developers hate writing CSS; if I can change their relationship with it and make CSS fun, that's transformative!).

      I also wanna do one on design. Which is ironic because I'm not a designer... but I've picked up a few things over so many years of building stuff.

      But yeah, it's way too soon to say :) time will tell!

      1. 1

        Exciting stuff! I'm sure your audience will only grow! Glad to be apart of it!

  57. 1

    Awesome! It's been great seeing your blog grow and (rightfully) get showered with love over the last year. I'm curious if you have any advice on how to come up with original ideas for blog posts. I really struggle to find something that I'm good at + that people want to read + that doesn't already have tons of articles published about it.

    1. 6

      Thanks so much :D

      That's a great question!

      Honestly I don't think the topic needs to be unique. My strategy has been to take a unique approach to teaching a well-covered topic. For example, I wrote a blog post recently that introduces CSS transitions; there are likely thousands of blog posts explaining how CSS transitions work, but none that feature this nifty interactive widget I created for it:

      An interactive widget showing different timing curves

      That's a pretty extreme example since it uses a pretty unique interactive thing, but sometimes the "unique perspective" is more subtle. I wrote a blog post explaining how to test localhost on an iphone, and there's nothing special about it, but people still found it useful.

      Everyone has different learning styles, and the internet isn't perfectly discoverable. There might be 100 blog posts about something, but yours might be one of the 4-5 posts that people discover. And for 25%+ of people, yours might be the one that finally makes the concept click!

      I think it's true that finding a unique topic has an intrinsic advantage (easier to rank, more likely to be shared), but it's certainly not a requirement; I'd never be able to come up with a new blog post every 2 weeks if I held myself to that standard 😅

      And to be clear: now that I have an audience, it's easier for me to publish something that is already well-covered. I don't want to diminish the advantage that it has. But I think if you're consistently publishing quality content, you'll get there too. For context, I think I've published >150 blog posts, between my personal site and Medium.

      Hope this probably-way-too-long answer helps!

      1. 1

        Wow, Thanks! That helps a lot

  58. 1

    What are your thoughts on building a custom course platform? Was it worth it? (Asking because to me, it sounds like a fun thing to do!)

    1. 5

      Yeah, so I decided to build my own platform for 2 reasons:

      1. I'm a perfectionist and I couldn't bear the thought of not having control over the presentation of the materials
      2. I wanted to build minigames and interactive widgets and other things that really wouldn't fit into an existing platform.

      For #2, I suppose I could have made heavy use of embedded codepens, but it wouldn't have felt as nice.

      It was absolutely worth it, IMO. It doubled the development time, but I doubt it would have sold as well if it was a Podia or Teachable course. And honestly, the course is better because of it; I was able to apply the CSS ideas I was teaching in the course platform itself!

      I know Wes Bos is big on this idea as well: you don't want to become an instructor that never builds anything. By maintaining my own course platform, I always have a significantly-complex project I can work on, experiment with.

      That said, it was risky and probably not the most prudent course of action. It would have maybe been smarter to validate demand with a smaller-scale product. I spent 7 months building without any real idea if people would buy it, which is like the #1 mistake Indie Hackers make 😅. Though, honestly, I had done a lot of the validation in other ways. So it wasn't quite the same as building something random and hoping it'll find demand.

      1. 1

        there is your next product, make that software into a course platform, it looks very nice.

      2. 1

        Yeah #2 is something I would want in my platform as well. This makes perfect sense. But hey in the end, it worked out in your favor!

        Thanks for the detailed reply! 🙌🏼

  59. 1

    Congratulations! ;) happy for you! will it be a SaaS platform one day?

    1. 1

      Thanks so much!

      I answered the SaaS question just below ↓

  60. 1

    Awesome stuff Josh! Will you be selling your course platform as a SaaS someday?

    1. 4

      I don't think so — it's an interesting idea, but I don't think I'd have as much fun operating that kind of business.

      I have thought it might be fun to partner with individual course creators, work with them to publish through my platform. But that's many years away, if I actually decide to do it 😅

  61. 1

    Awesome stuff. Where do you think you'll take things once this course is completed? Future courses? Other products you've been meaning to build?

    1. 2

      That's a great question!

      From where I'm sitting right now, I imagine I'll do another few courses. The two main ideas I'm wrestling with:

      • Advanced animation and whimsical interactions
      • Design foundations for developers

      I think I'm particularly well-suited to teach these two things, and I think I'd have a lot of fun doing them!

      But yeah, I'm going to be spending the next several months finishing up my existing course, and we'll see what I feel like doing after that!

      The most amazing thing about this result is that it buys me the time to experiment with different ideas / see what I feel like doing!

      1. 1

        • Advanced animation and whimsical interactions

        I would sign up for this :)

  62. 1

    Whoa! HUGE congrats, Josh! Well deserved, I'm thrilled for you.

Trending on Indie Hackers
Rejected from YC 17 comments 29 days left before 2022 🔥 What do you want to finish & accomplish before the end of the year? 15 comments People found our landing page confusing. 5 comments Bootstrapping a SaaS that uses AI to explain code in plain English 5 comments Live Below Your Means for Freedom 2 comments What new technology are you currently learning? 1 comment