Overview
Built a self-hosted alternative to Obsidian Publish that transforms markdown vaults into fully static websites without a subscription or server. The project replicates the core Obsidian Publish experience, including wikilinks, hover previews, and graph visualization, at zero ongoing infrastructure cost.
What Was Done
- Built a static build pipeline with Astro that processes markdown from a content directory, resolves wikilinks and embeds, and outputs plain HTML with no runtime server required
- Implemented full-text search via Pagefind with a command palette interface, generated entirely at build time
- Added force-directed graph visualization of notes and their connections, rendered client-side
- Wrote custom Remark plugins to handle wikilink syntax, hover preview snippets, backlink generation, and Dataview table rendering
- Designed a mobile-responsive layout with collapsible navigation to match Obsidian’s UI conventions
- Integrated optional access control via Cloudflare Access with email OTP for private or team vaults
- Configured deployment to Cloudflare Pages free tier, keeping hosting cost at zero
Outcome
Delivers the full Obsidian Publish feature set as a self-hosted, open-source tool, eliminating the $10/month subscription while keeping content portable and under the owner’s control.
Stack
Astro · TypeScript · Pagefind · Cloudflare Pages · Cloudflare Access · Remark · CommonMark · CSS