19a969f797
Standard docs-site convention: top-left brand goes to the marketing home, the 'Docs' badge next to it signals you're in the docs section. The separate 'Marketing' nav item is no longer needed once the brand itself handles that link.
217 lines
8.3 KiB
HTML
217 lines
8.3 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Keysat Docs — Pricing</title>
|
|
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
|
<link rel="stylesheet" href="docs.css">
|
|
<style>
|
|
.tier-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; margin:24px 0; }
|
|
@media (max-width:760px) { .tier-grid { grid-template-columns:1fr; } }
|
|
.tier-card {
|
|
background:var(--cream-50);
|
|
border:1px solid var(--border-1);
|
|
border-radius:12px;
|
|
padding:24px 22px;
|
|
display:flex; flex-direction:column;
|
|
}
|
|
.tier-card.featured {
|
|
border-color:var(--gold-500);
|
|
box-shadow:0 0 0 3px rgba(191,160,104,0.10), 0 8px 16px rgba(14,31,51,0.10);
|
|
position:relative;
|
|
}
|
|
.tier-card .badge {
|
|
position:absolute; top:-10px; left:50%; transform:translateX(-50%);
|
|
background:var(--gold-500); color:var(--navy-950);
|
|
font-size:10px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
|
|
padding:4px 10px; border-radius:999px;
|
|
}
|
|
.tier-card h3 {
|
|
font-family:var(--font-display); font-size:22px; font-weight:600;
|
|
color:var(--navy-950); margin:0 0 6px; letter-spacing:-0.01em;
|
|
}
|
|
.tier-card .price {
|
|
font-family:var(--font-display); font-size:28px; font-weight:700;
|
|
color:var(--navy-950); letter-spacing:-0.02em; line-height:1.1;
|
|
margin-bottom:4px;
|
|
}
|
|
.tier-card .price .unit {
|
|
font-family:var(--font-body); font-size:13px; font-weight:500; color:var(--ink-500);
|
|
margin-left:6px;
|
|
}
|
|
.tier-card .frequency { font-size:12px; color:var(--ink-500); margin-bottom:18px; }
|
|
.tier-card ul {
|
|
list-style:none; padding:0; margin:0 0 22px;
|
|
font-size:14px; line-height:1.55; color:var(--ink-700);
|
|
flex:1;
|
|
}
|
|
.tier-card li { padding:4px 0 4px 22px; position:relative; }
|
|
.tier-card li::before {
|
|
content:'\2713'; position:absolute; left:0; top:5px;
|
|
color:var(--gold-700); font-weight:700;
|
|
}
|
|
.tier-card .cta {
|
|
display:inline-block; text-align:center;
|
|
padding:10px 16px;
|
|
background:var(--navy-800); color:var(--cream-50);
|
|
font-weight:600; font-size:14px;
|
|
border-radius:8px; text-decoration:none;
|
|
}
|
|
.tier-card .cta.secondary {
|
|
background:transparent; color:var(--navy-800);
|
|
border:1px solid var(--border-2);
|
|
}
|
|
.note {
|
|
background:var(--cream-100); border:1px solid var(--border-1);
|
|
border-radius:10px; padding:16px 18px; margin:24px 0;
|
|
font-size:14px; line-height:1.55;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="topnav">
|
|
<a href="https://keysat.xyz" class="brand" title="Back to keysat.xyz"><img src="assets/keysat-mark.svg" alt=""><span>Keysat</span></a>
|
|
<span class="docs-tag">Docs</span>
|
|
<nav>
|
|
<a href="install.html">Install</a>
|
|
<a href="integrate.html">Integrate</a>
|
|
<a href="wire-format.html">Wire format</a>
|
|
<a href="operate.html">Operate</a>
|
|
<a href="pricing.html" aria-current="page">Pricing</a> </nav>
|
|
</div>
|
|
|
|
<div class="layout">
|
|
<aside class="side">
|
|
<a href="#overview">Overview</a>
|
|
<a href="#tiers">The three tiers</a>
|
|
<a href="#what-counts">What the caps count</a>
|
|
<a href="#changing-tiers">Switching tiers</a>
|
|
<a href="#unlicensed">Running unlicensed</a>
|
|
<a href="#future">What's coming</a>
|
|
</aside>
|
|
|
|
<main class="main">
|
|
|
|
<h1 id="overview">Pricing</h1>
|
|
<p class="lede">
|
|
Keysat dogfoods its own licensing — the Keysat daemon is itself licensed by a Keysat
|
|
instance running at <a href="https://licensing.keysat.xyz">licensing.keysat.xyz</a>.
|
|
The same primitive operators use to gate features in their own software gates a few
|
|
Keysat features behind paid tiers. The <strong>free tier is genuinely useful</strong> —
|
|
most hobbyist operators will never need to upgrade.
|
|
</p>
|
|
|
|
<div id="tiers" class="tier-grid">
|
|
|
|
<div class="tier-card">
|
|
<h3>Creator</h3>
|
|
<div class="price">21,000<span class="unit">sats</span></div>
|
|
<div class="frequency">one-time, perpetual</div>
|
|
<ul>
|
|
<li>Up to 5 products</li>
|
|
<li>Up to 5 policies per product</li>
|
|
<li>Up to 5 active discount codes</li>
|
|
<li>BTCPay payments (Bitcoin / Lightning)</li>
|
|
<li>One-time purchases</li>
|
|
<li>Self-host on Start9 (always)</li>
|
|
<li>Distributed via free codes — ask</li>
|
|
</ul>
|
|
<a class="cta secondary" href="https://licensing.keysat.xyz/buy/keysat?policy=creator">Get Creator</a>
|
|
</div>
|
|
|
|
<div class="tier-card featured">
|
|
<div class="badge">Most popular</div>
|
|
<h3>Pro</h3>
|
|
<div class="price">250,000<span class="unit">sats</span></div>
|
|
<div class="frequency">per year</div>
|
|
<ul>
|
|
<li>Unlimited products / policies / codes</li>
|
|
<li>Recurring subscriptions <em>(when shipped, v0.3)</em></li>
|
|
<li>Zaprite payments — accept BTC + cards <em>(when shipped, v0.3)</em></li>
|
|
<li>Multi-operator admin <em>(when shipped)</em></li>
|
|
<li>Everything in Creator</li>
|
|
</ul>
|
|
<a class="cta" href="https://licensing.keysat.xyz/buy/keysat?policy=pro">Upgrade to Pro</a>
|
|
</div>
|
|
|
|
<div class="tier-card">
|
|
<h3>Patron</h3>
|
|
<div class="price">500,000<span class="unit">sats</span></div>
|
|
<div class="frequency">per year</div>
|
|
<ul>
|
|
<li>Same features as Pro</li>
|
|
<li>"Patron" badge in your admin UI</li>
|
|
<li>Funds Keysat development</li>
|
|
<li>Honest upsell — no fake feature gate</li>
|
|
</ul>
|
|
<a class="cta secondary" href="https://licensing.keysat.xyz/buy/keysat?policy=patron">Become a Patron</a>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="note">
|
|
<strong>Note on what's gated.</strong> Today the only enforced gates are the
|
|
capacity caps — number of products, policies, and active discount codes. Pro
|
|
will gate the new payment-provider features (recurring billing, Zaprite card
|
|
payments) when those ship in v0.3. Patron is functionally identical to Pro —
|
|
its tier exists for operators who want to fund development beyond what Pro
|
|
needs to stay in the green.
|
|
</div>
|
|
|
|
<h2 id="what-counts">What the caps count</h2>
|
|
<p>
|
|
All caps fire at <strong>create-time only</strong>. Once you're under the cap,
|
|
you're never retroactively kicked off. A Creator-tier operator who currently
|
|
has 5 products keeps all 5 if you ever lower the caps in the future. The cap
|
|
just stops them from creating a 6th.
|
|
</p>
|
|
<ul>
|
|
<li><strong>Products</strong>: counts every product row (active + inactive). Operators don't get to evade the cap by toggling old rows inactive.</li>
|
|
<li><strong>Policies per product</strong>: counts policies on a single product, regardless of public/active state.</li>
|
|
<li><strong>Active discount codes</strong>: counts only <code>active=true</code> codes. Disable old codes to free up slots without deleting them — disabled codes don't function but stay in the audit trail.</li>
|
|
</ul>
|
|
|
|
<h2 id="changing-tiers">Switching tiers</h2>
|
|
<p>
|
|
Buy a higher-tier license at <a href="https://licensing.keysat.xyz/buy/keysat">licensing.keysat.xyz/buy/keysat</a>,
|
|
then activate it via StartOS → Keysat → Actions → <em>Activate Keysat license</em>.
|
|
The daemon picks up the new entitlements on next request — no restart needed.
|
|
The persistent banner in your admin sidebar always shows your current tier
|
|
and the next-tier CTA.
|
|
</p>
|
|
<p>
|
|
<strong>Downgrading</strong>: drop your license file (or replace with a lower
|
|
tier). Existing rows stay; new ones are subject to the new caps. No data loss.
|
|
</p>
|
|
|
|
<h2 id="unlicensed">Running unlicensed</h2>
|
|
<p>
|
|
Keysat works without any license at all — you'll see "Unlicensed" in the
|
|
sidebar and get the same caps as a Creator-tier operator (5/5/5). The
|
|
license exists primarily so operators get a real "I bought it" experience
|
|
and so we can offer the upgrade path to Pro. Hobbyists can run Keysat
|
|
indefinitely without paying us a sat.
|
|
</p>
|
|
|
|
<h2 id="future">What's coming</h2>
|
|
<p>
|
|
Two big v0.3 features will be Pro-only when they ship:
|
|
</p>
|
|
<ul>
|
|
<li><strong>Recurring subscriptions</strong> — auto-renewal, customer-managed cancellation.</li>
|
|
<li><strong>Zaprite payments</strong> — accept Bitcoin <em>and</em> credit cards. Massively expands your addressable buyers.</li>
|
|
</ul>
|
|
<p>
|
|
Both will gate on the <code>recurring_billing</code> and <code>card_payments</code> entitlements
|
|
respectively. Free-tier operators will see a "Pro feature" banner and a one-click
|
|
upgrade flow when they try to use these.
|
|
</p>
|
|
|
|
</main>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|