Recently I came across the t3 stack, it is pretty awesome. It's made development with NextJs quite complete and compelling. Also, from a glance it seems like it's made a lot more developer friendly for smaller teams. It's awesome to see so many different ways and advancement in developer experience. It's certainly so much nicer to build things now, compared to even four years ago. Does this mean, I'm switching to it, not at all. But it's still nice to know that there is something out there for your programming language of choice. I also saw this video essay on Lichess, I'd recommend the essay too, you can find it here. Where I saw how one person built such an awesome app using Scala and all the other tools he decided to use. Even more impressive that it's the second most popular chess site, when you consider the top chess site has 138 developers.
What I found was that, the goal of T3, or the Scala developer at Lichess is quite similar. Doing the most you can with the simplest tools. Plus, what makes it simple for you to get things done. For me it's Go, Templ and HTMX. I don't like using frameworks, so I use Go with a router. It's helped me notice, what I like, what works, what doesn't and what could be done better. Over the past year, my template repository has changed a lot. Recently I made the change from Postgres to Sqlite with Turso. Because it seemed simpler for me to go from zero to deployment. I'm still cleaning it up a bit, but you can find the current progress here. Main reason to try Turso was that, I don't enjoy the process of running Postgres on the cloud and the cost associated with it. Plus, Sqlite seems to have gotten much better. So after about four years, I'm back to Sqlite.
Deployment is one of those things that I have not found a happy medium for yet. I've tried GCP, DigitalOcean, and AWS recently. It was a happy accident when I bumped into Fly, to deploy my SSH app (ssh terminal.seagin.me
) as they had a concise doc on how to do it. So in my template repository, I've switched to Fly. All that I need to be able to do is, scale vertically as easily as possible. I haven't had the need for horizontal scaling yet.
I quite like the iterative process of improving things. Usually, I make a mental note of what feels like it could be done better and try something simpler in the next iteration. The few things I'm quite happy with and won't be changing is Go, Chi, Templ, Htmx, Alpine and Tailwind. So far, Sqlite with Turso is looking really, really good. It took me four hours to create the new template. The only thing to do is, get migrations to run on deployment and Authentication. It's quite enjoyable. Can't wait to use this on my next project.
Happy iterating :)