Commonplace Notes (CPN) is an Obsidian plugin that publishes a curated subset of your vault as a fast, stacked-panes static site — the kind where clicking a link opens the target note in a new column beside the current one, so a reader can follow a train of thought without losing their place. Sites are self-hosted on AWS (S3 + CloudFront), notes are private by default (nothing publishes until you opt a note in), each note gets a stable per-note UID that drives its URL, and the Markdown→HTML pipeline is fully user-extensible. CPN is desktop-only.
Beta (0.2.0, requires Obsidian 1.0.0+). Installed and updated via
BRAT. See
Getting started for the full install + first-publish
walkthrough.
The 60-second path (assumes the plugin is installed and enabled):
- Open Settings → Commonplace Notes and confirm the default profile.
- Deploy AWS infrastructure with the Deploy publishing infrastructure command (or point the profile at an existing bucket). See Infrastructure deployment.
- Open a note and run Toggle publishing context: to opt it in
(this adds the profile to
cpn-publish-contexts; acpn-uidis generated automatically). - Run Publish current note.
- Run Copy link to current note URL and open it in a browser.
New here? Getting started walks through all of this in detail.
- Getting started — install (BRAT + source) and your first publish
- Concepts — glossary of the core ideas
- Commands — every command in the palette
- Settings — every setting, with defaults
- Publishing model — contexts, profiles, UIDs, URLs, invalidation
- Infrastructure deployment — provision AWS from inside Obsidian
- Authentication & access — read-gating, sign-in, and commenting
- Site asset customizations — inject per-profile snippets
- Parser extensions — extend the Markdown→HTML pipeline
- Troubleshooting
- Publishing profile — a named publish target (bucket, base URL, infra, look & feel). Multiple profiles let one vault feed multiple sites.
- Publish context — a profile ID listed in a note's
cpn-publish-contexts; it's how a note opts in to a site. - UID — a stable per-note identifier (
cpn-uid) that drives the site URL, generated the first time a note gains a publish context. - Stacked URLs — links that open several notes side by side in one view.
Full definitions in the concept glossary.
Contributors (end users should use BRAT):
nvm use # Node 24 (see .nvmrc)
npm install
npm run build # tsc typecheck + esbuild production bundle → main.js
npm run dev # esbuild watch modeThe build emits main.js; the plugin ships main.js, manifest.json, and
styles.css. Note the npm package name is commonplace-notes-publisher, but the
Obsidian plugin ID (in manifest.json, and used at
app.plugins.plugins['commonplace-notes']) is commonplace-notes.
Contributions are welcome — open an issue or PR at zachmueller/commonplace-notes.
Licensed under the MIT License.