<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pricing — DevTool</title>
<style>
:root {
--bg: #0b0c0f;
--panel: #131417;
--panel-raised: #17191d;
--border: #24262b;
--border-light: #2e3138;
--text: #e8e9eb;
--text-dim: #9a9da5;
--text-faint: #6b6e76;
--accent: #6ee7b7;
--accent-soft: rgba(110, 231, 183, 0.1);
--radius: 14px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
color: var(--text);
-webkit-font-smoothing: antialiased;
line-height: 1.5;
}
.wrap {
max-width: 1100px;
margin: 0 auto;
padding: 72px 24px 96px;
}
header.page-head {
text-align: center;
margin-bottom: 56px;
}
header.page-head h1 {
font-size: 2.25rem;
margin: 0 0 12px;
letter-spacing: -0.02em;
}
header.page-head p {
color: var(--text-dim);
font-size: 1.05rem;
margin: 0 auto;
max-width: 480px;
}
.billing-toggle {
margin: 28px auto 0;
display: inline-flex;
align-items: center;
gap: 10px;
background: var(--panel);
border: 1px solid var(--border);
padding: 4px;
border-radius: 999px;
}
.billing-toggle button {
border: none;
background: transparent;
color: var(--text-dim);
font-size: 0.85rem;
padding: 8px 16px;
border-radius: 999px;
cursor: pointer;
font-family: inherit;
transition: background 0.15s ease, color 0.15s ease;
}
.billing-toggle button.active {
background: var(--panel-raised);
color: var(--text);
border: 1px solid var(--border-light);
}
.save-tag {
font-size: 0.7rem;
color: var(--accent);
margin-left: 4px;
}
.tiers {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
align-items: stretch;
}
.tier {
background: var(--panel);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 32px 28px;
display: flex;
flex-direction: column;
position: relative;
}
.tier.featured {
background: var(--panel-raised);
border: 1px solid var(--border-light);
box-shadow: 0 20px 50px -20px rgba(110, 231, 183, 0.15), 0 0 0 1px rgba(110,231,183,0.05) inset;
transform: translateY(-10px);
}
@media (min-width: 769px) {
.tier.featured { padding-top: 38px; padding-bottom: 38px; }
}
.tier-name {
font-size: 0.95rem;
font-weight: 600;
letter-spacing: 0.02em;
margin: 0 0 6px;
color: var(--text);
}
.tier.featured .tier-name {
color: var(--accent);
}
.tagline {
color: var(--text-dim);
font-size: 0.9rem;
margin: 0 0 24px;
min-height: 40px;
}
.price-row {
display: flex;
align-items: baseline;
gap: 6px;
margin-bottom: 4px;
}
.price {
font-size: 2.6rem;
font-weight: 650;
letter-spacing: -0.03em;
}
.price-unit {
color: var(--text-faint);
font-size: 0.9rem;
}
.price-note {
color: var(--text-faint);
font-size: 0.8rem;
margin-bottom: 28px;
min-height: 18px;
}
.cta {
display: block;
text-align: center;
text-decoration: none;
font-size: 0.92rem;
font-weight: 600;
padding: 12px 20px;
border-radius: 9px;
margin-bottom: 28px;
cursor: pointer;
border: 1px solid var(--border-light);
background: var(--panel-raised);
color: var(--text);
transition: background 0.15s ease, border-color 0.15s ease, transform 0.1s ease;
}
.cta:hover {
border-color: #3a3d45;
transform: translateY(-1px);
}
.cta.primary {
background: var(--accent);
color: #06110c;
border: 1px solid var(--accent);
}
.cta.primary:hover {
background: #7fedbf;
}
.features {
list-style: none;
padding: 0;
margin: 0;
flex-grow: 1;
}
.features li {
display: flex;
align-items: flex-start;
gap: 10px;
padding: 9px 0;
border-top: 1px solid var(--border);
font-size: 0.88rem;
color: #cfd1d6;
}
.features li:first-child {
border-top: none;
}
.check {
flex-shrink: 0;
width: 16px;
height: 16px;
margin-top: 2px;
color: var(--accent);
}
.tier:not(.featured) .check {
color: #6f727a;
}
footer.foot {
text-align: center;
margin-top: 64px;
color: var(--text-faint);
font-size: 0.85rem;
}
footer.foot a {
color: var(--text-dim);
text-decoration: underline;
}
@media (max-width: 768px) {
.tiers {
grid-template-columns: 1fr;
}
.tier.featured {
transform: none;
order: -1;
}
header.page-head h1 { font-size: 1.8rem; }
}
</style>
</head>
<body>
<div class="wrap">
<header class="page-head">
<h1>Simple pricing, built for how you ship</h1>
<p>Start free. Upgrade when your team and your builds outgrow the basics.</p>
<div class="billing-toggle" role="group" aria-label="Billing period">
<button type="button" class="active" id="btn-monthly" onclick="setBilling('monthly')">Monthly</button>
<button type="button" id="btn-annual" onclick="setBilling('annual')">Annual <span class="save-tag">save 20%</span></button>
</div>
</header>
<div class="tiers">
<section class="tier" aria-label="Hobby plan">
<h2 class="tier-name">Hobby</h2>
<p class="tagline">For side projects and getting to know the tool.</p>
<div class="price-row">
<span class="price">$0</span>
</div>
<div class="price-note">forever free</div>
<a href="#" class="cta">Start for free</a>
<ul class="features">
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> 1 project</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Community support</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> 500 build minutes / mo</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> CLI + local dev server</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> 7-day log retention</li>
</ul>
</section>
<section class="tier featured" aria-label="Pro plan">
<h2 class="tier-name">Pro</h2>
<p class="tagline">For individual developers shipping to production.</p>
<div class="price-row">
<span class="price" id="pro-price">$20</span>
<span class="price-unit">/ month</span>
</div>
<div class="price-note" id="pro-note">billed monthly</div>
<a href="#" class="cta primary">Start 14-day trial</a>
<ul class="features">
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Unlimited projects</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Priority email support</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> 10,000 build minutes / mo</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Preview deployments</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> 90-day log retention</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Custom domains</li>
</ul>
</section>
<section class="tier" aria-label="Team plan">
<h2 class="tier-name">Team</h2>
<p class="tagline">For teams that need shared environments and controls.</p>
<div class="price-row">
<span class="price" id="team-price">$60</span>
<span class="price-unit">/ seat / month</span>
</div>
<div class="price-note" id="team-note">billed monthly</div>
<a href="#" class="cta">Talk to sales</a>
<ul class="features">
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Everything in Pro</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Role-based access control</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Unlimited build minutes</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Shared environments & secrets</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> SSO / SAML</li>
<li><svg class="check" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 10l4 4 8-9"/></svg> Dedicated Slack channel</li>
</ul>
</section>
</div>
<footer class="foot">
Prices in USD. Need something custom? <a href="#">Contact us</a> for enterprise plans.
</footer>
</div>
<script>
function setBilling(period) {
var monthlyBtn = document.getElementById('btn-monthly');
var annualBtn = document.getElementById('btn-annual');
var proPrice = document.getElementById('pro-price');
var proNote = document.getElementById('pro-note');
var teamPrice = document.getElementById('team-price');
var teamNote = document.getElementById('team-note');
if (period === 'annual') {
monthlyBtn.classList.remove('active');
annualBtn.classList.add('active');
proPrice.textContent = '$16';
proNote.textContent = 'billed annually ($192/yr)';
teamPrice.textContent = '$48';
teamNote.textContent = 'per seat, billed annually';
} else {
annualBtn.classList.remove('active');
monthlyBtn.classList.add('active');
proPrice.textContent = '$20';
proNote.textContent = 'billed monthly';
teamPrice.textContent = '$60';
teamNote.textContent = 'billed monthly';
}
}
</script>
</body>
</html>