<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing — Forge CLI</title>
<style>
:root {
--bg: #0d1117;
--surface: #161b22;
--surface-raised: #1c2333;
--border: #2d333f;
--border-strong: #3d4452;
--text: #e6edf3;
--text-muted: #8b949e;
--accent: #6ea8fe;
--accent-strong: #4c8dfa;
--accent-deep: #2f6fe0;
--good: #56d364;
--radius: 14px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
background: var(--bg);
color: var(--text);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
line-height: 1.5;
}
/* ---------- Header ---------- */
header.site {
display: flex;
align-items: center;
justify-content: space-between;
max-width: 1120px;
margin: 0 auto;
padding: 1.25rem 1.5rem;
}
.logo {
display: flex;
align-items: center;
gap: .55rem;
font-weight: 700;
font-size: 1.05rem;
letter-spacing: .01em;
color: var(--text);
text-decoration: none;
}
.logo-mark {
width: 26px;
height: 26px;
border-radius: 7px;
background: linear-gradient(135deg, var(--accent-strong), #8a63f4);
display: inline-flex;
align-items: center;
justify-content: center;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: .85rem;
color: #fff;
}
nav.site-nav a {
color: var(--text-muted);
text-decoration: none;
font-size: .9rem;
margin-left: 1.5rem;
}
nav.site-nav a:hover { color: var(--text); }
/* ---------- Hero ---------- */
.hero {
text-align: center;
padding: 3.5rem 1.5rem 2.5rem;
}
.hero h1 {
font-size: clamp(1.9rem, 4vw, 2.75rem);
font-weight: 800;
letter-spacing: -0.02em;
margin-bottom: .75rem;
}
.hero p {
color: var(--text-muted);
font-size: 1.05rem;
max-width: 34rem;
margin: 0 auto;
}
/* ---------- Billing toggle ---------- */
.billing-toggle {
display: inline-flex;
align-items: center;
gap: .75rem;
margin-top: 1.75rem;
background: var(--surface);
border: 1px solid var(--border);
border-radius: 999px;
padding: .3rem;
}
.billing-toggle button {
border: none;
background: transparent;
color: var(--text-muted);
font: inherit;
font-size: .88rem;
font-weight: 600;
padding: .45rem 1.1rem;
border-radius: 999px;
cursor: pointer;
transition: background .15s, color .15s;
}
.billing-toggle button[aria-pressed="true"] {
background: var(--accent-deep);
color: #fff;
}
.billing-toggle .save {
font-size: .72rem;
font-weight: 700;
color: var(--good);
margin-left: .35rem;
}
/* ---------- Grid ---------- */
.plans {
max-width: 1120px;
margin: 2.5rem auto 0;
padding: 0 1.5rem;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.25rem;
align-items: stretch;
}
.plan {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 2rem 1.75rem;
display: flex;
flex-direction: column;
transition: border-color .15s, transform .15s;
}
.plan:hover { border-color: var(--border-strong); }
/* Emphasised middle tier: raised surface, accent border, gentle lift + glow */
.plan.featured {
background: var(--surface-raised);
border-color: var(--accent-strong);
box-shadow:
0 0 0 1px var(--accent-strong),
0 18px 45px -18px rgba(76, 141, 250, 0.45);
transform: translateY(-10px);
position: relative;
}
.plan.featured::before {
content: "";
position: absolute;
inset: 0 0 auto 0;
height: 3px;
border-radius: var(--radius) var(--radius) 0 0;
background: linear-gradient(90deg, var(--accent-strong), #8a63f4);
}
.plan h2 {
font-size: 1.05rem;
font-weight: 700;
letter-spacing: .02em;
}
.tagline {
color: var(--text-muted);
font-size: .88rem;
margin-top: .3rem;
min-height: 2.6em;
}
.price {
margin: 1.4rem 0 .25rem;
display: flex;
align-items: baseline;
gap: .35rem;
}
.price .amount {
font-size: 2.6rem;
font-weight: 800;
letter-spacing: -0.03em;
font-variant-numeric: tabular-nums;
}
.price .unit {
color: var(--text-muted);
font-size: .88rem;
}
.price-note {
font-size: .78rem;
color: var(--text-muted);
min-height: 1.2em;
margin-bottom: 1.4rem;
}
/* ---------- Feature lists ---------- */
ul.features {
list-style: none;
display: grid;
gap: .65rem;
margin-bottom: 2rem;
flex-grow: 1;
}
ul.features li {
display: flex;
gap: .6rem;
align-items: flex-start;
font-size: .9rem;
color: var(--text);
}
ul.features li svg {
flex-shrink: 0;
margin-top: .2rem;
}
ul.features li.muted { color: var(--text-muted); }
.includes {
font-size: .75rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .08em;
color: var(--text-muted);
margin-bottom: .9rem;
}
/* ---------- CTAs ---------- */
.cta {
display: block;
text-align: center;
text-decoration: none;
font-weight: 600;
font-size: .93rem;
padding: .75rem 1rem;
border-radius: 10px;
transition: background .15s, border-color .15s, color .15s;
}
.cta.secondary {
color: var(--text);
background: transparent;
border: 1px solid var(--border-strong);
}
.cta.secondary:hover {
border-color: var(--accent);
color: var(--accent);
}
.cta.primary {
color: #fff;
background: var(--accent-deep);
border: 1px solid transparent;
}
.cta.primary:hover { background: var(--accent-strong); }
/* ---------- Footer notes ---------- */
.fineprint {
text-align: center;
color: var(--text-muted);
font-size: .85rem;
max-width: 42rem;
margin: 3rem auto 0;
padding: 0 1.5rem;
}
.fineprint a { color: var(--accent); text-decoration: none; }
.fineprint a:hover { text-decoration: underline; }
.faq-line {
text-align: center;
margin: 2.25rem auto 4rem;
color: var(--text-muted);
font-size: .9rem;
}
.faq-line a { color: var(--accent); text-decoration: none; }
/* ---------- Responsive ---------- */
@media (max-width: 860px) {
.plans {
grid-template-columns: 1fr;
max-width: 480px;
}
/* On mobile the featured card leads with order + subtle lift removed */
.plan.featured { transform: none; order: -1; }
.tagline { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
* { transition: none !important; }
}
</style>
</head>
<body>
<header class="site">
<a class="logo" href="#"><span class="logo-mark">>_</span>Forge CLI</a>
<nav class="site-nav">
<a href="#">Docs</a>
<a href="#">Changelog</a>
<a href="#">Sign in</a>
</nav>
</header>
<section class="hero">
<h1>Pricing that scales with your workflow</h1>
<p>Ship faster with instant preview environments, zero-config deploys, and observability built for developers. Start free — upgrade when you need more.</p>
<div class="billing-toggle" role="group" aria-label="Billing period">
<button type="button" id="btn-monthly" aria-pressed="true">Monthly</button>
<button type="button" id="btn-annual" aria-pressed="false">Annual<span class="save">−20%</span></button>
</div>
</section>
<main class="plans">
<!-- Hobby -->
<article class="plan" aria-label="Hobby plan">
<h2>Hobby</h2>
<p class="tagline">Everything you need for side projects and weekend experiments.</p>
<div class="price">
<span class="amount">$0</span>
<span class="unit">forever</span>
</div>
<p class="price-note">No credit card required.</p>
<p class="includes">Includes</p>
<ul class="features">
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Unlimited local builds</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>3 cloud deploys per day</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>1 preview environment</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>7-day log retention</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Community support</li>
</ul>
<a class="cta secondary" href="#">Start for free</a>
</article>
<!-- Pro (featured) -->
<article class="plan featured" aria-label="Pro plan (most popular)">
<h2>Pro</h2>
<p class="tagline">For professional developers shipping production software solo.</p>
<div class="price">
<span class="amount" data-monthly="$20" data-annual="$16">$20</span>
<span class="unit">/ month</span>
</div>
<p class="price-note" data-monthly="Billed monthly. Cancel anytime." data-annual="Billed annually ($192/yr).">Billed monthly. Cancel anytime.</p>
<p class="includes">Everything in Hobby, plus</p>
<ul class="features">
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Unlimited cloud deploys</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>10 concurrent preview environments</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Custom domains & SSL</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Remote build cache</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>90-day log retention</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Priority email support</li>
</ul>
<a class="cta primary" href="#">Start 14-day free trial</a>
</article>
<!-- Team -->
<article class="plan" aria-label="Team plan">
<h2>Team</h2>
<p class="tagline">Collaboration, access control, and compliance for growing teams.</p>
<div class="price">
<span class="amount" data-monthly="$60" data-annual="$48">$60</span>
<span class="unit">/ seat / month</span>
</div>
<p class="price-note" data-monthly="Minimum 3 seats. Billed monthly." data-annual="Minimum 3 seats. Billed annually.">Minimum 3 seats. Billed monthly.</p>
<p class="includes">Everything in Pro, plus</p>
<ul class="features">
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Shared projects & role-based access</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>SSO / SAML & SCIM provisioning</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Audit logs & deploy approvals</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Unlimited preview environments</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>1-year log retention</li>
<li><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M3 8.5l3.2 3.2L13 4.9" stroke="#56d364" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>Dedicated support with 4-hour SLA</li>
</ul>
<a class="cta secondary" href="#">Contact sales</a>
</article>
</main>
<p class="fineprint">
All plans include unlimited public projects, the full CLI, and access to the plugin registry.
Prices exclude applicable taxes. Need something bigger? <a href="#">Talk to us about Enterprise.</a>
</p>
<p class="faq-line">Questions about limits or billing? Read the <a href="#">pricing FAQ</a>.</p>
<script>
(function () {
var monthlyBtn = document.getElementById('btn-monthly');
var annualBtn = document.getElementById('btn-annual');
function setBilling(mode) {
monthlyBtn.setAttribute('aria-pressed', mode === 'monthly');
annualBtn.setAttribute('aria-pressed', mode === 'annual');
var els = document.querySelectorAll('[data-monthly]');
for (var i = 0; i < els.length; i++) {
els[i].textContent = els[i].getAttribute('data-' + mode);
}
}
monthlyBtn.addEventListener('click', function () { setBilling('monthly'); });
annualBtn.addEventListener('click', function () { setBilling('annual'); });
})();
</script>
</body>
</html>