I've gone full-time on my project! Here are 5 lessons I've learned over the past 2-years working on it.

After 2-years of working on my side project Frontend Mentor, I'm excited to say that I've decided to go full-time on it! It's been quite a ride since starting the site as a simple resource list for front-end developers. I decided to take a slow and steady approach to grow the site and the community while supporting myself financially with contract work.

After a number of experiments over the years, we launched our subscription in August this year. Current revenue since August is $33K with over $4.5K MRR. So I've decided that there's enough of a cushion to take the plunge! I'd love to share some lessons I've learned along the way.

TLDR Here are the major lessons I've learned since starting Frontend Mentor:

  • No matter how small your idea is, launch it. Frontend Mentor started as a resource list for front-end developers. Putting it live online gave me a massive motivational boost. This boost sparked the idea for professionally designed projects to help developers practice.
  • Launch in the smallest increments possible to validate your idea. The update to Frontend Mentor that included a project to download was added in a day.
  • If you can, find a co-founder. I got lucky in that Mike also worked at General Assembly and was interested in my idea. He joined to help out informally at the start, but we soon realised it was a great partnership and we're still both working on it to this day. Frontend Mentor wouldn't be anywhere near as far along as it is now without him.
  • Have a clear idea of why you're creating your business. I've discounted some viable business models for Frontend Mentor because they don't fit with the type of business and lifestyle I'm trying to create.
  • Be patient. Steady growth over time is an amazing way to build a sustainable business as an Indie Hacker. You'll naturally desire hyper-growth, but don't get impatient and kill your project unnecessarily. Think of your business as a "stayup" as opposed to a startup. Try to keep it going, by all means necessary, until you're 100% certain it's not going anywhere.

Even if you feel your idea is too small or not unique, launch anyway

Back in 2018, I was trying to launch a different company. It was a fitness app and I'd spent 6-months building and still wasn't anywhere near to launching even the first version.

I had recently signed up to Indie Hackers and had been reading some great interviews and listened to all the podcasts. Hearing other people's stories of scaling down their ideas and launching fast inspired, but also frustrated me. The app I was working on was a massive long shot. I realised I had done pretty much everything wrong.

Out of that frustration, I decided to launch a different project and focus on getting something live as fast as possible. I was always writing lists of resources for my students at General Assembly. So I decided to create a single-page site for that. Not exactly groundbreaking, but it served a need, so I thought it would be a useful project.

I got lucky in that I immediately thought of the name Frontend Mentor and all the socials and a .io domain were available (I've since bought the .com for $350).

I built and launched the resource list within a couple of days. I shared it around on some social channels, including this LinkedIn article.

As soon as the positive comments started coming in I got a massive jolt of motivation. As a result, I couldn't stop thinking about how I could extend Frontend Mentor to be more than a resource list. Which then led to the idea of using design-led challenges to help people improve their front-end coding skills.

So whatever your idea is, I'd say launch it. You never know what additional ideas it will lead to!

Launch in small, incremental chunks to validate your idea

The idea for the design-led coding challenges came from my teaching work at General Assembly. My students would often ask where they could go to practice building projects after finishing the course. My go-to reply was always to build personal projects or try to re-create Dribbble shots. But I was never satisfied with this answer because that's not how professional front-end developers work. So they wouldn't actually be learning to build projects in a realistic way!

As soon as I had the idea to offer professional designs for people to build, I started trawling the web to find designs that I could use. My searching led me to Sketch App Sources which is where I found my very first design. I emailed the designer and offered to link to their website for credit.

Another day of building and another article later and the very first version of Frontend Mentor based around challenges was live!

Sure enough, people started downloading the design, building the project, sharing their solution around, and asking for feedback. Although this didn't validate a business model it validated my core hypothesis that given a design people would download it, build it, share it, and try to get feedback. I knew I needed to be the one to give feedback in the early days. But I also knew that giving feedback is in itself an amazing way to learn and give back to the community. So, given time, I thought it was likely others would also pitch in and a community could grow.

At this point, I was lucky that a mate of mine, who's a brilliant designer, offered to help me with branding and a first design for the site. Up until that point I had done all of the design work myself and you can see from the screenshot below, it wasn't the most beautiful site!

Screenshot of the Frontend Mentor homepage from June 2018

Once we had a brand and some nice looking designs, I decided to build the next version of Frontend Mentor using Wordpress as a headless CMS with Next.js on the front-end. Still no signing up at this point. Just challenges to download and a Slack community to get help and share your work. The focus was on making the site look more professional and finding out what would be needed for the platform.

The Slack community was amazing to help me figure out what would be needed to create a platform where people could sign up, submit solutions, and give/receive feedback on solutions. As soon as I was confident about what I needed to build, I made a start on building out a Node.js API. It was at this point that my friend Mike, who worked full-time at General Assembly, expressed interest in helping me out with the platform build.

Together, we built out the platform launching it using a beta. subdomain and a banner at the top of the main site to start diverting traffic to the app. We only moved the platform over to the main domain when we were sure it was good enough for prime time.

Taking this incremental approach to build out each stage meant that I was confident that we were building the right thing at every step. Once you've got an idea, find a way to launch the core offering as soon as possible. Then use your early members to help build out the right solution.

If you can, find a co-founder

As I mentioned above, my friend Mike took an interest in Frontend Mentor after seeing it a few times. He offered to help and I was only too happy to accept! This happened when I had started building out the Node API myself. Mike's a back-end developer, so he immediately took over that part of the build and I focused on the front-end and the rest of the business.

I couldn't even imagine what Frontend Mentor would be like without Mike being involved. The site would be nowhere near where it is today. It sounds obvious, but having a co-founder will move the business forward so much faster. It also has many other benefits, including accountability, camaraderie, and diversification of opinions.

Don't force finding a co-founder. But, if you can, working with someone you know and trust will do wonders for your idea.

Have a clear idea of why you're creating your business

If you're trying to start your own business, it helps to know exactly why you're creating it. This sounds blindingly obvious, but I've known people who want to start a business but don't know their "why". Mine is freedom. Freedom to choose how I spend my days. Freedom to choose where I live. And, hopefully, financial freedom!

This is something Mike and I agree on. We're not aiming to build a gigantic, grow-at-all-cost business. We want to create our own version of a perfect lifestyle. For me this means:

  • Working on a project I love and am passionate about
  • A flexible schedule throughout the week where I choose what to work on and how I spend my time
  • Location independence
  • Building a business that isn't a pure money-for-time trade-off and is scalable
  • There are more, but I won't bore you!

Having a clearly defined "why" has helped when searching for a business model to make the project financially sustainable. I chose to go the opposite route to what is usually recommended. I started out with a free platform, built a community around it, and then monetised later on. I chose this route because I didn't want to force a business model that didn't match up to my why and my idea of the lifestyle I wanted to create.

For example, one of the early business model candidates was to allow people to pay for guaranteed feedback from a professional developer. It was something I had some requests for and it made sense given the overall purpose of the platform. But, turning the platform into a two-sided marketplace with learners paying for mentors would add a lot of complexity. After researching mentorship platforms, it became clear that it was a tough business model to get right. It was also still going down the money-for-time trade-off route that I wanted to avoid. Even if it wasn't always going to be my time in the future, there would be a lot of moving parts and management necessary to make it work. So I decided against it, not because it wouldn't work, but because it didn't fit my criteria of the type of business I wanted to create.

Think of your business as a "stayup" as opposed to a startup

Be patient. There will always be a desire to launch something and have it immediately take off and achieve hyper-growth. But the reality is that it will be a slow burner. You'll need to show up day after day and be fine with tiny growth numbers week-to-week and month-to-month. But this is all completely fine! The fact that the numbers are so small in the beginning means that the stakes are extremely low and you can spend your time constantly talking to your users and refining your offering. Here's our chart of monthly new sign-ups from when we launched the platform in April 2019:

Graph showing user growth since April 2019

As you can see the growth was slow in the beginning. The static site had also been up for 6-months by the time the platform launched. So it was a slow, gradual process. I could have easily shut down the project due to slow growth, but I kept working on it.

The key questions I asked myself at regular intervals to decide whether or not to continue were:

  • Do I still enjoy working on this project?
  • Does it seem to be serving a purpose and helping people achieve their goals?
  • Does it feel like it's moving in the right direction?

As long as my answers to those questions was "yes" I was happy to continue working on it. Not exactly scientific, but it kept me motivated, even when I hadn't decided on a business model.

Talking about a business model, staying patient allowed me to wait for the right business model to emerge instead of forcing one. Here's how I ended up at the current model:

  • When I first launched the challenges I launched them for free with JPG versions of the designs. Very quickly, people started asking for the Sketch design files. Seeing as I already had them available, I decided to add them as optional one-off purchases for each challenge. I used Buy Me a Coffee for the paywall and added them as Dropbox downloads.
  • As people built more challenges and added their solutions to their portfolio I started hearing about people getting interviews based on their Frontend Mentor projects. All challenges were single landing pages or small components. So I thought it would be useful to have premium challenges that offered designs for multi-page, fully-functional sites, and included mobile, tablet, and desktop layouts with a professional design system. This would allow people to create incredible portfolio pieces to showcase their talent. After some conversations in the Slack community, I decided to add a premium challenge. We moved to Paddle to offer the design and premium challenge downloads using a single payment provider. I kept it as one-off purchases to validate the demand for premium challenges and reduce complexity.
  • As the library of premium challenges expanded, people started asking for a subscription option. This was something I was already planning, so it was great to see the community asking for it. We decided to go with Chargebee to handle the subscriptions, using Stripe and PayPal as our payment providers. We added a couple of additional features that people had been asking for like private solutions and unlimited solution screenshots and launched the subscription in August this year.

Before adding any of these features I made sure they met our criteria for our idea of a business we want to run. As we included these paid add-ons and started experimenting, income was still low. But by continually asking myself the above questions, I was happy to keep pushing forward as I was sure we were moving in the right direction.

I was able to continue working Frontend Mentor even though it was costing me money every month because of my contract work. If I had made the jump full-time before the business was ready we may well have forced a business model that wasn't right for us.

So this is where I recommend treating your business as a "stayup" as opposed to a startup. If that means you need to continue to work your job to support your side project then do it. Buy time so that you can grow your business gradually and focus on creating the business you want to work on.

Whatever you do, don't kill your project because it's not hitting some arbitrary revenue goal you've set. As long as you can answer "yes" to the 3 questions above, try keeping your project alive for as long as you can. At some point, the growth will hopefully start to compound and you'll see larger and larger numbers.

What would I do differently if I could have my time over again?

There is absolutely no doubt I could have reduced the gap between adding paid designs and adding paid premium challenges. It was obvious fairly quickly that premium challenges were something the community wanted. So I should have got one up as soon as I could to validate that there was demand and move towards a sustainable business model sooner.

For some reason, I waited. I added the paid design add-ons in October 2018, but I launched the first premium challenge in February this year. I could have easily added premium challenges much earlier and I probably would have been full-time on Frontend Mentor for a while by now. Mike might even have been able to be full-time on it by now too!

So that's a big one. My major takeaway from that is to be patient and don't force opportunities, but when they do present themselves go after them with speed.

What are the next steps?

Well, as I mentioned at the beginning: I'm now full-time on Frontend Mentor! As you can see by the screenshot below, since launching subscriptions in August, we've generated over $33K revenue. Our MRR is now over $4.5K and it looks like our monthly revenue will be around $6K with yearly subscription sign-ups included. This will hopefully start moving north soon!

Screenshot of the Chargebee dashboard showing revenue numbers

There's enough of a financial cushion for me to feel confident moving full-time. The aim will be to keep growing subscriptions and evolving the offering so that Mike can come full-time on it as well. Hopefully, that will be sooner rather than later!

I hope you've enjoyed reading about my journey with Frontend Mentor. Please feel free to ask any questions in the comments!

Trending on Indie Hackers
Bootstrapped a Shopify app to 500+ paying clients with an MVP. AMA! 27 comments Rejected from YC 12 comments Milestone: $1 million paid out to mentors (soon) 8 comments First Launch on Product Hunt! 7 comments 29 days left before 2022 🔥 What do you want to finish & accomplish before the end of the year? 6 comments Launched our first chrome extension 😳 4 comments