Skip to content

Repository files navigation

vault42 landing page

Marketing landing page for vault42, served at https://vault.42-v.com.

vault42 is a self-hosted identity authority in a single Go binary: it issues session tokens, signs them RS256, and publishes keys at a JWKS endpoint, so you own your root of trust. The product itself lives at https://github.com/42-v/vault42.

Files

  • index.html : the self-contained landing page
  • styles.css : design tokens and components (AMOLED black plus #00FF42 phosphor)
  • app.js : minified runtime (WebGL noise-gas hero, comparison and audit-ledger sections, deploy tabs, contact form, prefers-reduced-motion guards)
  • scripts/ : maintenance tooling, described below

Preview

Serve it over HTTP. A plain file:// open works, but browsers cache assets aggressively, so use a server while iterating:

python3 -m http.server 8080   # then open http://localhost:8080

It runs fully client-side; the page needs no backend (the contact form posts to a separate Cloudflare Worker).

After a vault42 release

Every figure the page publishes about a release carries a data-v42="<key>" attribute, and none of them are meant to be hand-edited. Point the sync script at a vault42 checkout and it rewrites all of them, plus the sitemap's lastmod and the version in llms.txt, from VERSION, docs/badges.json and docs/compliance-register.json:

python3 scripts/sync-release.py                  # report what is stale
python3 scripts/sync-release.py --write          # apply it
python3 scripts/sync-release.py --repo ~/src/vault42 --write

It fails rather than guessing: a data-v42 key with no source in the product repo, or badges that disagree with VERSION, stops the run. The page also refreshes its version at runtime from the latest published GitHub release, so a copied docker pull or helm upgrade line is never a release behind, but that is a top-up, not the source of truth.

Screenshots

scripts/shot.py drives a headless Chrome over a server it starts itself, with reduced motion forced so two runs of the same commit produce the same image:

python3 scripts/shot.py                          # full page at 1440px
python3 scripts/shot.py --width 412 --out m.png  # mobile
python3 scripts/shot.py --selector '#verify'     # one section, cropped

Production

Static-host the tree at https://vault.42-v.com (nginx, Caddy, object storage and a CDN, Pages, and so on):

  • correct Content-Type for .js and .css, index.html as the entry point
  • add CSP, HSTS and related headers at the edge
  • run scripts/sync-release.py --write after each vault42 release

The critical above-the-fold CSS is inlined in <head> and duplicates roughly half of styles.css; an edit to a rule that renders above the fold has to land in both places.

Accessibility

  • Interactive targets are at least 44px, with full keyboard navigation and visible focus rings
  • prefers-reduced-motion disables the animation loops and shows static states
  • High-contrast green on black

License

This landing-page source is licensed under Apache-2.0, see LICENSE, with trademark terms in NOTICE. (The vault42 product itself is MIT, per its own repository.)

About

Landing page for vault42

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages