Skip to content
← All articles

My tech stack: what I use and why

Every tool in my stack earns its place. Here's what I use for development, hosting, project management, and everything in between.

My tech stack: what I use and why

Developers love talking about their tech stacks. Sometimes it's just showing off, but I think there's genuine value in being transparent about the tools you use, it helps potential clients understand your approach and helps other developers who are evaluating the same tools.

So here's what I'm using at Innatus Digital at the end of 2021, and why.

Content management

WordPress is still our primary CMS for most client projects. It's proven, clients understand it, and the ecosystem is enormous. I build custom themes rather than using page builders where possible, it's more work upfront but results in faster, more maintainable sites. When I do use a builder, Oxygen is my choice. It generates clean output and gives developers proper control, unlike Elementor which produces div soup.

For newer projects, I've been using Sanity as a headless CMS. The content modelling is superb, you define your schemas in JavaScript, which means they live in version control alongside your code. The real-time collaborative editing is genuinely impressive. And the free tier (the Spark plan) is generous enough for most small to medium sites.

Front-end

For Jamstack and headless projects, Next.js is my go-to framework. It handles static generation, server-side rendering, API routes, and image optimisation out of the box. The developer experience is excellent, and Vercel's hosting integration means deployments are trivially easy.

For simpler static sites, Eleventy is brilliant. It's fast, flexible, and doesn't impose any front-end framework, you can use plain HTML and CSS if that's all you need.

CSS-wise, I use SCSS for most projects. Variables, nesting, mixins, and partials make CSS manageable at scale. I follow BEM naming conventions for class names, which keeps things predictable.

Hosting and infrastructure

For WordPress, SpinupWP manages my servers on DigitalOcean. It handles Nginx configuration, SSL certificates, automatic security updates, and gives us proper control over the server environment. Each WordPress site gets its own isolated environment, which is far better than shared hosting.

For static and Jamstack sites, Vercel is my default. Global CDN, automatic HTTPS, preview deployments for every Git branch, and a generous free tier. Netlify is similar and equally good, I use whichever fits the project better.

Cloudflare sits in front of everything for DNS management, DDoS protection, and CDN caching. The free plan is remarkably capable.

Development tools

I use Sublime Text and PhpStorm depending on the project. Sublime for quick edits and anything front-end, PhpStorm for Laravel and larger PHP projects. Sublime for quick edits and front-end work, PhpStorm for Laravel and larger PHP projects.

Git for version control, GitHub for hosting repos and managing issues. Every project gets a repository, every change gets a commit, every feature gets a branch. No exceptions.

Local development for WordPress runs on Laravel Valet (Mac) or LocalWP. Both are fast and hassle-free compared to the old MAMP/XAMPP days.

Project management and communication

Notion handles project documentation, meeting notes, and internal knowledge. It replaced a mess of Google Docs, Trello boards, and text files.

For client communication, it's email and Zoom. I've tried Slack, Microsoft Teams, and various project management tools with client portals. Most clients just want email. The ones who want more structured communication get invited to a shared Notion workspace.

Monitoring

WP Umbrella monitors uptime, manages backups, and provides a dashboard for all WordPress sites I manage. If a site goes down at 3am, I get a notification.

Google Search Console and Analytics are set up on every site from day one. Not optional.

What's next

I've been keeping an eye on Astro as a static site generator, it's promising. Tailwind CSS is increasingly tempting for utility-first styling. And I'm curious about Deno as a JavaScript runtime, though it's not production-ready for my use cases yet.

The stack evolves constantly, but the principle stays the same: use the right tool for the job, keep things as simple as possible, and don't adopt new technology just because it's new.

If you're curious about my approach or want to discuss which technologies might suit your project, drop me a line at [email protected].

Chris Ryan

Chris Ryan

Managing Director

17+ years in full-stack web development, most of it leading teams agency-side across e-commerce, CMS platforms, and bespoke applications. Specialises in infrastructure, system integration, and data privacy, with hands-on experience as a Data Protection Officer. Founded Innatus Digital in 2020 to offer the kind of honest, technically-led partnership that he felt was missing from the agency world.