Free · Open source · MIT
Whereby a folder of Obsidian markdown is made into a swift, linked and
searchable site: with wikilinks,
transclusion, callouts,
backlinks, a graph, and
.canvas files that truly render.
Obsidian stays your editor. This is only the other half — the part that puts a vault on the web and makes it legible to someone who does not have your vault.
npm create obsidiary@latest Seen in the wild — my own notes run on this, set from a repository holding nothing but markdown.
Circulation record
Kept from public record only — npm and GitHub. This library keeps no telemetry.
Cap. I
There are honest reasons to publish a vault and dishonest ones, and it is worth saying plainly which are which before you spend an afternoon on it.
You already write in Obsidian. Obsidian Publish is $10 a month. This is free, the output is yours, and your notes never leave a folder you control.
A thinking log where the links are the point. Backlinks with the surrounding sentence, a real graph, transclusion. If a blog would flatten what you are doing, this will not.
Documentation that lives with the code. Write docs in Obsidian, publish them from the repository they describe. No CMS, no export step, no second copy to drift.
Notes meant to be read, not merely kept. Course material, teaching notes, reading notes. Canvas files carry the diagrams; embeds mean a thing is written once and reused.
Publishing a vault you do not own. Point it at any public repository — a study group’s shared notes, a spec, someone’s open wiki. Nothing to fork, nothing to maintain.
Reading a vault with zero commitment. The live view renders any public vault in your browser. No clone, no build, no account. Useful before committing to anything.
and of the author's own use →
Cap. II
I built this because I wanted it. Engineering notes and whatever I am currently figuring out live at my own domain; alongside them, these.
FPV drone build logs — canvas files for wiring and frame layouts, embeds so a parts list is written once and reused across every build.
Guitar: song breakdowns, practice logs, and the theory I keep having to re-learn from scratch.
Football — the trivela, and why a ball bends the way it does. It became a whole other project once the notes got long enough.
Photography: shoot notes, the settings that worked, and gear assessed honestly after using it rather than after buying it.
Reading notes that feed the bookshelf on my portfolio, instead of rotting quietly in a folder.
Caveat
Cap. III
npm create obsidiary@latest my-notes No dependencies, and a single question: is your vault a folder here, or a repository elsewhere?
obsidiary({
vault: './vault', // a folder here
// repo: 'you/notes', // …or its own repository
}) Notes in their own repository is the whole idea — the engine is a dependency, never a fork of your writing.
npx wrangler deploy Or hand the repository to Vercel or Netlify, or turn on GitHub Pages.
a table of presses →
Tabula
| Press | Command | Bandwidth | Domain | Commerce |
|---|---|---|---|---|
| Cloudflare recommended | npx wrangler deploy | unlimited | free | allowed |
| Vercel | import the repository | 100 GB | free | not on free |
| Netlify | import the repository | 100 GB | free | allowed |
| GitHub Pages | Settings → Pages → Actions | 100 GB soft | free | not on free |
Cloudflare is the recommendation: unlimited bandwidth, free custom domains, and no restriction on commercial use. Vercel and GitHub Pages cap at 100 GB and forbid commercial sites.
Apologia
content/ folder
upstream, so most updates end in a merge inside your own writing. Distribution as a
package was proposed and declined. Here the engine is a dependency:
npm update, and nothing to resolve.