It’s been almost a year since I last wrote about Nines tech choices. I wanted to give a brief update on what’s changed and what’s stayed.
This was the one piece of the puzzle I liked the most from building Nine. Since the frontend is a static Next.js app using typescript, GraphQL pairs perfectly and having all the data and mutations in the frontend static typed is awesome!
The frontend for Nine being static is really important and has been a great experience.
There is one niggle that I need to sort out at the moment though, the frontend deploy is getting slow. We’re currently building several thousand static pages, what’s worse though, it’s growing as we get more stores online.
As you might tell from the title of this post, the backend API written in node and typescript is gone.
I am still a Rails developer and I haven’t found anything that gives me the same programmer happiness or productivity than Rails.
I’ve recently deployed a rewrite of the GraphQL API and store manager in Rails. I’m much happier about the stability and maintainability of this stack, especially for side projects where you don’t want them falling over.
This was spurred on by running into issues with bullmq falling over with no apparent reasons. The interactive repl for running database commands wasn’t up to scratch with what I’m used to with Ruby, holding me back from debugging issues. And just me generally not spending enough time on this stack to feel confident managing it.
Hotwire. This is something I’ve been tinkering with for quite some time and I must say I am extremely impressed.
In short, you write minimal JS, but can still building highly interactive applications, relying on Rails server-side rendering and the Turbo framework.
The store manager for Nine has lots of modals and replaces the previous React app will full feature parity, with a mere 6 stimulus controllers that are all very generic and reusable 🤯.
I’ll definitely have a few follow up posts on Hotwire, I’ve been building Happi using it and I’ve recently taken a contract role as a Rails engineer at Polywork where it’s also the tech stack of choice.
I never learn my lesson, nearly every time I have strayed away from Ruby / Rails in the past 5 years I have regretted it. Maybe I’ll stop trying new backend frameworks someday 🤷♂️