Every few months a tool appears that promises to solve the whole project. It almost never does, and the cost is not the subscription: it is the extra layer to maintain, debug and explain to the client. This is the stack we work with right now and, more importantly, why it is so short.
Build: HTML first
Astro is the base. It outputs static HTML and ships no JavaScript by default; interactive islands hydrate only where there is real state. For an agency site, a catalogue or a landing page, that means less code on the customer’s phone, fewer things to break, and performance that does not depend on a plugin.
Tailwind handles styling, but the tokens live in CSS: colours, type, spacing and states are variables, not a pile of loose utilities. The design system can be read, changed and audited without hunting classes across the project.
For motion, anime.js and native page transitions. Same rule as the CSS: write the animation once, switch it off under prefers-reduced-motion, and never let it be the only thing holding the interface together.
Ship: Vercel
Vercel serves the static site from its CDN and creates a preview URL for every pull request. That changes review: the client sees the real change before it reaches production, and we compare versions in the same environment. No server to restart, no cache plugin to tune.
Measure: four sources, not forty dashboards
- Search Console: queries, indexed pages, errors and the Core Web Vitals report. It is Google’s view of the site.
- GA4: behaviour and conversions, with consent configured. Fewer reports and better-defined events.
- PageSpeed Insights and Chrome field data: real performance, not only the lab.
- Unlighthouse: Lighthouse across every URL at once, to find the page nobody looks at that drags the average down.
For reporting, one Looker Studio dashboard built on those sources. If a number does not change a decision, it does not go on the dashboard.
What we left out
Page builders with a pile of plugins, jQuery sliders, a CMS for a five-page site, and tag managers with more tags than content. This is not a crusade: if a project needs a tool, we use it. What we do not do is add layers out of habit.
The test is simple: for every tool, one question it answers and one person who maintains it. If either is missing, it stays out.