# 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.