# jeromem.dev The Obsidian vault behind [jeromem.dev](https://jeromem.dev): a personal site about real-time graphics, geometry, typed languages, and software engineering. The site is hosted with Obsidian Publish. `publish.css` and `publish.js` provide the visual system; Markdown remains the source of truth for content. ## Before publishing 1. Run `npm run check` from the vault root. 2. Public notes use `publish: true`, so Obsidian selects their changes automatically. Review that selection against `publish-allowlist.txt` before sending it. 3. Explicitly unpublish anything under `Inbox/`, `Sources/`, or `scratch/`. The local `.obsidian/publish.json` exclusion list is not treated as proof that an old remote page was removed. 4. Publish the content and theme files. 5. Run `npm run check:live` and confirm the sitemap contains no private paths. 6. Check Home, Projects, one long note, and one experiment at desktop and phone widths. `Inbox/` and `Sources/` are vault workflow areas. Their documents use Obsidian's supported `publish: false` property so they are ignored by the Publish picker. Already-published remote copies must still be explicitly unpublished once. ## Content conventions - Every public page has exactly one H1. - Page sections start at H2. - Public notes use `publish: true`; workflow-only notes use `publish: false`. - Public links use qualified paths when filenames are ambiguous, such as `[[Notes/Index|Notes]]`. - Experiments carry `year`, `stack`, and accurate tags. Add `repo` or `demo` only when a real URL exists. - Keep project imagery below 1.5 MB; prefer WebM over large animated GIFs. - Update `Now.md` when the current role or focus changes.