DEV Community

Cover image for Weekly Indie Log #4
Hirvesh Munogee
Hirvesh Munogee

Posted on • Originally published at hirve.sh

Weekly Indie Log #4

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.

Image

Migration of Stomod to PostgreSQL

Image

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 😀

Image

Migration of Stomod to Caddy Server

Image

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:

  1. Enable multiple blogs to be hosted under different directories under a custom domain - for e.g. [hoolichat.com/blog](http://hoolichat.com/blog1) and hoolichat.com/anotherblog .

  2. 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](http://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:

Image

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! 😀

Top comments (0)