I like boring technology. Not because I am against progress, but because most projects are not auditions for a conference talk. Clients want results they can afford, host, edit and keep running when I am not around. That means choosing tools for outcomes, not for hype.
The internet loves to sneer at PHP and WordPress. Fine. Meanwhile, WordPress quietly powers a huge chunk of the web. It is the Windows of the web. Not everyone loves it. It is rarely pure. It is relentlessly practical. For many teams it is efficient and inclusive. Editors already know it. Hosting is cheap. The ecosystem is massive. You can get a lot done without inventing a new stack every spring.
From a freelancer’s perspective, that matters. Not every client can or should spend $30k on a bespoke app. WordPress used as a framework gives you authentication, roles, media, an editor, SEO basics, forms, and a permissions model on day one. You can shape it with custom post types, fields and a decent theme, and ship something useful in weeks, not quarters.
Does that mean it is perfect? Of course not. You still have to be disciplined: pick a small set of well maintained plugins, keep updates regular, treat performance as a feature, and do not promise what the platform cannot do. But the baseline is strong enough that you spend time on the problem, not the plumbing.
Boring does not mean stagnant. It means proven, well understood and easy to hire for. It means fewer moving parts: server rendered pages, standard hosting, simple queues only when you actually need them. It means documentation your client can hand to a new hire without a week of decoder rings and environment rituals.
There are times I will not pick WordPress: heavy real time collaboration, complex domain logic, strict compliance requirements, or products that clearly want a different shape. Then I will reach for Rails, Laravel, Django, or a static site generator. This blog runs on Hugo. The point is not WordPress everywhere. The point is to use the tool that fits without turning your client into a hostage.
Why boring tech wins
- Time to value beats novelty. Shipping in weeks with tools you know is better than shipping in quarters with tools you are still learning.
- Total cost of ownership matters. Cheap hosting, simple backups, and updates that do not need a war room keep budgets sane.
- Hiring and handover are real. A common stack means a new developer can be productive in days, not months.
- Accessibility and content editing count. Tools that editors already understand reduce training and support.
My boring tech checklist
- What is the minimum stack that solves the problem
- Can the client team edit it without me in the room
- Is hosting and maintenance simple and affordable
- Are there multiple providers or contractors who can support it
- Will this still be understandable in two years
WordPress as a framework
Used well, WordPress is a framework with batteries included. Custom post types and fields shape your data. Roles and capabilities keep authors honest. The media library, REST API, cron, and WP‑CLI cover a lot of ground. Need a marketing site with gated content, events and a few forms. You are halfway there on day one. I can put my effort into design, content modelling and performance, not building an admin from scratch.
Practical guardrails
- Keep plugins lean. Fewer, well supported, paid if they save real time.
- Update often. Backups before updates. Staging for risky changes.
- Watch performance. Cache early, set an asset budget, measure before and after.
- Respect content editors. Use clear names, helpful descriptions, sensible defaults.
- Treat security as routine: least privilege, two factor auth, and a WAF on the front door.
Ignore the devfluencer soundtrack that says you are behind if you are not rebuilding the world with the latest framework every quarter. Shipping stable, understandable software that respects budgets and brains is not a lack of ambition. It is professionalism.
Trendy stacks come and go. Boring tech keeps the lights on, keeps clients happy, and lets me focus on the bit that actually matters: solving the problem and moving on to the next one.
Boring does not mean lazy. It means I value time, clarity and trust. If a client needs speed and dependability, boring is a feature. If a project truly needs something else, I will reach for it with my eyes open. Until then, I will pick the stack that solves the problem today and can be understood tomorrow.