Onyx
A tiny, zero-dependency static-site generator that turns a folder of Markdown notes into a fast, linkable website.
go run onyx.jwd.me/onyx@latest
Onyx is a tiny static-site generator for Markdown note folders. Point it at a folder of notes — an Obsidian-style vault, a docs/ directory, a pile of wiki/ pages — and it writes a clean, fast, linkable website. No database, no server, no npm pipeline, and no third-party Go dependencies.
This very site is built by Onyx from a folder of Markdown files. What you are reading is the output.
Why Onyx
- One command, no setup.
go run onyx.jwd.me/onyx@latestin a notes folder produces a finished site — nothing to install, configure, or wire together. - Zero dependencies. Onyx is stdlib-only Go: it compiles to a single binary and pulls in no third-party packages —
go.sumdoes not exist on purpose. - Obsidian-friendly Markdown. Wikilinks, callouts, task lists, tables, math blocks, and
![[embeds]]all work, alongside ordinary Markdown. - Backlinks and a graph. Onyx derives backlinks and an interactive knowledge graph from your links, so a vault becomes a navigable web.
- Built-in search. A client-side search index ships with the site — no external service.
- Safe by default. Dangerous link schemes are blocked, raw HTML is escaped, and Onyx refuses to clobber files it did not generate.
- Deploys anywhere static. Relative URLs mean the output works on GitHub Pages, including under project subpaths, or any static host.
How it works
- Onyx finds the site root by looking for
onyx.inior a conventional content folder (doc/,docs/,plan/,plans/,wiki/). - It reads your Markdown, resolves wikilinks and assets across folders, and renders each note to HTML.
- It writes a homepage to
index.htmland the generated site intopublic/.
Explore the docs
- Quick Start — install Onyx and build your first site.
- Markdown Support — the Markdown and Obsidian syntax Onyx renders.
- Frontmatter — per-note titles and publish controls.
- Configuration —
onyx.inikeys and sources. - Theme Overrides — restyle the site or replace templates.
- Deploying — publish to GitHub Pages and output safety.
- Development — the project's stdlib-only contract.
Onyx lives on GitHub.