Turn your Markdown files into a full-featured blog with zero hassle 🚀
- ✨ Features
- 🎯 MVP Goal
- 🚀 Quick Start
- 📂 Project Structure
- 🖼 Example
- ⚙️ Configuration
- 🛣 Roadmap
- 🤝 Contributing
- ⚡ Plugin Hooks (Developers)
- 📜 License
- ✅ Write posts in Markdown
- ✅ Zero Config – start instantly
- ✅ 🎨 Custom Themes (minimal, modern, dark, etc.)
- ✅ Custom plugins support
- ✅ 📦 Static Export for deployment (Netlify, Vercel, GitHub Pages)
- ✅ 🌍 Beginner-friendly open source project
Deliver a fast, hackable blogging framework where developers can:
- 📝 Write in Markdown
- 🎨 Apply themes
- ⚡ Extend with plugins
- 🏷️ Add tags to posts
- 🚀 Publish with one command
🔧 Requirements
- Node.js v18+
- npm/yarn/pnpm
⚡ Install & Run
# Create a new blog
npx zeno-blog init mysite
cd mysite
# Build the blog
npx zeno-blog build
# Start the development server
npx zeno-blog serve 3000
Open 👉 http://localhost:3000
zeno/
├── bin/
│ └── zeno.js
├── src/
│ ├── builder.js
│ ├── cli.js
│ ├── config.js
│ └── server.js
├── plugins/
│ └── popup.js
├── themes/
│ └── default/
└── posts/
└── first-post.md
---
title: "What is Zeno?"
date: "2025-09-19"
tags: "first post, blog"
---
Zeno is a plugin-first Markdown blog framework built in JavaScript. It allows you to write in Markdown, apply themes, extend with plugins, and publish your blog with one command.
👉 Preview (Clazzy theme):
themes/default/
├── components/
│ ├── navbar.html
│ └── posts.html
├── index.html
├── post.html
└── style.css
components/
— Reusable components for your pages.components/posts.html
- Individual post template.index.html
— Home page template.post.html
— Individual post template.style.css
— Theme styles.
- 🌗 Search Feature
- 🏷️ Tag archive pages
- 🔍 Filtering posts by tags
- 🎨✨ Advanced theme customization
💡 Contributions are welcome!
-
- Fork the repo
-
- Create a feature branch (git checkout -b feature/my-feature)
-
- Commit and push your changes
-
- Submit a pull request
Zeno provides plugin hooks so developers can extend functionality:
onMarkdownParse(markdown, frontmatter)
— Modify Markdown before rendering.onRenderHTML(html, frontmatter)
— Modify HTML after rendering.onPostBuild(distDir)
— Hook after the blog is built.
Zeno is licensed under the MIT License - see LICENSE