People ask now and then what I build with. So here's the actual answer - the stuff I reach for on real work, not a wishlist of whatever's trending this month.
The core
- Next.js and React - fast, SEO-friendly, scales from a landing page up to a full app. Most of my front-end work lives here.
- TypeScript - catches a whole category of dumb mistakes before they ship. Non-negotiable on anything I'll have to maintain later.
- Tailwind CSS - quick to write, consistent, and easy to hand over to the next person.
- A bit of Framer Motion when something needs to move, used sparingly. Nobody wants a site that animates at them.
I've also spent a lot of years in .NET / C# and PHP land, and across CMS platforms like Umbraco, WordPress and a few others. Different jobs, right tool, etc.
Data and the back end
- SQL Server and MySQL - boring, reliable databases, which is a compliment.
- Entity Framework and NHibernate on the .NET side; whatever fits on the Node side.
- Auth I don't roll myself anymore. Use something that's been battle-tested and move on.
Shipping it
- Vercel for deploys when the project suits it - push, preview, done.
- Git and GitHub Actions so nothing reaches production without passing checks.
- Some basic monitoring and analytics, because "it works on my machine" isn't a deployment strategy.
The actual point
Tools come and go. The stuff underneath doesn't: type safety, fast feedback, boring reliable infrastructure, and shipping often instead of perfectly.
I'm happy to pick up something new when it genuinely makes a project better, and just as happy to ignore the hype when it doesn't. Knowing the difference - what to use and, more importantly, what to skip - is most of what experience actually buys you.
Want this kind of thinking applied to your website?
Get in touch and let's talk about your goals.
