Files
notplanned/template.html
T
2026-10-05 20:11:24 +00:00

56 lines
6.3 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>notplanned</title>
<meta name="description" content="We build the features maintainers won't. A live scout board for rejected demand.">
<style>
:root{color-scheme:light dark;--bg:#f3f1eb;--fg:#111;--muted:#6d6a62;--line:#c9c5ba;--card:#faf8f2;--hot:#ff5a1f;--warm:#e29a16;--watch:#7c817a}
@media(prefers-color-scheme:dark){:root{--bg:#10100f;--fg:#f2efe7;--muted:#a7a299;--line:#393732;--card:#171715;--hot:#ff7540;--warm:#f0ad2f;--watch:#92988f}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace}a{color:inherit}.wrap{width:min(1180px,calc(100% - 36px));margin:0 auto}
header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{font-weight:850;letter-spacing:-.05em}.tiny{font-size:11px;color:var(--muted)}
.hero{padding:82px 0 58px;display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:end}h1{font-family:ui-sans-serif,system-ui,sans-serif;font-size:clamp(48px,8vw,96px);line-height:.88;letter-spacing:-.075em;margin:0}.dek{font-family:ui-sans-serif,system-ui,sans-serif;font-size:18px;line-height:1.45;color:var(--muted);max-width:470px;margin:0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:58px}.stat{padding:18px 20px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;font-family:ui-sans-serif,system-ui,sans-serif;font-size:25px;letter-spacing:-.04em}.stat span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 18px}.section-head h2{font-family:ui-sans-serif,system-ui,sans-serif;font-size:30px;letter-spacing:-.04em;margin:0}.section-head p{margin:0;color:var(--muted);font-size:12px;max-width:480px;text-align:right}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:70px}.card{display:flex;flex-direction:column;min-height:340px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;text-decoration:none;transition:transform .12s ease,border-color .12s ease}.card:hover{transform:translateY(-2px);border-color:var(--fg)}
.topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.repo{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.heat{font-size:10px;text-transform:uppercase;letter-spacing:.11em;border:1px solid currentColor;border-radius:999px;padding:5px 8px}.heat.hot{color:var(--hot)}.heat.warm{color:var(--warm)}.heat.watch{color:var(--watch)}
.card h3{font-family:ui-sans-serif,system-ui,sans-serif;font-size:25px;line-height:1.03;letter-spacing:-.04em;margin:0 0 9px}.issue-title{font-size:12px;color:var(--muted);margin-bottom:22px}.thesis{font-family:ui-sans-serif,system-ui,sans-serif;font-size:15px;line-height:1.45;margin:0 0 22px}
.kv{margin-top:auto;border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:70px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.45}.row:last-child{border-bottom:0}.key{color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.go{font-weight:700}
.fresh{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:72px}.fresh-card{border:1px dashed var(--line);border-radius:16px;padding:18px;text-decoration:none;min-height:190px}.fresh-card:hover{border-style:solid}.fresh-card h4{font-family:ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.12;margin:10px 0}.fresh-meta{font-size:10px;color:var(--muted)}.fresh-move{font-size:12px;line-height:1.45;margin-top:15px}
.loop{display:flex;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-bottom:50px;font-size:12px}.loop span:not(:last-child)::after{content:"→";margin-left:10px;color:var(--muted)}
footer{display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:11px;padding-bottom:36px}
@media(max-width:850px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.fresh{grid-template-columns:1fr 1fr}.section-head{align-items:start;flex-direction:column}.section-head p{text-align:left}.stats{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line)}.stat:last-child{border-bottom:0}}
@media(max-width:560px){.fresh{grid-template-columns:1fr}.hero{padding-top:58px}footer{flex-direction:column}}
</style>
</head>
<body>
<div class="wrap">
<header><div class="brand">notplanned</div><div class="tiny">scout board · a yolopreneur game</div></header>
<section class="hero">
<h1>build what fell off the roadmap.</h1>
<p class="dek">GitHub is full of real demand hiding in <strong>not planned</strong>, <strong>out of scope</strong>, <strong>stale</strong>, and <strong>won't fix</strong>. Scout the friction. Build the smallest external move. Let reality decide whether it gets another pull.</p>
</section>
<section class="stats">
<div class="stat"><strong>__CURATED_COUNT__</strong><span>scout-reviewed plays</span></div>
<div class="stat"><strong>__FRESH_COUNT__</strong><span>fresh machine finds</span></div>
<div class="stat"><strong>__UPDATED__</strong><span>last scout pass · UTC</span></div>
</section>
<div class="section-head">
<h2>plays</h2>
<p>Human/agent scout-reviewed. Each card includes a thesis and the smallest move that could falsify it.</p>
</div>
<section class="grid">__CURATED_CARDS__</section>
<div class="section-head">
<h2>fresh finds</h2>
<p>Auto-surfaced from recently closed <code>not_planned</code> GitHub issues in watched repos. These are leads, not endorsements.</p>
</div>
<section class="fresh">__FRESH_CARDS__</section>
<div class="loop"><span>watch hot repos</span><span>find rejected demand</span><span>score friction + recency</span><span>scout judgment</span><span>smallest move</span><span>reality selects</span></div>
<footer><span>notplanned · we build the features maintainers won't</span><span>auto-scout refreshes every 6h</span></footer>
</div>
</body>
</html>