Anton Bakulin

Your notes. Your structure. Live on the web.

A lightweight Python/Flask engine that turns a folder of Markdown files into a fully-featured website. Write, push to GitHub, see it live — no export step, no build pipeline, no CMS.

View on GitHub →


How it works

Your folder structure maps directly to URL paths — no configuration needed:

Vault path URL
blog/My Post.md /blog/my-post
gallery/Photo.md /gallery/photo
About.md /about

Add website: true to a note's frontmatter and it's live. A note with type: listing auto-generates a paginated post index. A note with type: homepage serves its content at the section root.


What you get

A production-ready site out of the box:

See Features for the complete list.


Works with any Markdown editor

OnyxFolio reads plain .md files with YAML frontmatter — it works with any editor that produces them. A plain text editor and git push is all you technically need.

That said, Obsidian is the recommended editor. It's the reference implementation for the syntax OnyxFolio understands: [[wiki-links]], [[wiki-links | display text]], ![[embeds]], > [!callouts], Dataview queries, inline tags, block references, and transclusions. Writing in Obsidian means every feature works as intended, with live preview as you compose.

If you prefer a different environment, the closest alternatives are:

Basic publishing works everywhere. The richer Obsidian-native syntax (Dataview, transclusions, callouts, block references) is only as good as your editor supports it.


Explore the docs