> ## Content Index
> Fetch the complete content index at: https://broddin.be/llms.txt
> Use this file to discover other available public pages before exploring further.

# My 2024 programming stack
- URL: https://broddin.be/my-2024-programming-stack/
- Published: 2024-11-07T14:54:06.000Z
- Updated: 2026-07-19T19:03:56.000Z
- Description: Last year, I chronicled my tech stack journey - from languages to frameworks to tools, diving deep into what made my developer life tick. Now, a year wiser (and maybe a bit more cynical about free tiers), it's time for my 2024 update.
- Author: Tim Broddin
- Tags: coding, programming, #Migrated-1784487752640, #wp, #wp-post, #Import 2026-07-19 19:02

Last [year](https://broddin.be/content/files/2026/07/ref-broddin-be.html) and the [year before](https://broddin.be/2022/05/23/my-2022-mostly-frontend-programming-stack/?ref=broddin.be) I wrote about the tech I use to create stuff. We're almost 18 months later, older and wiser, so it's time for an updated list.

## Framework: Next.js (app router) / Laravel

*2023: Next.js (app router) - 2022: Next.js (pages router)*

Last year I was super hyped about Next.js and the whole React Server components paradigm shift. It felt out of this world awesome to be able to mix and match client & server things. Inserting a row inside your form component feels like magic (and it sorta is).

But ... my enthusiasm has cooled quite a bit. It is a lot of magic, and it requires an awful lot of context-switching. Also, it suddenly became very easy to hit [Vercel](https://vercel.com/?ref=broddin.be)'s limits. Caching was an afterthought so running React Server components quickly adds to those precious serverless seconds.

With Next.js/React looking more like PHP each day you might as well just switch to the real deal. I've been dabbling with [Laravel](https://laravel.com/?ref=broddin.be) a lot these past weeks and I love it. It includes everything you could ever want from a framework, and whatever problem you throw at it, the answer is never that there's a PaaS for that. The Laravel ecosystem has real solutions to problems, which (most often) don't require you to open your wallet.

Writing Laravel really helped me with my React/JavaScript/Next.js fatigue, and I guess going forward, I'll probably try to use Next.js and Laravel side by side. Next.js for smaller projects which lean more towards client-side interactivity and Laravel for Real Applications™.

![](https://broddinblog.on-forge.com/storage/145/image-3.png)

## Language: TypeScript / PHP

*2023: TypeScript - 2022: TypeScript*

I tried not having to use PHP ever again for a very long time. But then I joined Automattic, and even though my title there was *JavaScript Engineer*, I probably wrote more PHP than JavaScript/TypeScript there.

Which was okay.

## CMS: A lot

*2023: WordPress - 2022: DatoCMS*

This is what I wrote last year:

WordPress is likely the answer you would expect from someone working at Automattic ???? But I really mean it. I love WordPress.

Looking back, I think I was a bit too enthusiastic there. WordPress is solid, and it would be my go-to CMS for whoever needs a content website on a budget. It's also very easy to get very messy. I've seen too many sites with tons of plugins enabled that just broke.

My blog currently runs on [Ghost](https://ghost.org/?ref=broddin.be), which is an excellent blogging tool. For websites that need custom post types, structured data, and i18n I'd still use [DatoCMS](https://www.datocms.com/?ref=broddin.be), because it's awesome at that.

There are also options that I want to use at some point in the future: [Strapi](https://strapi.io/?ref=broddin.be) for its open-source headless approach, [Stamatic](https://statamic.com/?ref=broddin.be) since it's built on top of Laravel, and so many more.

## Mobile: Expo / Swift(UI)

*2023: React Native*

I've been working on this React Native [project](https://www.endgame.now/?ref=broddin.be) ever since before COVID. While I love the ideas behind React Native (cross-platform, write in JS), I've found keeping a React Native app up-to-date with the latest version to be one of the worst developer experiences on the market.

While restarting development on the project, I've migrated it to [Expo](https://expo.dev/?ref=broddin.be), which is sort of an ecosystem around React Native, with an easier upgrade path and first party tested packages. I like it, and even though it's not perfect, it's a big improvement over bare React Native.

Lately, I've been creating some smaller apps and I like the simplicity of just doing that inside XCode using SwiftUI.

## State management: redux-toolkit, redux-persist, react-query

*2023: same - 2022: Redux-toolkit + redux-persist* (+ swr)

State management can still be a pain, but these tools have proven reliable enough that I didn't feel the need to explore alternatives this past year. The combination of redux-toolkit for global state, redux-persist for persistence, and react-query for server state management continues to serve well for most React use cases.

## APIs: no APIs

*2023: no APIs - 2022: GraphQL*

Last year I hoped that React Server Components would free us from having to write backend APIs. I still hold on to that dream, though the reality has proven more complex than initially promised.

## Styling: Tailwind

*2023: Tailwind - 2022: stitches*

Tailwind is still the best way for a non-design savvy programmer to create things that look better than what a 5-year-old would come up with. The defaults are great, and thanks to projects like [Tailwind UI](https://tailwindui.com/?ref=broddin.be) it's incredibly straightforward to create great user interfaces.

Also, tools like [v0](https://v0.dev/?ref=broddin.be) are excellent at creating Tailwind components.

## Hosting: self-hosting

*2023: Vercel - 2022: Vercel / Lambda / Docker*

I was a very loyal Vercel fanboy, but the increase in usage from React Server Components, and their dropping out from sponsoring [Woordje](https://woordje.be/?ref=broddin.be)'s hosting forced me to look elsewhere.

Elsewhere turned out to be hosting things myself again, just like in The Good Old Days™.

I use [Coolify](https://coolify.io/?ref=broddin.be) to manage a few cheap VPS boxes, and it's been a breeze. The switch from Vercel to self-hosted VPS boxes cut my hosting costs significantly while giving me more computational resources to work with.

For my Laravel project [Lijsje](https://lijsje.be/?ref=broddin.be), I use Laravel [Envoyer](https://envoyer.io/?ref=broddin.be) & [Forge](https://forge.laravel.com/?ref=broddin.be) to handle the continuous deployment & server configuration.

## Databases: self-hosted / Supabase / Turso

*2023: Drizzle & PlanetScale - 2022: Prisma & PlanetScale*

Last year, I recommended the *generous* free plan of [PlanetScale](https://planetscale.com/?ref=broddin.be) for hosting MySQL databases. Well, they discontinued it.

I'm finally starting to grow old enough to realize that free plans are always messy. Eventually, every free tier of every service will probably be discontinued, which always means that you'll need to migrate to something else against the clock.

I migrated [Woordje](https://woordje.be/?ref=broddin.be) from PlanetScale to Supabase, which is a great & open-source Firebase alternative.

For the [Endgame landing page](https://www.endgame.now/?ref=broddin.be) I utilized [Turso](https://turso.tech/?ref=broddin.be), a hosted SQLite database PaaS. All my other recent projects use self-hosted MariaDB instances.

## Editor: Cursor

*2023: PHPStorm - 2022: VSCode*

At Automattic, I really had to use PHPStorm because it could index and search the enormous codebase 10,000 times faster than VSCode.

But since I'm not working there anymore, I'm using whatever I want.

My beloved editor at the moment is [Cursor](https://cursor.so/?ref=broddin.be). It packs so many AI features and does them so amazingly well that it hypercharges my productivity.

You can open your code inside a notebook inside Cursor, ask it to implement a feature, and it will nail it on most tries (given a little guidance here and there).

## AI: Claude, Midjourney & Cursor

*2023: GPT4, Midjourney & Copilot - 2022: Copilot*

I've been a fan of [Claude](https://claude.ai/new?ref=broddin.be) ever since I first used it. It's better at everything than ChatGPT. Don't take my word for it:

![](https://broddinblog.on-forge.com/storage/306/image.png)

For image generation my goto tool is still Midjourney, and I'm very happy that they finally have a Web UI.

## Analytics: Plausible

*2023: Plausible - 2022: Plausible*

*Just like last year:*

Nothing to add here. [Plausible](https://plausible.io/?ref=broddin.be) is still my favorite **privacy-first analytics** solution.

The only change is that I now self-host it.

## Terminal: iTerm / tmux

*2023: iTerm - 2022: Hyper*

Thanks to my ex-colleague (and forever friend) Juan I got into [tmux](https://github.com/tmux/tmux/wiki?ref=broddin.be) and it changed my terminal habits forever.

Tmux is sort of like a window manager for your terminal. You type one command to enter a session, and then you can create as many windows and panes as you like. The best part: these sessions persist even if you close your terminal - they'll be right there when you reconnect.

As someone who accidentally closes his IDE multiple times a day, this saves me a lot of setup.

![&amp;lt;span style=&amp;quot;white-space: pre-wrap;&amp;quot;&amp;gt;I&amp;#039;m also a very big fan of the status bar&amp;lt;/span&amp;gt;](https://broddinblog.on-forge.com/storage/132/cleanshot-2024-11-07-at-151112-at-2x.png)

<span style="white-space: pre-wrap;">I'm also a very big fan of the status bar</span>

## Conclusion

I think this past year taught me a couple of things:

- Not everything has to be a single page React app, it's okay to embrace old and proven technologies again.
- There's no such thing a free lunch: don't rely too much on PaaS free plans which will inevitably disappear one day.
- tmux is amazing.
- AI will take my job(\*) this year 🫠

![](https://broddinblog.on-forge.com/storage/299/image-2.png)

(\* I forgot I don't have a job for a moment. )