Show the one-liner an operator would actually hand an agent to drive a
Keysat integration (review the docs, gate paid features behind a Pro
license, connect BTCPay). Reuses the install-card + navy code-block styling;
sits below the three capability cards, above the integration-guide link.
The previous og:image (assets/keysat-thumbnail.png) showed an older
brand asset — a small key icon next to "KEYSAT" in a serif-ish
typeface — that no longer matches the site. iMessage / Slack / X
were rendering that old card, creating a mismatch between what people
clicked and what they landed on.
New asset: assets/keysat-social.svg (1200x1200 source) +
assets/keysat-social.png (1200x1200 rendered). Cream brand
background, current scroll mark centered, "KEYSAT" wordmark in the
Manrope-style spacing the lockup uses, gold "SELF-HOSTED LICENSING
SERVER" tagline beneath. og:image + twitter:image on both
index.html and support.html now point at the new asset; width/height
attributes updated to 1200.
Old assets/keysat-thumbnail.png left in place — harmless, and the
1.7MB file was only referenced from the meta tags this commit
rewires, so no broken links elsewhere.
Pasting keysat.xyz into iMessage / Slack / Discord / X was falling
back to just the <meta name=description> tag (which truncated mid-
sentence and showed no image). Add proper og:* and twitter:* tags so
the share card uses the hero copy + the existing 1024×1024
keysat-thumbnail.png as the social image. Same treatment on support.html
with its own title/description.
Also update the homepage meta description to match the hero copy
verbatim so the on-page lede and the share-card description tell the
same story.
Same pattern set used on the docs site (elaboration→period, list-intro→colon, tight clarification→comma). The decorative "— Certificate of License —" stamp ornament in the artwork section stays verbatim.
Each live tier card now ends in a navy-950 pill linking to
licensing.keysat.xyz/buy/keysat?policy=<slug>. margin-top:auto on
the CTA anchors it to the bottom of each card so buttons line up
across tiers of different heights.
Dynamic tier-card JS now renders "Limited: N remaining" instead of
"Limited: N of M remaining". Matches the buy page (v0.2.0:36); the
operator's initial launch volume stays private.
Pricing section overhaul:
- Delete the "Sovereign by default / Everything stays on your
hardware" section (left + right panels weren't really telling
one story, and the lede repeats what the hero already says).
- Tier intro: drop the dense self-license framing; keep just
"Every Keysat instance ships at a highly functional Creator
tier; pay only when you outgrow it."
- Drop the "No fake feature gates" trailing blurb.
- FAQ tier-difference answer: reflect Patron as a perpetual
license + direct 1:1 support (not just "Pro with a badge").
Tier cards now render LIVE from the master Keysat:
- On page load, fetches /v1/products/keysat (for the entitlements
catalog) and /v1/products/keysat/policies (for the tier list),
then re-renders #tier-grid-live with the operator-configured
data — prices, marketing bullets, hidden-entitlement filter,
and any active featured (launch-special) discount applied.
- Matches the buy page's visual treatment: diagonal LAUNCH SPECIAL
ribbon, struck-through original price, discounted headline
price, "Limited: N of M remaining" meta line. Single source of
truth between landing and /buy.
- Static markup stays as a graceful fallback when the fetch fails
(offline, daemon down, CORS hiccup). The script only mutates
the DOM on a successful response from both endpoints.
The agent integration guide is now a first-class page on the docs
site rather than a raw markdown link on GitHub. Cleaner UX (docs
chrome + sidebar nav + on-this-page toc), no more punting visitors
out to GitHub's markdown renderer.
- Value-grid: top row now starts with the key-ownership pitch
(signing key → offline verification → sell however you want).
Renamed and rewrote the prior "Bitcoin payments, your store" box
to "Payment channels you control" and moved it to the bottom-left.
- SeasonsOfLearning testimonial: tightened the timeframe from
"October → January" to "over a weekend → two weeks later" so the
speed-to-launch story lands harder.
- Sideload link points at github.com/keysat-xyz/keysat/releases/latest
now that the repo is public. files.keysat.xyz stays as the
canonical s9pk host for the StartOS registry's package-add URL.
- Hero lede rewritten to lead with what Keysat is (a self-hosted
licensing server) and what buyers do, dropping the
empowers/monetize SaaS-speak.
- Sovereignty subhead consolidates the BTCPay + key-holding lines
into one sentence focused on ownership.
- Card 01 (install) drops the BTCPay-bundled aside.
- Card 05 (share URL) rewritten to not over-emphasize Bitcoin
("pay for your software" + "verified offline").
- Sideload link now points at files.keysat.xyz directly. The prior
github.com/keysat-xyz/keysat/releases URL was 404 (no releases on
the private repo). Once the repo flips to public + has releases,
this can revert to the GitHub URL.
- Hero: simpler headline ('Self-hosted licensing for software creators'),
one consolidated paragraph, no underline. 'Runs on Start9' now links to
start9.com.
- New /#tiers section: side-by-side Creator / Pro / Patron cards with
what's included at each tier. Pro highlighted with gold inset. Honest
framing: Patron is feature-identical to Pro, no fake gates.
- 'Pricing' anchor added to top nav.
- SDK card on the Why page lists Go alongside TS / Rust / Python.
- For developers + AI agents: Go added as a fourth code tab with the
ParseAndVerify example. Install command map extended.
- Case studies: section headline now reads 'Empowering the next
generation of software creators' with new eyebrow 'Real creators
can now build real software'. Made-up stats removed from all three
cases. Each quote now closes with a sentence about Keysat letting
them sell to others like themselves.
- Agent-friendly OpenAPI card mentions Claude (Code or Computer Use),
OpenAI Custom GPTs, and Perplexity Comet. LangChain dropped.
- FAQ: 'What about subscriptions' replaced with 'What's the difference
between the three tiers'. New 'Do I have to use Bitcoin?' question
added to explain BTCPay vs Zaprite.
Case-study photo placeholders are still rendered as placeholders — the
photoreal portraits referenced (assets/case-marisol.jpg,
assets/case-tomas.jpg, assets/case-hana.jpg) were never tracked in any
git history I could find. Drop real photos into assets/ when ready.
- New #agents section between Integrate and Sovereign with three cards:
OpenAPI 3.1 discovery, scoped API keys with bounded roles, stable
error codes + HMAC-signed webhooks. Links to KEYSAT_AGENT_GUIDE.md.
- Top-nav gains 'Agents' anchor.
- support.html: dropped the placeholder on-chain section (no address
finalized yet) and the speculative 'what funds go toward' paragraph.
Now three clean sections: Patron license, Lightning, OpenSats.
Replaces "Bitcoin-paid software licensing, self-hosted on Start9"
with the new positioning. The headline now leads with "Bitcoin-
native" (gold accent) and ends with the audience ("software
creators"), which matches how Grant has been describing the
project in conversation. Title tag + meta description updated to
match for SEO + social-share consistency.
Static HTML + SVG/PNG assets for the public marketing site at
keysat.xyz. Deployed via FileBrowser to the operator's StartOS at
websites/keysat-xyz-landing/.
Files:
- index.html — main landing
- support.html — Lightning donation + on-chain BTC for sponsors
- assets/ — SVG marks, PNG icon/thumbnail, favicon
Stack: hand-written HTML + CSS, no build step, no JS framework.
Matches the keysat-design-system tokens (cream paper, navy ink,
gold accents, Archivo display + Inter body + JetBrains Mono).
Private repo during alpha; will go public alongside v1.0 launch.