Published on
Reading time
17 min read

Celebrating 1 year of Ship SaaS


Hello world

I'm Nico, a part-time indie hacker trying to make enough money so that I can become a full-time indie hacker. Over the past 3 years, I built and launched quite a few tools and products - mostly unsuccessful.

But one year ago one of my products stuck (sort of). On the 1st of October 2021, I launched - a Next.js, Supabase, and Tailwindcss SaaS boilerplate. For the first month after I launched I made exactly 0 sales. But having embraced the spirit of "building in public" I kept sharing my work on Twitter. And on the last day of October 2021 (a month after the initial launch), I made my first sale. Since then I made just over $5000 selling this SaaS boilerplate.

This post is a reflection on my first (somewhat) successful year as an independent software developer where I will share my failures, successes, and what I learned in the past year.

An idea for a piece of software

How I got the idea?

SaaS boilerplates are not new. There are thousands of SaaS boilerplates on the market - each with different tech, approaches, opinions, and advocates. And in September 2021 I was tired of building all my new ideas from scratch and wanted to build something in the fastest way possible. One thing that piqued my interest was a SaaS boilerplate because I didn't want to spend time on the "boring stuff" like login screens, password reset, or account pages. I just wanted to jump straight to building the actual features for my product (the real money-making features) 😄

When I started looking for a SaaS boilerplate with my preferred tech stack (Next.js, Supabase, and Tailwindcss) I couldn't find anything. The common advice on choosing a tech stack is usually "use whatever allows you to ship fast". So I had no interest in learning a new tech stack just to be able to use a SaaS boilerplate.

The idea for this boilerplate was born. The core idea (SaaS boilerplate) was already validated because there are lots of products on the market with various levels of success. I just had to create one with my preferred tech stack and profit (or so I thought) 💰️

So I paused the original idea I had at the time and started creating the SaaS boilerplate that I would've liked to exist. Two weeks later I had the first version ready for launch.

In my opinion, the combination of Next.js and Supabase (considering you like React) is by far the best tech stack for 95% of indie hacker projects. It has the least amount of DevOps overhead, is incredibly stable and massively scalable and it's literally free for up to 10 000 users. You'll struggle to find a better deal than that.

Lessons I learned building Ship SaaS

Lessons learned during the past year

When I first launched Ship SaaS I had no idea how much I didn't know about the sales and business side of things. I knew how to code and had a lot of confidence in my ability to build a SaaS product, but selling stuff online makes you more of a "businessman" than a software developer. And you have to start thinking like that.

So here are 5 lessons I learned during the past year. Some of it you might have seen before in "conventional IH wisdom", but I'll repeat it because I experienced the importance firsthand:

Lesson 1 - Launched at a crazy low price (huge facepalm)

It's a common problem among indie hackers. For some reason, we always undervalue our work (especially in the beginning when you're product is missing a lot of features) and don't realize that people are willing to pay much more than we expect for our value offering. So I pre-launched at $10 (again huge facepalm). At that point, I did not have the necessary confidence in the product and didn't realize the actual value it can provide. Some people on Twitter and IH even asked why it was so cheap. Fortunately, I made no sales at $10.

So I decided to increase the price to $50 and got my first sale. And then 2 weeks later I increased it to $80. This was still too low, but at least people thought they were getting more value from an $80 product than a $10 product. Then I got some responses from my initial customers and it was… overwhelmingly positive. I realized that this product is actually much more valuable than I expected.

Over the last year, I gradually increased the price to the current price of $399. With every price increase, I felt that I needed to offer customers even more value, so it forced me to improve the boilerplate a lot over time.

On the value of a SaaS boilerplate - most people think that paying $400 - $600 for a SaaS boilerplate is expensive, but considering that you're getting a fully working codebase with features that would take a full-time developer 4 - 8 weeks to complete ($10 000+ if you have to pay someone) it's actually incredibly cheap. As a developer, you always have the option to build everything yourself, but you would just be re-inventing the wheel. Why not buy some good wheels instead and build a car faster ;)

Lesson 2 - Sometimes you have to keep going even if nobody pays attention (and sometimes people do pay attention, but not publicly)

For the first month after my initial launch, there was complete silence. Before the launch, I shared a lot of things while building, got some positive and enthusiastic responses, and embraced the "build in public" movement fully. But when I eventually launched, none of that initial enthusiasm resulted in sales.

But I figured it takes some time (and I only had about 450 followers on Twitter at the time) so I'm going to push through. I struggled through the entire month (1 - 30 October) without a single sale. On the last day of the month, I started having doubts about the value of my product. Although I believed in it, many people did not see its value yet. So I started wondering, did I really just build this for myself? And on the last day of October 2021 (while having big doubts about my product) I made the first sale. And after I could share the joy of my first sale publicly the subsequent sales came much easier.

In the end, my first customer was not one of the "enthusiastic" commentators on Twitter, but someone I have not interacted with or known at all. Then I realized, even if it feels as if nobody is paying attention, there are always people paying attention but not saying anything. Twitter and Indie Hackers are full of "lurkers", but those people also buy, build and try stuff often. So sometimes you just have to keep going despite the silence.

Lesson 3 - Talk to your customers

"Talk to your customers" is probably one of the biggest clichés online. But it's a cliché for a reason - it works and it's crucial for a successful business and product. If you don't communicate with current and future customers in some form, how do you know what to build next or if you're building the right thing? It's a relatively low-effort activity that can provide HUGE benefits. You are building a product for your customers after all. If they need a feature or have a question, you should know about it because it will also improve your business for future customers.

So, inexperienced as I was I did not focus on reaching out to customers after they purchased my boilerplate. I waited for them to reach out to me (but very few actually did). Sending a quick follow-up email after a purchase is a great way to check and see if they got everything they need. Some customers won't respond and that's ok. But the ones that do respond allow you to gain valuable insights to improve your product. Don't wait for your customers to reach out to you, reach out to them first.

Lesson 4 - Never trust people that praise your product in public, but do not buy it

When you post or share your ideas or product online there usually are some people asking whether you have feature X or Y. And if you say no they'll probably say something like "ah damn, I'll only buy when you have that feature". Never trust those kinds of people. I made the mistake a couple of times of building something that some random person asked for and when I sent it to them… crickets. They didn't really want to buy in the first place, they just felt the need to engage.

I admit that this principle is tricky to apply in the early stages when your product is missing a lot of features. Then it's easy to justify to yourself that "other people will also need this" so I might just build it. That is true to some extent, but if your core offering is good and people don't want to pay for that core offering, then building one extra feature will most likely not convince them to pay.

Lesson 5 - It's ok to make mistakes

We often see a lot of (clickbait) posts about "how I made a crazy amount of money in absurdly little time". I've tried to condition myself to never click on those links because it's always the same story and it paints a distorted picture of what it's really like building a business. Those kinds of stories are usually written in a way where it sounds like everything was done perfectly and the money started rolling in naturally. But in reality, everyone makes mistakes. Very few people want to admit those mistakes (even fewer in public).

The point is, just because most people don't admit their mistakes does not mean they didn't make mistakes or learned something from them. Don't be too harsh on yourself when starting. Allow yourself to make some mistakes, learn from them and move on. There are hundreds of times when I look back over the past year and want to bang my head against the wall for not doing something sooner or only figuring something out at a very late stage. That's part of the process and the most important part is to learn from your mistakes. Move on and improve as you go. Iteration for the win.

Marketing is a swear word for independent developers

Marketing - the big swear word for most solopreneurs

When starting marketing as an indie hacker you will hear a lot of conventional advice like:

  • hang out where your customers hang out
  • focus on distribution
  • create educational content

It's all great advice and I followed none of it. Not because I didn't want to, but the fact is - it's tough to run a side project with a full-time job and other life stuff. So I simply didn't have the time to hang out on multiple social media platforms and engage frequently everywhere. My marketing strategy over the past year basically consisted of:

  • writing blog posts that possible Ship SaaS customers might find valuable
  • posting and interacting regularly on Twitter and plugging my product where it makes sense (with an emphasis on "where it makes sense"). People can easily see you as spam when you start posting too much about your product.
  • A few months later I started a product update newsletter. This is a great way to have frequent contact with existing and future customers and allows me to own my contact list independent of any platform.
  • I went on 2 podcasts ( and that happened to cross my path. It was never part of my "official strategy", but it was nice to hang out with like-minded people and talk about what I'm building.

I admit that my marketing strategy was nowhere near perfect in the past year. So I will focus on these this in the coming year(s):

  • Creating more content for (possible) Ship SaaS customers - these include blog posts, some videos, and maybe a tutorial or course. The focus will be to teach people what they can build with Ship SaaS.
  • This also ties to my next point of focusing more on SEO. When looking at my site's analytics data, almost 90% of customers came from Google (i.e. searched for something SaaS boilerplate-related, landed on my site, and purchased). So by creating more content I'll also increase my SEO reach and target more possible customers.
  • Explore paid advertising. I saw that some people have had success with this, but I haven't been able to test it out. I might explore this as an additional acquisition channel.

While being active on Twitter can be beneficial, it's not a silver bullet that can be used for anything. Some people have success on Twitter, but many others have success in other channels. Twitter is by far the most public channel so it's easy to think that you have to be active on Twitter to do good marketing. That's not the case.

The most important advice when starting your marketing efforts is: in the first few months try different things, see what works, then double down on that. Whether it's SEO, Twitter, Reddit, cold outreach, paid ads, or any other acquisition channel, the sooner you can determine which one or two works best for you focus on it, and forget the rest.

What will be different next time

What I would do differently next time?

1. Launch at a higher price

This is the kind of lesson you only learn after you launched something. At the start, I undervalued the value of this product immensely and I didn't have the confidence to ask the price it was worth. In the future, I'll be more careful with determining the starting price when launching a product.

2. Do more direct outreach to people and ask them to try out my product

In the beginning, I did very little direct outreach. I mostly posted about my product on Twitter, Indie Hackers, and Reddit. It was only after some customers reached out with questions that I realized the value of having a direct contact line with your customers. The value you get from their questions or suggestions is incredible. Most people (myself included) shy away from direct outreach because it feels too "spammy" or "salesy" (sometimes with good reason), but despite the possible rejections, the questions and feedback you get from it are incredibly valuable for determining the direction of your product.

3. Don't launch on ProductHunt too soon

When I launched Ship SaaS I was still a "launch n00b" and thought that you have to launch your product on ProductHunt ASAP for it to "REALLY" be considered launched. So one month after launching the initial version of Ship SaaS I launched on ProductHunt (at $80). The launch itself went quite well considering the small audience I had at the time and I made a decent amount of sales during that day. But… in the early stages of your product your market positioning, messaging and core value offering will probably change a lot. As you interact with customers and pitch your idea you'll realize that you need to make changes to your customer messaging or landing page (or maybe you want a new logo). 6 months after I launched on PH I had a completely different product than the one I initially launched. It had more features, a better landing page, more documentation, and blog posts and I got a new logo. But, unfortunately, the PH launch post has all the "old stuff" and it can't be changed. Looking back I would've postponed the PH launch at least 6 - 12 months after the initial launch. By that time your product is more stable, you'll have a better idea of what people actually want and you'll probably already have some enthusiastic clients who can help to make your PH launch very successful.

4. Launch a newsletter sooner

I only realized the value of having a newsletter after I started sending out product updates. It gives you a direct communication line with your customers to send updates about the product you're working on. While not everyone will necessarily respond to every newsletter you send, it's a good way to remind people that you're still here and improving the product over time. Although most would not say it, they enjoy skimming through the product updates you added recently. I only started a newsletter about 8 months after the initial launch, but based on what I know now I would've done it after month 3 or 4.

What is next for Ship SaaS

Next steps for Ship SaaS

Taking all these lessons and insights into account, it feels like this is only the beginning for Ship SaaS. I have lots of ideas and plans for the next year and will improve the SaaS boilerplate even more.

For the next year I will focus heavily on:

1. Investing in good technical content

Creating good technical content is a very time-consuming process, but incredibly valuable to teach customers about your product. It's something that I started but didn't have enough time to properly explore and create. So in the coming year, I will focus on adding at least 10 - 15 good technical blog posts and expand the documentation of Ship SaaS to include every aspect of the SaaS development lifecycle.

2. Show people what you can do with this SaaS boilerplate

I get a lot of questions about "can your product do this" or "does it have feature X". So I want to add more demos and product walk-throughs to show people the benefits of using this SaaS boilerplate to build their SaaS.

3. Teach about this tech stack

I realized over the past months that a lot of people don't know the value of Next.js. To most it's "just another React framework", but in reality, it is a powerful serverless framework that can be used to build both modern, interactive frontends and super-fast and scalable APIs. It's actually an incredibly powerful full-stack framework. A lot of content will focus on this aspect.

Thanks for reading. If you found some of these insights and lessons valuable please share them with other people that might also find them valuable. And if you're on Twitter let's connect @nwbotha 👋

Image attribution from the top:

Want to know how to easily build your SaaS?

Sign up for the Ship SaaS newsletter to get notifiedabout the latest updates and blog posts

We care about the protection of your data. Read our Privacy Policy and Terms & Conditions.