Skip to content

docs(site): use current msgvault favicon - #733

Closed
salmonumbrella wants to merge 5 commits into
kenn-io:tiered-sitefrom
salmonumbrella:fix/pr-732-favicon
Closed

docs(site): use current msgvault favicon#733
salmonumbrella wants to merge 5 commits into
kenn-io:tiered-sitefrom
salmonumbrella:fix/pr-732-favicon

Conversation

@salmonumbrella

Copy link
Copy Markdown
Contributor

What changed

  • Replaced the envelope/lock favicon with the black msg mark already used in the README.
  • Reused /favicon.svg for the home header, home hero, and guide header so the four website locations stay in sync.

Why

PR #732 introduced a second favicon and repeated its artwork inline. This keeps the new site on msgvault's existing visual identity and removes the copies that could drift.

Usage

No usage change.

Refs #732

wesm and others added 5 commits August 31, 2026 11:12
msgvault.io previously served only the Zensical reference docs at the
domain root. There was no page that explained what msgvault is, why the
people layer matters, or where the project is heading. This adds a
three-tier public site: a marketing page at /, a nine-stop archive
lifecycle guide at /guide/, and the existing docs under /docs/.

The new tiers are static files in website/ with a carbon monochrome
design: self-hosted Inter and JetBrains Mono, hand-drawn SVG diagrams
for the source map, people layer, intelligence pipeline, and interface
map, and captures from the provenance-reviewed Enron fixture. Both
pages ship exact Markdown twins and an llms.txt index for machine
readers. The Directory workspace from the open web PR appears only as a
labelled "in development" placeholder, so the site does not claim
unshipped UI.

Moving the docs to /docs/ changes every published URL, so vercel.json
adds permanent redirects for all legacy paths, including the hydrated
asset directories, and check_vercel_redirects.py now enforces the full
redirect table. Absolute internal links in the docs sources are
rewritten to the /docs/ prefix so pages link directly instead of
bouncing through redirects. check_built_site.py validates the combined
site: website routes and files at the root, docs routes, sitemap,
metadata, and assets under /docs/.

Generated with Claude Code (claude-fable-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Feedback on the first draft of the marketing page: the product name
never appeared in the hero, the headline crowded out everything else,
and several lines read like generated marketing filler.

The hero now leads with the msgvault wordmark and icon, and the "system
of record for your communications and relationships" claim sits under
it at half the previous size. The single install command with a cramped
hint line becomes a three-row install matrix (macOS/Linux script,
Homebrew, Windows PowerShell), each row with its own copy button, with
checksum, conda-forge, and build-from-source notes underneath.

The copy pass removes the interpunct badge line, slogan triads, and
"on your terms" phrasing across both tiers and their Markdown twins,
replacing them with plain sentences that keep the concrete claims. The
positioning term is now "communications" rather than "conversations"
throughout.

Generated with Claude Code (claude-fable-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Review of the tiered-site build flagged that the website/ copy step
recursively publishes whatever is on disk. A credential file or dotfile
accidentally placed under website/ would have become publicly
downloadable, and the credential inventory check only ran in
check-docs.sh, never in the deployment build itself.

The build now prunes dotfiles and credential-pattern files (the same
glob list zensical-docs.sh applies to the docs boundary) from the
copied output, then runs check_built_site's inventory gate so any file
that slips past the prune fails the deployment instead of shipping.
Verified by planting a fake client_secret JSON and a dotfile in
website/ (both pruned from the output) and a tokens.json directly in
the built site (gate exits 1).

The same review claimed website/ would be unavailable to the Vercel
build because it sits outside docs/. The live deployment already
disproves this: hydrate-assets.sh fetches orphan asset branches through
the parent repo checkout at docs/.. and hard-fails without it, and
production serves those hydrated assets today, so tracked siblings are
present during deployment. The copy loop keeps its explicit
missing-source error as the loud failure if that environment ever
changes.

Generated with Claude Code (claude-fable-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Review of the tiered-site build caught a regression: zensical writes
sitemap.xml into the /docs/ output, so the deployed site would 404 the
standard /sitemap.xml path that the pre-tiered site serves today and
that crawlers probe by default.

The sitemap already indexes all three tiers (the override template adds
the root and /guide/ entries), so the build now moves it to the output
root, and check_built_site.py requires it there. Verified against a
local serve of the built output: /sitemap.xml returns 200 with the
tiered URL set.

Generated with Claude Code (claude-fable-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
@roborev-ci

roborev-ci Bot commented Sep 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (3162cb6)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 46s

@wesm

wesm commented Sep 1, 2026

Copy link
Copy Markdown
Member

Probably need some better iconography in general

wesm added a commit that referenced this pull request Sep 4, 2026
msgvault.io needs a product entry point without losing direct access to the
reference documentation. Keep the marketing page at the root, the lifecycle
guide at /guide/, and the existing documentation at /docs/, with permanent
redirects for legacy links.

The combined update also:

- brands the hero, adds an install matrix, and tightens the site copy
- blocks credential-like files and dotfiles from the published site
- serves the generated sitemap from the standard root path
- uses the current msgvault favicon contributed in PR #733
- keeps documentation links added on main inside the new /docs/ mount

Generated with Claude Code (claude-fable-5)
Generated with Codex (GPT-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: salmonumbrella <182032677+salmonumbrella@users.noreply.github.com>
Co-authored-by: Codex <noreply@openai.com>
@wesm wesm closed this Sep 4, 2026
wesm added a commit that referenced this pull request Sep 4, 2026
msgvault.io needs a product entry point without losing direct access to the
reference documentation. Keep the marketing page at the root, the lifecycle
guide at /guide/, and the existing documentation at /docs/, with permanent
redirects for legacy links.

The combined update also:

- brands the hero, adds an install matrix, and tightens the site copy
- blocks credential-like files and dotfiles from the published site
- serves the generated sitemap from the standard root path
- uses the current msgvault favicon contributed in PR #733
- keeps documentation links added on main inside the new /docs/ mount
- builds and serves the deployment artifact for complete local previews

Generated with Claude Code (claude-fable-5)
Generated with Codex (GPT-5)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: salmonumbrella <182032677+salmonumbrella@users.noreply.github.com>
Co-authored-by: Codex <noreply@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants