Why I left WordPress for TypeScript, Bun, Svelte and Docker
4 min read
I started my career as a PHP and WordPress developer. For years it was a reasonable choice: WordPress gets a site online quickly and almost every client knows it. The problem was never building the site. The problem was everything that came after.
The cost of keeping it alive
A WordPress site is never finished. Core, themes and plugins need constant updates, and a site that is online is a site that gets attacked. Each update is a small gamble: more than once something broke after an update, and fixing it meant stopping what I was doing to repair something that had worked the day before.
That maintenance is invisible when you quote a project, but over the years it takes more time than the original build.
What I use now
I moved to a smaller set of tools that I understand end to end:
- TypeScript gives me full typing across the whole codebase. Many mistakes are caught when the code compiles, not when a user finds them.
- Svelte is fast and simple. There is little code between an idea and a working interface.
- Bun gives me a quick runtime and package manager, so scripts, tests and servers all start fast.
- Docker lets me run everything on my own servers. I do not depend on a hosting vendor changing prices, plugins or rules.
What changed in practice
The main change is that I decide when something changes. Dependencies are pinned and I update them on purpose, with types telling me what broke. There is no public admin panel to attack and no plugin ecosystem that I do not control.
I do not think WordPress is a bad tool. It is a good fit for many sites. For products that I build and run myself, a typed stack on my own servers means less time spent on maintenance and more time spent on the product.