Why I Picked Zola Over Next.js for Client Sites
Why I Picked Zola Over Next.js for Client Sites
I’ve built sites with Django, Pelican, Next.js 15, and now Zola. For client work, Zola wins on every metric that matters.
The Problem With Next.js for Clients
Next.js 15 is excellent. I use it for complex applications. But for small business websites — 3 to 10 pages, mostly static content, a contact form — it’s overkill.
You get:
- A 200MB
node_modulesdirectory - Build times measured in minutes
- Dependency vulnerabilities that need updating weekly
- A hosting setup that requires Node.js runtime
- Client confusion when they try to edit content
What Zola Gives You Instead
Zola is a single binary written in Rust. No dependencies. No Node.js. No npm install.
zola build
That’s it. Sub-second build time. Output is pure HTML and CSS. Deploy it anywhere.
The Math
| Metric | Next.js 15 | Zola |
|---|---|---|
| Build time | 30-60 seconds | <1 second |
| Dependencies | 500+ packages | 0 |
| Hosting requirements | Node.js runtime | Any web server |
| Page size | 200KB+ JS | 0KB JS |
| Lighthouse score | 85-95 | 100 |
| Client can self-edit | Unlikely | Yes (markdown) |
When To Use Which
Use Next.js when: You’re building an application with authentication, real-time data, complex state management, or server-side rendering with dynamic data.
Use Zola when: You’re building a website. Marketing pages, blogs, documentation, portfolios, small business sites. Anything that’s mostly static content.
How I Deploy It
Every client site runs on a Hostinger VPS with Docker. Zola builds in the container, nginx serves the static output, Cloudflare handles CDN and SSL. Auto-deploys on git push via Dokploy webhook.
The client gets the full source code. Content lives in markdown files. They can edit a blog post in a text editor, push to GitHub, and the site updates automatically.
That’s ownership.