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:

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

MetricNext.js 15Zola
Build time30-60 seconds<1 second
Dependencies500+ packages0
Hosting requirementsNode.js runtimeAny web server
Page size200KB+ JS0KB JS
Lighthouse score85-95100
Client can self-editUnlikelyYes (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.