Deep dives on software engineering, architecture, and the real-world decisions
This blog runs on software I wrote. Here's everything I learned doing it.
Latest posts
How I got Caddy's on-demand TLS working inside Coolify
April 13, 2026Timelish needs to provision SSL certificates automatically for both subdomains and custom domains. Every business that connects its own domain to its booking page needs HTTPS to just work - no manual cert setup, no waiting, no friction. They type in
mybusiness.com, and it works. The same also applies if they use their default subdomain, like mybusiness.timeli.sh . The feature that makes this possible is Caddy's
on_demand_tls. And getting it to play nicely with Coolify took a few hours of digging that I want to save you.What on-demand TLS actually is
Most reverse proxies handle TLS by issuing certificates at startup - you define your domains upfront, the proxy fetches certs from Let's Encrypt, done. That works great when you know your domains ahead of time.
This blog runs on software I built. Here's why that's both exciting and terrifying.
April 10, 2026Every developer has, at some point, thought: I should build my own version of that.
For me, that thought came while I was trying to set up appointment scheduling for my beautiful wife - a nail artist who was drowning in DMs, trying to manually coordinate bookings, no-shows, and reminders every single day. I looked at the existing tools. They were either too complex, too expensive, or too ugly. So I did what developers do.
I built my own.
That project became Timelish — an all-in-one appointment scheduling platform for small businesses. And this blog you're reading right now? It's built on top of it. Which means every post I publish here is, in a small way, a live demo of the very product I'm writing about.
That's the thing I want to explore in this space: what it actually looks like to build a SaaS from scratch, make real engineering decisions under real constraints, and ship something people depend on.