Table of Contents
Welcome to the fourth edition of my Weekly Indie Log! After a week of marketing, last week was a coding week again - and code I did! I had several important infrastructure related updates to tackle.
MRR Update
Before we dive into the bits and pieces of coding week, a quick look at the MRR update for Stomod. I am now at $184 MRR for Stomod and it’s growing very nicely. My goal is to at least hit $200 by the end of this month, which I look to be on track for.
Migration of Stomod to PostgreSQL
The week started off with a very important task on my todo list: migrate Stomod from SQLite to PostgreSQL.
After banging the drums of SQLite for so long, you might be wondering why I’m moving away from SQLite to PostgreSQL?
There are many reasons. The biggest reason is schema changes in SQLite are not very easy.
There are some schema changes which require me to create a new column, copy all the data over then drop the previous column. There are other different schema changes which are simply very tedious to perform in SQLite. With Stomod being a fast-moving application, there are times I need to switch things around a bit and I don’t just get the flexibility with SQLite.
The next reason being support for vector embeddings in SQLite. I have some planned features which would bring the “AI” aspect to Stomod and with PostgreSQL, I get highly performant vector embeddings with pg_vector whereas vector embeddings with SQLite is not great.
There’s also the case of my other product AssistFlare which is built on PostgreSQL. The idea of consolidating both products into a single database platform looked appealing to me.
I personally use Scaleway’s (my VPS provider) managed PostgreSQL service. I can choose my PostgreSQL instance (how many CPUs and RAM) I want and can adjust that on the fly as well as disk space and I get a fallback read-only replica to boot which can failover to become the primary node in case my initial one goes down.
Scaleway also provides automated daily backups with easy restore and manages all security updates and administrative tasks around DB management.
This gives me the peace of mind and liberates me from DB management activities while providing me control over my DB expenses. I also get nice metrics from their dashboard as well 😀
Migration of Stomod to Caddy Server
Stomod previously used nginx as its web server which proxied requests to the Next.js app running in the backend.
Whilst nginx was good, I wanted to move to Caddy Server, first because my other product AssistFlare was already using it and then for the simplicity of Caddy over nginx with automatic SSL certificate provisioning for sites hosted on Stomod as well as better performance as per the difference benchmarks floating around the internet with it unlocking multi-core systems better than nginx. See bookmark below for further reading.
Big shoutout to Shayan from Logsnag for putting Caddy on my radar. He put together a very nice tutorial on how to get going with Caddy and that was what I used to get going with first, my AssistFlare Caddy setup and eventually the Stomod nginx to Caddy migration. You can check out the tutorial below if you’re interested.
Other Stomod Feature Updates
Once having done the two big migrations mentioned above, I then shifted focus to implementing customer-requested features for Stomod.
Multiple Subdirectory Blogs and Tag Aliasing
Stomod allows you to host your blog at a freely provided
*.stomod.com
subdomain or using your own custom domain or custom subdomain - for e.g. blog.hoolichat.com
or under a subdirectory of your main domain - for e.g. hoolichat.com/blog
.The feature request was two fold:
- Enable multiple blogs to be hosted under different directories under a custom domain - for e.g.
hoolichat.com/blog
andhoolichat.com/anotherblog
.
- Enable any tag under a subdirectory blog to be accessed under a top-level sub-directory alias.
For the second request, for e.g. if a customer has a blog under
hoolichat.com/blog
and a tag “Use Cases” within that blog at hoolichat.com/blog/use-cases
- “Use Cases” needed to be accessible at hoolichat.com/use-cases
which basically isolates all posts under “Uses Cases” in a mini-blog with the same design as the overall blog at hoolichat.com/blog
.
This allows for the customer to create several isolated mini blogs using the same consistent theme of their main blog for the different focuses of their content strategy.For e.g. one could link to “Use Cases”, “Product Updates”, “Changelog”, etc. from their main marketing site and display a mini blog with a very specific focus on those topics.
To implement this, it required a major rewrite of how Stomod handles routes and a lot of QA to make sure everything works as expected.
Easy Custom Domain & Subdirectory Configuration
Two of the most cumbersome processes for me and for customers of Stomod were:
- Setting up a blog with a custom domain
- Setting up a blog with a subdirectory under a custom domain
For the first one, setting up a custom domain for a blog required the domain owner to add TXT DNS records as well as a CNAME record to verify the domain ownership - which was somewhat cumbersome and not needed.
I shifted this process to use HTTP verification instead of TXT record verification whereby a customer only needs to point their domain to the
customers.stomod.com
as a CNAME record and boom authorization is complete and their blog can be accessed via their custom domain.For the second option of having your blog under a subdirectory of your custom domain, the customer needs to implement a reverse proxy on their side and had to notify me so that I could manually enable the subdirectory access for that particular blog.
This placed a dependency on me as I had not implemented this config in the domain settings page on Stomod.
This came back to bite me when I was on my trip to Bangkok and had to assist customers to setup their blog subdirectory access while being in an airport.
For this iteration of coding week, I decided to tackle this once and for all and enable this configuration natively on Stomod:
This hopefully will close this type of support request (which is mostly all I get as support request on Stomod).
That’s it from me in terms of this week’s Weekly Indie Log! Catch you in the next one! Cheers! 😀
Related Posts
Weekly Indie Log #1
Last week, I announced on X that I was going to be starting a weekly indie log to document my indie hacking journey; following in the st...
·
4 min read
Weekly Indie Log #6
It’s Weekly Indie Log #6. I’ll be honest. Last week was meant to be marketing week but a pesky cache bug quickly torpedoed it into a cod...
·
5 min read
Weekly Indie Log #9
Last week was coding week for me and I delivered a big update to stomod.com - web analytics! Let’s talk about the why and talk a bit abo...
·
5 min read
Weekly Indie Log #8
Here we go - Weekly Indie Log #8! Last week I said I would double down on marketing week and put in two weeks back to back. Turns out I ...
·
3 min read