How much does it cost to build and run a profitable side project?
One of the things that I was curious about when starting to build my SaSS side project was the potential costs involved. I had no idea if it would be affordable to launch an app if it were to make no money. Obviously, the costs involved in launching anything online are generally much less than building anything in real life. However, I am usually reluctant to start spending money on a side project that I don't know would be profitable.
Luckily, my side project, Heuristica, became semi-successful by my standards, so I started to be able to spend more money on it. Here are some services I am paying to keep Heuristica running in the order that I started to pay for these services. It should give you a good idea of the costs of running a SaSS business as a micropreneur.
Domain (20$/year)
For me, the first cost involved in building any application is the domain name. However, I treat this as a given and don't really sweat about it. Many of my projects are built with the aspiration of becoming profitable, so I always use a purchased domain for my launch to look credible instead of free domains provided by hosting platforms.
LLM APIs (100$/month)
I built and launched Heuristica in May 2023. It was initially based solely on GPT from OpenAI, so using that API and bearing the costs was the only option. However, the costs related to OpenAI were negligible. I paid only a few dollars for the first few months.
The costs have scaled with an increase in usage. However, I find the costs acceptable since they scale proportionally to my revenue and usage. I currently offer multiple models on my website (from OpenAI, Claude, and TogetherAI). The total cost varies but is less than 100$ a month.
Hosting (20$/month)
The second cost that I started to incur was due to Vercel. I am using Next.js to build Heuristica, so Vercel was the obvious choice for hosting. They are very generous with their free plan, and I didn't expect to pay anything for a long time. However, I noticed they had a very strict timeout policy on server endpoints, which dropped long-running requests after a few seconds. I started to get user complaints where they wouldn't get any responses for longer queries. It was obvious that I had to switch to a Pro plan. The good thing is that you can have multiple projects in your Vercel Pro Plan, which could be like a shared cost between multiple projects.
Analytics (15$/month)
After some time, I needed to start paying for my analytics provider, Plausible, due to the increased traffic I was getting. Plausible is a privacy-friendly analytics app that doesn't leverage cookies for tracking. The information it provides can be limited, but it is sufficient for my needs. I use it to see the amount and duration of traffic I am getting from different referrers and countries. Just like Vercel, it can also be a shared cost between multiple projects.
CDN (3$/month)
Heuristica is a tool for visual learners, so I wanted to display a lot of images and videos on my landing page. However, I quickly realized that hosting images on my website is not the brightest idea. With the traffic I was getting, I was rapidly depleting the bandwidth allocated to me on my Vercel account. So, I looked for an image hosting platform (CDN) and decided on Bunny. I am really happy with them; they only cost a few dollars a month.
Email (10$/month)
As Heuristica became more popular, I needed a professional-looking email address, so I signed up for two business email accounts on Gmail.
Authentication (0$/month)
I have been a developer for a while but still feel uncomfortable rolling out my authentication solution. When building Heuristica, I was delighted to have discovered Clerk. It made implementing authentication on my website a breeze. Heuristica is now a profitable project with around 3000 monthly active users, and I still don't pay anything for Clerk. Their free tier is incredibly generous.
Database (20$/month)
I am using Supabase as my cloud database provider. I am very happy with them, and just like Clerk, they also have an incredibly generous free tier. I could have kept using them for free, but I wanted to have the option of having daily database backups not to lose any customer data, so I recently switched to a paid account.
Error Logging (26$/month)
I initially used Bugsnag to be notified about production errors. However, I ended up switching to Sentry for its tighter integration with Vercel, which makes it easy to upload source maps on every deployment. However, their free tier is limited. I quickly ran out of my monthly quotas, which reduced my visibility until the end of the month. I could have handled the limitations by being more selective about the errors I care about, but I ended up paying for a monthly subscription.
Email Marketing (20$/month)
I always dreaded email marketing. It felt like something I was obliged to do despite not liking it at all. I think this was just because I had nothing valuable to say to my users/customers. After a while, I started to feel the urge to communicate with my newsletter subscribers to notify them of all the cool features that I have been building. Initially, I chose LemonSqueezy for sending email campaigns since it had a free tier. However, I quickly grew beyond their free tier limitations.
LemonSqueezy also lacked many essential features, such as customer segmentation, lists, or bulk user modification. I switched to Brevo because it has many good features at an affordable price point. In my experience, email marketing tools can be pretty expensive, so I am happy to have discovered Brevo.
SEO (100$/month)
I eventually made my peace with email marketing, but I still dread marketing in general. That's why I like the idea of SEO, which performs like passive marketing in some sense. I used to have a Keysearch membership, but I wasn't sure about the accuracy of some of the results I was getting on my keyword research. I ended up getting an Ahrefs membership, which costs a lot more but is supposed to offer much more accurate results.
Transactional Emails (0$/month)
It took me a while to realize I needed to email my users about specific actions (like subscriptions) for a much better user experience. Initially, my customers didn't even know if they had successfully subscribed since I didn't send any confirmation emails. I ended up using Resend to send programmatic emails on completion of certain actions. It doesn't cost anything at my scale and offers an excellent developer experience.
Product Analytics/Metrics (0$/month)
Plausible provides analytics related to page views, view durations, visitor origin, etc. However, it doesn't offer fine-grained metrics around how the users interact with the product. I initially implemented custom database calls whenever an action takes place to collect usage metrics. However, I found out that it is not the collection of the metrics that is the problem; it is the visualization of those metrics. Amplitude is perfect for emitting events on user actions and creating dashboards around those events. Currently, I am still using the free tier of the tool, which only allows for visualizing a limited amount of metrics. However, I can see myself switching to a paid tier if I ever get more data-oriented with my production development.
Amplitude is super easy to setup so my suggestion would be to install this as soon as you can to be able to collect even more metrics.
Customer Support (0$/month)
I am using Crisp to have a chat bubble on my website. I can't recommend having this feature on your app enough. Most of the questions you receive will be just noise; however, some of the interactions you will have with your users and prospective customers will be priceless. A chat bubble is not only great for user support but also a powerful tool for user research and understanding customer intentions and sentiments. Crisp has a generous free tier that is currently sufficient for my purposes.
Total Costs (>300$/month)
All these consts add up to a bit more than 300$ a month. These are also some other recurring costs I incur while running my side project. However, some other costs are specific to my platform's features, like integration with different APIs. These costs would be irrelevant to other projects.
If I were to cut costs, I would probably switch back to Keysearch from Ahrefs and downgrade Sentry to use the free tier. Anything else would be more difficult to get rid of.
When I started Heuristica, I was very frugal. However, as the platform became profitable and popular, my mindset shifted. Previously, my decisions were based on solving problems using the most cost-effective way possible (or for free). Now, I am always looking for opportunities to add value to the platform for a reasonable cost. Time is my most limited asset, and I am more than happy to spend money to solve problems instead of tackling them myself.