Caro's weblog

In search of a calm tech stack

I had an idea for a new side project I'd like to build the other day, but couldn't think of an obvious tool to use to build it. More generally, I've been struggling lately to come up with a way of building more interactive web things in a way that fits in my brain and meets the needs of some of my project ideas.

Come along with a brain-dump of my slightly chaotic thought processes as I work out whether there's any kind of tech stack I can work with, in a way that I can understand and maintain without stress.

My project doesn't need to do a lot, but there's a few things I'd really like to achieve:

I have a lot more thoughts on what I'd like the tech stack to be like though! I had a good think about what I'd really like in a tech stack (for this project but also in general), and came up with the following.

Maybe I'm being unreasonably demanding of my tech stack, but finding something to meet at least most of these things is worth a try, right? Let's start with things I've used recently.

Nothing in there really fits. How about some other things I've at least played with?

So something completely new? I listen to a lot of tech podcasts, so have the names of a lot of possible options lurking in my brain. Some serious considerations

Rails, that reminds me of one final possible option - Phoenix . Sure, I've never written Elixir, or indeed anything that runs on BEAM (Erlang's virtual machine), but I'd also never written Clojure when I started my first real dev job at a Clojure shop. Slightly weird-looking syntax doesn't really bother me, and functional programming usually fits my brain better than alternatives.

As a complete outsider with no prior knowledge or experience, I went to the main site, docs site and GitHub repo to get an idea of what I was looking at. Phoenix seems pretty stable, with the last (minor) release like a year ago, and a bunch of patches since then. As far as I can tell, no breaking changes since then, and a really thorough migration guide from the previous minor release. The features list on the homepage matches pretty closely with both what I'd like from my app, and what I need from a tech stack.

I had a quick search around for community resources, and found plenty that seemed accessible enough to me. Then this article ran across my RSS feeds, and I was sold on the idea of productivity without having to worry about making early mistakes in code organisation.

So I guess I'm learning Phoenix (and the associated Liveview for super-reactive frontends) and Elixir now? If nothing else, it will be a different kind of challenge than keeping on top of my node modules. And I guess if you're following along with me for #WeblogPoMo2024, this won't be the last you'll hear of this unexpected adventure.


Today's soundtrack is August by Trio Dhoore, which is beautifully calm.

Discuss on Mastodon