Why I wrote zola-monoplain
Created:
Introduction
I wrote zola-monoplain because I wanted a Zola theme that stays out of the way.
I like blogs where the content is the focus, pages load instantly, and the design does not fight against readability. I also wanted a theme that takes accessibility seriously and does not depend on external resources.
The result is mono/plain; a11y=true: an accessible, monospace, plain Zola theme built around content, user preferences, and privacy. It use the default Browser Stylesheet as a base and adds only what is necessary to make it work well for writing-focused sites. Default (installed) fonts and colors are preserved, and the theme is designed to be as un-opinionated as possible.
What the theme is
zola-monoplain is a theme for the Zola static site generator.
It is intentionally minimal:
- semantic HTML first
- native browser behavior where possible
- no external fonts, JavaScript, or stylesheets
- support for core blog features like posts, tags, search, and feeds
The goal is not to look flashy. The goal is to be predictable, readable, and robust.
Why I wrote it
I had three concrete reasons:
-
Accessibility by default: I wanted a theme that works well with keyboard navigation, screen readers, and user-defined browser settings.
-
Content over chrome: Less energy on visual effects. I wanted one that respects the text and helps readers stay focused.
-
Respect for users: No third-party assets, no unnecessary bloat, and no dark patterns. Just fast pages that work.
The philosophy behind it
The theme follows a simple principle:
Design should never say "Look at me." It should say "Look at this."
In practice, that means:
- respect your content
- respect your users
- respect user preferences
- respect user privacy
- respect user bandwidth
Why I still use it
I use this theme on this site because it matches how I want to publish:
- write in Markdown
- keep the stack simple
- keep the output portable and future-proof
- avoid dependencies I do not need
It is not trying to be everything for everyone. It is for people who want a straightforward, accessible default for writing-focused sites.
How it evolved
The README.md documents the core philosophy and practical setup, but the CHANGELOG.md shows how the theme grew in real usage.
Recent and notable changes include:
- language improvements for pages and posts
- feedback section support via email links
- OpenGraph image support
- custom 404 page, sitemap, robots.txt, and feed improvements
Most changes are small and incremental, which is intentional: keep backward compatibility and keep the theme lean.
What is next
The TODO.md reflects the current roadmap. The most relevant open items are:
- finish Projects and Links templates/pages
- improve search page JavaScript and taxonomy pages
- add JavaScript minification
So while the theme is stable for content-first sites today, it is still being refined step by step.
Links
- Theme repository: https://github.com/exiguus/zola-monoplain
- README: https://github.com/exiguus/zola-monoplain/blob/main/README.md
- Changelog: https://github.com/exiguus/zola-monoplain/blob/main/CHANGELOG.md
- TODO: https://github.com/exiguus/zola-monoplain/blob/main/TODO.md
- Theme documentation and demo: https://exiguus.github.io/zola-monoplain/
- Zola: https://www.getzola.org/
Feedback
Have thoughts or experiences you'd like to share? I'd love to hear from you! Whether you agree, disagree, or have a different perspective, your feedback is always welcome. Drop me an email and let's start a conversation.