Most developers who want a blog just sign up for Medium or Substack and call it a day. There is nothing wrong with that. But when I was building out my portfolio, I kept coming back to the same question: if I am going to tell clients I can build custom software for their business, why would I hand that off to a third-party platform for my own site? So I built it myself.
Why Not Just Use WordPress or a CMS?
The honest answer is that I could have. WordPress is a perfectly good tool and it powers a huge chunk of the internet. But using it here would have meant spinning up a separate server, managing a database I do not fully control, paying for hosting I do not need, and integrating a system that was never designed to work with the rest of my site. When you build on top of existing tools, you inherit all of their baggage. Building custom means the system does exactly what I need it to do - nothing more, nothing less.
The Database Layer
The blog posts themselves live in Supabase, which is a cloud database platform built on top of PostgreSQL. Each post stores everything you would expect - the title, the content, the publish date, the category, the tags - but it also stores things like read time and whether a post should be featured on the blog index page. The data structure is typed end-to-end in TypeScript, which means if something about a post is malformed, the code will catch it before it ever reaches the page. When the blog page loads, it fetches directly from Supabase and renders the posts in real time.
A Publishing System I Control
Publishing a new post does not involve logging into a dashboard or clicking through a form. I built a secured API endpoint on the Next.js backend that accepts a fully structured post and puts it live instantly. The endpoint is protected so that only authorized requests can publish - no one else can push content to my site. This is the same pattern I would use for a client who needs to publish products, announcements, or any other type of content programmatically. The point is that the publishing workflow fits the business process, not the other way around.
Subscriber Notifications, Built In
When a new post goes live, anyone who has subscribed to the blog gets an email notification automatically. No Mailchimp account. No third-party newsletter platform. No monthly fee. The subscriber list lives in the same Supabase database, and the notification goes out as part of the publish process. It is one system doing everything - storing the content, putting it live, and alerting readers - without duct-taping three separate services together.
What This Means for Your Business
Everything I just described - the database layer, the secured publish endpoint, the subscriber notifications - is a pattern, not a one-off. The same architecture that powers this blog could power a product catalog for a retail shop, an announcement feed for a church or nonprofit, or a client-facing news section for a local service business. I built it here because I wanted to own it. But more importantly, I built it here so I could build it for you.
If you are a business owner in middle Georgia who has been told you need WordPress or a website builder to manage your content, I would love to show you what a custom-built alternative looks like. Reach out and we can talk through what would actually work best for your situation.