Static site generators come and go. Some prioritize developer experience with hot module replacement and component frameworks. Others optimize for content management with visual editors and plugin ecosystems. Eleventy takes a different path: it stays close to the web platform.
What Eleventy does well
Eleventy turns templates and content into static HTML files. That's it. It doesn't bundle JavaScript, process CSS, or optimize images unless you explicitly add those capabilities. This isn't a limitation — it's the point.
When you build with Eleventy, you write HTML (through templates) and you get HTML. The mental model is simple: input templates plus data equals output files. There's no virtual DOM, no hydration, no client-side runtime.
The right tool for the job
For a text-only blog with fluid CSS, Eleventy is ideal because:
- Markdown to HTML — write posts in Markdown, get semantic HTML
- Layouts and includes — share structure across pages with Nunjucks templates
- Collections — automatically group and sort content like blog posts
- Zero client JS — the output is pure HTML and CSS, nothing more
Staying simple
The temptation with any tool is to use all of its features. Eleventy has a rich plugin ecosystem and supports multiple template languages. But for a minimal blog, you need almost none of that.
A config file, a layout, a post template, some Markdown files, and a CSS file. That's the entire project. No plugins, no complex data cascade, no custom shortcodes. The tool gets out of the way, and you focus on writing.
The output matters
What I appreciate most about Eleventy is that the output HTML looks like something a person would write. View source on an Eleventy site and you see clean, readable markup — not a soup of generated class names and script tags. In an era of increasingly complex web tooling, that feels like a quiet act of resistance.