- docs.js (new): sync sidebar .active pill with location.hash on load, click, and hashchange so in-page anchor links (Architecture, Discount codes, Backups, etc.) update the pill instead of leaving it stuck on whatever was statically marked - Wire docs.js into every page just before </body> - license.html: sidebar Project/Operate order matches every other page (Project first) - pricing.html: rewritten to use the standard docs layout (full sidebar groups, prose main, breadcrumb) instead of a one-off shell that felt detached from the rest of the docs - Reference section: remove Admin API + SDKs anchor links (they masqueraded as separate pages but just scrolled within integrate.html); Wire format stands alone - Pricing copy: Zaprite reframed as "expanded payment options including card payment capabilities", "shipping in v0.3" removed (it shipped), Patron rephrased as perpetual (never expires or renews) - "Toggling inactive" cap-evasion language replaced — admin UI exposes delete only, no soft-disable affordance for products - ~70 em-dashes removed across 8 pages using a small pattern set (elaboration→period, list-intro→colon, tight clarification→comma, parentheticals→parens). Decorative stamp ornaments and references to actual third-party UI labels are kept verbatim.
Keysat Docs
Operator-facing documentation for Keysat — the Bitcoin-native self-hosted software licensing service for StartOS.
This repo is a static HTML site. No build step. The deployed version lives at keysat.xyz/docs.
Pages
- index.html — Introduction. What Keysat is, why it exists, and the sovereignty thesis behind it.
- install.html — Operator setup walkthrough. Installing the .s9pk on StartOS, connecting BTCPay, creating your first product and policy, and sharing your buy URL.
- integrate.html — Wiring Keysat licensing into your own software. Code examples for the TypeScript, Python, and Rust SDKs; entitlement-gating patterns; offline verification.
- operate.html — Day-to-day operations. Managing licenses, suspending / revoking, search, audit log, discount codes, refund flows.
- wire-format.html — Specification of the signed license key format (LIC1 envelope, base32 alphabet, Ed25519 signature scheme). Useful for porting the SDK to a new language.
Local development
The site is self-contained — open any .html file in a browser, or serve
the directory with any static file server:
# Python
python3 -m http.server 8000
# or
npx serve .
Then visit http://localhost:8000.
Styling
All pages share docs.css. Brand assets live in assets/. The visual
language matches the rest of the Keysat surface (cream paper-textured
background, navy ink, gold accents, classical type — Manrope for display,
Inter for body, JetBrains Mono for code).
Contributing
Issues and pull requests welcome. Substantive changes — new sections, restructuring, factual corrections to the wire-format spec — are best discussed in an issue first.
License
MIT. See LICENSE.