1<!doctype html> 2<html lang="en"> 3<head> 4<meta charset="utf-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6<title>Open pools â FablePool</title> 7<meta name="description" content="Browse FablePool open project pools. Vote, compare credits raised and target credits, then fill the pool behind software ideas you want AI agents to build in public."> 8<link rel="canonical" href="https://fablepool.com/discover"> 9 10<meta property="og:title" content="Open pools â FablePool"> 11<meta property="og:description" content="Browse FablePool open project pools. Vote, compare credits raised and target credits, then fill the pool behind software ideas you want AI agents to build in public."> 12<meta property="og:url" content="https://fablepool.com/discover"> 13<meta property="og:type" content="website"> 14<meta property="og:site_name" content="FablePool"> 15<meta property="og:image" content="https://fablepool.com/og.png"> 16<meta property="og:image:width" content="1200"> 17<meta property="og:image:height" content="630"> 18<meta name="twitter:card" content="summary_large_image"> 19<meta name="twitter:title" content="Open pools â FablePool"> 20<meta name="twitter:description" content="Browse FablePool open project pools. Vote, compare credits raised and target credits, then fill the pool behind software ideas you want AI agents to build in public."> 21<meta name="twitter:image" content="https://fablepool.com/og.png"> 22<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%231B6E4C'/%3E%3Cpath fill='%23FFFFFF' d='M20 14h26v7H28v8h15v7H28v14h-8z'/%3E%3C/svg%3E"> 23<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin> 24<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/[email protected]/index.min.css"> 25<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/[email protected]/500.min.css"> 26<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/[email protected]/700.min.css"> 27<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/[email protected]/index.min.css"> 28<style> 29:root { 30 --fp-bg:#EFF1ED; 31 --fp-bg-soft:#EDEFEA; 32 --fp-surface:#FFFFFF; 33 --fp-ink:#16201B; 34 --fp-ink-2:#5C6862; 35 --fp-ink-3:#8A958E; 36 --fp-line:#E3E6E0; 37 --fp-line-soft:#EDEFEA; 38 --fp-up:#1B6E4C; 39 --fp-up-text:#1B6E4C; 40 --fp-acc:#1B6E4C; 41 --fp-acc-hover:#14533A; 42 --fp-down:#C2553D; 43 --fp-down-text:#A2412E; 44 --fp-ok:#1AA05B; 45 --fp-ok-text:#1B6E4C; 46 --fp-water-1:#46C7E8; 47 --fp-water-2:#1F86C9; 48 --fp-coin:#F5A623; 49 --fp-danger:#B0302A; 50 --fp-amber-bg:#FBF3DF; 51 --fp-amber-text:#9A7B1F; 52 --fp-sans:'Geist Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; 53 --fp-mono:'Geist Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; 54 --fp-radius:18px; 55 --fp-radius-sm:9px; 56 --fp-shadow:0 10px 30px -12px rgba(22,32,27,.18); 57 --paper:var(--fp-bg); 58 --card:var(--fp-surface); 59 --ink:var(--fp-ink); 60 --mut:var(--fp-ink-2); 61 --acc:var(--fp-acc); 62 --ok:var(--fp-ok-text); 63 --warn:var(--fp-amber-text); 64 --err:var(--fp-danger); 65 --rule:var(--fp-line); 66} 67* { box-sizing:border-box; } 68html { background:var(--fp-bg); overflow-x:clip; } 69body { margin:0; background:var(--fp-bg); color:var(--fp-ink); font:16px/1.55 var(--fp-sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:clip; } 70::selection{background:var(--fp-acc);color:#fff;} 71a { color:var(--fp-ink); text-decoration:none; } 72a:hover { color:var(--fp-acc); text-decoration:underline; text-decoration-color:var(--fp-acc); text-underline-offset:3px; } 73:focus-visible { outline:2px solid var(--fp-acc); outline-offset:3px; border-radius:4px; } 74.page-shell { min-height:100vh; display:flex; flex-direction:column; background:var(--fp-bg); } 75.site-header { position:sticky; top:0; z-index:40; background:rgba(239,241,237,.82); backdrop-filter:blur(12px); border-bottom:1px solid var(--fp-line); } 76.site-header-bar { max-width:1120px; margin:0 auto; min-height:56px; padding:0 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; } 77.site-logo { display:inline-flex; align-items:center; gap:.55rem; color:var(--fp-ink); font-weight:700; letter-spacing:-.02em; line-height:1; } 78.site-logo:hover { color:var(--fp-ink); text-decoration:none; } 79.site-logo svg { width:1.4rem; height:1.4rem; flex:0 0 auto; } 80.site-logo span b { color:var(--fp-acc); } 81.site-nav { display:flex; gap:.25rem; margin-left:auto; align-items:center; justify-content:flex-end; font-size:.86rem; flex-wrap:wrap; } 82.site-nav a { display:inline-flex; align-items:center; gap:.35rem; color:var(--fp-ink-2); font-weight:500; padding:.43rem .68rem; border-radius:var(--fp-radius-sm); } 83.site-nav a:hover { background:var(--fp-surface); color:var(--fp-ink); text-decoration:none; }
84.site-nav a.nav-active:not(.btn) { color:var(--fp-ink); background:var(--fp-surface); font-weight:700; } 85.site-nav .btn { color:#fff; padding:.5rem .9rem; } 86.site-main { width:100%; max-width:880px; margin:0 auto; padding:1.65rem 1.25rem 4rem; flex:1; } 87.site-main.market-wide { max-width:1120px; } 88.site-footer { text-align:center; color:var(--fp-ink-2); font-size:.84rem; padding:2rem 1rem; border-top:1px solid var(--fp-line); } 89.site-footer a { color:var(--fp-ink-2); margin:0 .5rem; } 90.site-footer a:hover { color:var(--fp-acc); } 91.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} 92.admin-bell,.user-bell{display:inline-flex;align-items:center;gap:.25rem;color:var(--fp-ink);position:relative;} 93.admin-bell svg,.user-bell svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;} 94.admin-bell.has,.user-bell.has{color:var(--fp-danger);font-weight:600;} 95.admin-bell span,.user-bell span{font-family:var(--fp-mono);font-size:.68rem;line-height:1;min-width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--fp-danger);color:#fff;padding:0 .25rem;} 96header:not(.site-header) { display:flex; align-items:center; gap:1rem; padding:.8rem 1.2rem; border-bottom:1px solid var(--fp-line); } 97header:not(.site-header) .logo { font-weight:700; color:var(--fp-ink); } 98header:not(.site-header) .logo span { color:var(--fp-acc); } 99header:not(.site-header) nav { display:flex; gap:1rem; margin-left:auto; align-items:center; font-size:.93rem; flex-wrap:wrap; } 100main { max-width:880px; margin:0 auto; padding:1.65rem 1.25rem 4rem; } 101.market-wide{max-width:1120px;} 102.card,.fp-card { background:var(--fp-surface); border:1px solid var(--fp-line); border-radius:var(--fp-radius); padding:1.15rem 1.25rem; margin:.9rem 0; box-shadow:none; transition:border-color .15s, box-shadow .15s, transform .15s; } 103.card:hover,.fp-card:hover { border-color:#D2D8D0; box-shadow:var(--fp-shadow); transform:translateY(-2px); } 104.row { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; } 105.muted { color:var(--fp-ink-2); font-size:.9rem; } 106.fp-kicker { display:flex; align-items:center; gap:.55rem; font-family:var(--fp-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fp-ink-3); margin:0 0 .65rem; } 107.fp-kicker::before { content:""; width:.42rem; height:.42rem; border-radius:999px; background:var(--fp-acc); } 108.fp-section { margin:1.5rem 0; } 109.fp-section-head { margin:0 0 1rem; } 110.fp-section-head h2 { margin:.1rem 0 .35rem; } 111.badge,.fp-badge { font-family:var(--fp-mono); font-size:.67rem; text-transform:uppercase; letter-spacing:.08em; padding:.18rem .55rem; border-radius:999px; border:1px solid var(--fp-line); background:var(--fp-bg-soft); color:var(--fp-ink-2); white-space:nowrap; } 112.badge.ok,.fp-badge.ok { color:var(--fp-ok-text); border-color:rgba(27,127,77,.35); background:rgba(27,127,77,.08); } 113.badge.warn,.fp-badge.warn { color:var(--fp-amber-text); border-color:#EFE2BC; background:var(--fp-amber-bg); } 114.badge.err,.fp-badge.err { color:var(--fp-danger); border-color:rgba(179,38,30,.35); background:rgba(179,38,30,.08); } 115.badge.acc,.fp-badge.acc { color:var(--fp-water-2); border-color:rgba(27,102,214,.32); background:rgba(95,183,255,.12); } 116button, .btn,.fp-button { background:var(--fp-acc); border:1px solid var(--fp-acc); color:#fff; padding:.55rem 1.05rem; border-radius:11px; font:inherit; font-size:.9rem; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; white-space:nowrap; line-height:1.2; } 117button:hover, .btn:hover,.fp-button:hover { background:var(--fp-acc-hover); border-color:var(--fp-acc-hover); color:#fff; text-decoration:none; } 118button:active, .btn:active,.fp-button:active { transform:translateY(1px); } 119button.funding, .btn.funding,.fp-button.funding { background:var(--fp-ok-text); border-color:var(--fp-ok-text); color:#fff; } 120button.funding:hover, .btn.funding:hover,.fp-button.funding:hover { background:#15693f; border-color:#15693f; } 121button.ghost, .btn.ghost,.fp-button.subtle { background:var(--fp-surface); border:1px solid var(--fp-line); color:var(--fp-ink); font-weight:600; } 122button.ghost:hover, .btn.ghost:hover,.fp-button.subtle:hover { border-color:#D2D8D0; color:var(--fp-ink); background:var(--fp-bg); } 123button.danger,.btn.danger,.fp-button.danger { background:var(--fp-danger); border-color:var(--fp-danger); color:#fff; } 124button.link,.btn.link,.fp-button.link { background:transparent; border-color:transparent; color:var(--fp-ink-2); padding:.2rem .1rem; } 125button.link:hover,.btn.link:hover,.fp-button.link:hover { color:var(--fp-acc); background:transparent; text-decoration:underline; text-underline-offset:3px; } 126input, textarea, select { width:100%; background:var(--fp-surface); color:var(--fp-ink); border:1px solid var(--fp-line); border-radius:10px; padding:.62rem .75rem; font:inherit; } 127input:focus, textarea:focus, select:focus { border-color:var(--fp-ink); outline:none; box-shadow:0 0 0 3px rgba(10,124,102,.12); } 128input::placeholder, textarea::placeholder { color:var(--fp-ink-3); } 129textarea { min-height:140px; } 130label { display:block; margin:.8rem 0 .25rem; font-size:.78rem; color:var(--fp-ink-2); font-family:var(--fp-mono); text-transform:uppercase; letter-spacing:.08em; } 131table { width:100%; border-collapse:collapse; font-size:.9rem; font-variant-numeric:tabular-nums; } 132th, td { text-align:left; padding:.5rem .55rem; border-bottom:1px solid var(--fp-line); } 133th { color:var(--fp-ink-2); font-weight:600; font-family:var(--fp-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; } 134.logbox { background:var(--fp-surface); border:1px solid var(--fp-line); border-radius:var(--fp-radius); padding:.9rem 1rem; max-height:420px; overflow-y:auto; font-family:var(--fp-mono); font-size:.8rem; font-variant-numeric:tabular-nums; } 135.logbox .ts { color:var(--fp-ink-3); margin-right:.5rem; font-size:.72rem; } 136.logbox .spend { color:var(--fp-danger); } .logbox .error { color:var(--fp-danger); font-weight:600; } .logbox .output { color:var(--fp-ok-text); } 137.bar,.funding-progress-track { height:7px; background:var(--fp-line); border:0; border-radius:99px; overflow:hidden; margin:.4rem 0; } 138.bar > div,.funding-progress-fill { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--fp-water-1), var(--fp-water-2)); } 139.funding-progress.full .funding-progress-fill { background:linear-gradient(90deg,#3FB985,var(--fp-acc)); } 140.funding-progress { display:grid; gap:9px; min-width:0; max-width:100%; } 141.funding-progress-meta { display:flex; align-items:center; justify-content:space-between; gap:.75rem; color:var(--fp-ink-2); font-family:var(--fp-mono); font-size:.74rem; min-width:0; max-width:100%; } 142.funding-progress-meta span{min-width:0;max-width:100%;overflow-wrap:anywhere;} 143.funding-progress-meta strong { color:var(--fp-ink); } 144.funding-progress-pct{font-family:var(--fp-mono);font-size:.82rem;font-weight:700;color:var(--fp-water-2);white-space:nowrap;} 145.funding-progress-pct b{font-size:inherit;line-height:inherit;font-weight:inherit;letter-spacing:normal;} 146.funding-progress-pct span{font-size:inherit;font-weight:inherit;color:inherit;} 147.funding-progress-pct.full{color:var(--fp-acc);} 148.exp-row td { text-align:center; padding-top:.7rem; border-bottom:0; } 149.exp-btn { font-size:.82rem; padding:.35rem 1rem; } 150.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; } 151h1, h2 { font-weight:700; letter-spacing:-.03em; } 152h1 { font-size:clamp(1.8rem,3.4vw,2.35rem); line-height:1.08; } h2 { font-size:1.35rem; line-height:1.15; } 153.flash { border-left:3px solid var(--fp-acc); padding:.7rem 1rem; background:var(--fp-surface); border:1px solid var(--fp-line); border-left-width:3px; margin:.8rem 0; border-radius:var(--fp-radius-sm); } 154.flash.err { border-left-color:var(--fp-danger); } 155.continuity-note { border-left:3px solid var(--fp-acc); padding:.7rem 1rem; background:var(--fp-surface); border:1px solid var(--fp-line); border-left-width:3px; margin:.8rem 0 1.1rem; border-radius:var(--fp-radius-sm); color:var(--fp-ink-2); font-size:.9rem; } 156.continuity-note a { white-space:nowrap; } 157footer:not(.site-footer) { text-align:center; color:var(--fp-ink-2); font-size:.84rem; padding:2rem 0; border-top:1px solid var(--fp-line); } 158footer:not(.site-footer) a { color:var(--fp-ink-2); margin:0 .5rem; } 159.discover-card{align-items:center;justify-content:space-between;} 160.discover-main{flex:1;min-width:0;} 161/* Reserve a consistent width for the action column so optional badges 162 (demo / backers-only) appearing or not don't shift the title column between 163 cards. Overridden to full-width on mobile below. */ 164.discover-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end;min-width:6.5rem;} 165.discover-actions .badge{align-self:center;} 166/* Discover filter bar: a composed card â summary head (live result count + 167 removable active-filter chips + Clear all) over labelled rows of one-tap pills. 168 Sort is separated from the filtering dimensions by a hairline divider. */ 169.filter-bar{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:11px;box-shadow:none;padding:3px;margin:0 0 1.25rem;} 170.filter-head{display:flex;align-items:center;gap:.6rem .8rem;flex-wrap:wrap;padding:.55rem .85rem;} 171.filter-count{font-weight:700;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;} 172.filter-count span{color:var(--fp-ink-2);font-weight:500;} 173.filter-active{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;flex:1;min-width:0;} 174.filter-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .25rem .2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--fp-acc);background:#E6F2EC;border:1px solid #CDE7DA;white-space:nowrap;} 175.filter-chip a{display:inline-flex;align-items:center;justify-content:center;width:1.05rem;height:1.05rem;border-radius:999px;color:var(--fp-acc);font-size:.9rem;line-height:1;} 176.filter-chip a:hover{background:rgba(10,124,102,.18);color:var(--fp-acc);text-decoration:none;} 177.filter-clear{margin-left:auto;font-size:.82rem;font-weight:600;color:var(--fp-ink-2);font-family:var(--fp-mono);white-space:nowrap;} 178.filter-clear:hover{color:var(--fp-acc);} 179.filter-rows{display:flex;flex-direction:column;gap:.15rem;padding:.15rem .25rem .35rem;}
180.discover-control-group{display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap;padding:.4rem .6rem;border-radius:var(--fp-radius-sm);} 181.discover-control-group + .discover-control-group{position:relative;} 182.discover-control-group.is-sort{border-bottom:1px solid var(--fp-line);margin-bottom:.2rem;padding-bottom:.6rem;border-radius:0;} 183.discover-control-label{font-family:var(--fp-mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--fp-ink-2);min-width:3.6rem;flex:0 0 3.6rem;padding-top:.2rem;} 184.sort-tabs{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;flex:1;min-width:0;} 185.discover-pill{display:inline-flex;align-items:center;padding:.43rem .82rem;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--fp-ink-2);font-size:.82rem;font-weight:600;line-height:1.1;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s;} 186.discover-pill:hover{border-color:transparent;color:var(--fp-ink);background:var(--fp-bg);text-decoration:none;transform:none;box-shadow:none;} 187.discover-pill:active{transform:translateY(0);box-shadow:none;} 188.discover-pill.active{border-color:var(--fp-acc);background:var(--fp-acc);color:#fff;font-weight:700;} 189.discover-pill.active:hover{background:var(--fp-acc-hover);border-color:var(--fp-acc-hover);color:#fff;transform:translateY(-1px);} 190/* Tags overflow: extra categories tuck behind a "+N more" pill that opens a 191 small popover, so a long tag list never balloons the bar. Native <details>. */ 192.tag-more{position:relative;display:inline-flex;} 193.tag-more > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;padding:.32rem .7rem;border-radius:999px;border:1px dashed var(--fp-line);background:var(--fp-surface);color:var(--fp-ink-2);font-size:.85rem;font-family:var(--fp-mono);transition:border-color .15s,color .15s;} 194.tag-more > summary::-webkit-details-marker{display:none;} 195.tag-more[open] > summary,.tag-more > summary:hover{border-color:var(--fp-ink-2);color:var(--fp-ink);border-style:solid;} 196.tag-more-panel{position:absolute;top:calc(100% + .4rem);left:0;z-index:30;display:flex;flex-wrap:wrap;gap:.3rem;width:max-content;max-width:min(78vw,360px);background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:var(--fp-radius);box-shadow:0 10px 28px rgba(22,24,26,.12);padding:.6rem;} 197.fp-list-row{display:flex;gap:.85rem;align-items:flex-start;padding:1rem .65rem;border-bottom:1px solid var(--fp-line);} 198.fp-list-row:hover{background:var(--fp-surface);} 199.market-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:1rem;align-items:stretch;margin:.2rem 0 1rem;} 200.market-hero h1{font-size:2.15rem;line-height:1.08;margin:.15rem 0 .55rem;} 201.market-panel{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:20px;padding:1.6rem;box-shadow:none;} 202.market-panel h1{max-width:14ch;} 203.market-panel.snapshot{display:flex;flex-direction:column;} 204.market-snapshot-title{display:flex;align-items:center;gap:.5rem;font-weight:700;} 205.market-live{font-family:var(--fp-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fp-acc);border:1px solid #CDE7DA;background:#E6F2EC;border-radius:999px;padding:.12rem .5rem;display:inline-flex;align-items:center;gap:.32rem;} 206.market-live::before{content:"";width:5px;height:5px;border-radius:999px;background:var(--fp-acc);box-shadow:0 0 8px var(--fp-acc);} 207.market-stats{display:flex;flex-direction:column;gap:0;margin:.85rem 0 0;flex:1;} 208.market-stat{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--fp-line-soft);padding:.78rem 0;background:transparent;} 209.market-stat:last-child{border-bottom:0;} 210.market-stat strong{display:block;font-family:var(--fp-mono);font-size:1.35rem;letter-spacing:-.02em;} 211.market-stat.money strong{color:var(--fp-acc);} 212.market-section{margin:1.35rem 0;} 213.market-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin:.2rem 0 .55rem;} 214.market-section-head h2{margin:0;} 215.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;} 216.project-list,.open-pools-list{display:grid;grid-template-columns:1fr;gap:1rem;} 217.project-card{display:flex;flex-direction:column;gap:15px;margin:0;height:100%;padding:20px;color:var(--fp-ink);} 218.project-card-head{display:flex;gap:13px;align-items:flex-start;} 219.project-card-title{flex:1;min-width:0;} 220.project-card-title strong{font-size:1.06rem;line-height:1.3;letter-spacing:-.015em;color:var(--fp-ink);overflow-wrap:anywhere;} 221.project-row .project-card-title strong{font-size:1.12rem;} 222.project-card-title a:hover strong{color:var(--fp-acc);} 223.project-card-title .muted{margin:6px 0 0;color:var(--fp-ink-2);font-size:.8rem;display:flex;gap:6px;flex-wrap:wrap;align-items:center;} 224.project-card-summary{margin:0;color:var(--fp-ink-2);font-size:.92rem;line-height:1.5;max-width:68ch;overflow-wrap:anywhere;} 225.project-card-tags{display:flex;gap:8px;flex-wrap:wrap;} 226.project-card .tag-pill,.project-card .badge{display:inline-flex;align-items:center;font-size:.67rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--fp-line);color:var(--fp-ink-2);background:var(--fp-line-soft);font-family:var(--fp-mono);line-height:1.1;white-space:nowrap;} 227.project-card .badge.ok{color:var(--fp-acc);background:#E6F2EC;border-color:#CDE7DA;} 228.project-card .badge.warn{color:var(--fp-amber-text);background:var(--fp-amber-bg);border-color:#EFE2BC;} 229.project-card .badge.acc{color:var(--fp-water-2);border-color:rgba(31,134,201,.28);background:rgba(70,199,232,.12);} 230.project-card-progress{margin:0;} 231.project-card-progress .bar,.project-card-progress .funding-progress-track{margin:0;} 232.project-card-metrics{display:flex;gap:18px;font-size:.8rem;color:var(--fp-ink-2);flex-wrap:wrap;} 233.project-card-metric{display:flex;align-items:center;gap:6px;min-width:0;} 234.project-card-metric svg{width:14px;
234height:14px;stroke:var(--fp-ink-3);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto;} 235.project-card-metric strong{display:inline;font-family:var(--fp-mono);font-weight:700;font-size:.86rem;line-height:1.2;color:var(--fp-ink);} 236.project-card-metric span{display:inline;color:var(--fp-ink-2);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} 237.project-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:13px;border-top:1px solid var(--fp-line-soft);} 238.project-card-status{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;} 239.project-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;} 240.project-card.project-row{display:grid;grid-template-columns:auto minmax(0,1fr) 144px;gap:18px;align-items:stretch;padding:18px 20px;} 241.project-row-body{min-width:0;display:flex;flex-direction:column;gap:12px;} 242.project-row-actions{border-left:1px solid var(--fp-line-soft);padding-left:18px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;} 243.project-row-actions .project-card-actions{display:flex;flex-direction:column;width:100%;gap:7px;} 244.project-row-actions .btn,.project-row-actions button{width:100%;justify-content:center;} 245.project-funded-box{text-align:center;} 246.project-funded-pct{font-family:var(--fp-mono);font-size:1.7rem;font-weight:700;letter-spacing:-.02em;line-height:1;color:var(--fp-water-2);} 247.project-funded-pct.full{color:var(--fp-acc);} 248.project-funded-label{font-family:var(--fp-mono);font-size:.68rem;color:var(--fp-ink-3);margin-top:4px;letter-spacing:.04em;text-transform:uppercase;} 249.project-funded-credits{display:grid;gap:.22rem;margin-top:.65rem;font-family:var(--fp-mono);font-size:.68rem;color:var(--fp-ink-2);text-align:left;} 250.project-funded-credits span{display:flex;justify-content:space-between;gap:.5rem;} 251.project-funded-credits strong{color:var(--fp-ink);font-weight:700;} 252.btn.small,button.small{font-size:.8rem;padding:8px 14px;border-radius:9px;} 253.project-detail{display:grid;gap:1.15rem;min-width:0;max-width:100%;} 254.project-detail > *{min-width:0;max-width:100%;} 255.project-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,390px);gap:1.35rem;align-items:start;margin:.2rem 0 .4rem;background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:20px;padding:1.35rem;box-shadow:none;min-width:0;max-width:100%;overflow:hidden;} 256.project-detail-panel,.project-action-panel{min-width:0;max-width:100%;} 257.project-detail-panel > *,.project-action-panel > *,.project-prompt-panel > *,.project-section-panel > *{min-width:0;max-width:100%;} 258.project-prompt-panel,.project-section-panel{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:20px;padding:1.25rem;box-shadow:none;min-width:0;max-width:100%;overflow:hidden;} 259.project-detail-panel h1{margin:.1rem 0 .55rem;font-size:clamp(2rem,4vw,3.1rem);line-height:1.02;letter-spacing:-.04em;overflow-wrap:anywhere;} 260.project-summary{margin:.7rem 0 0;color:var(--fp-ink-2);font-size:1rem;line-height:1.6;max-width:70ch;overflow-wrap:anywhere;} 261.project-detail-meta{display:flex;gap:.45rem .65rem;align-items:center;flex-wrap:wrap;font-family:var(--fp-mono);font-size:.72rem;color:var(--fp-ink-2);margin:.75rem 0 0;overflow-wrap:anywhere;} 262.project-detail-meta span{min-width:0;max-width:100%;overflow-wrap:anywhere;} 263.project-detail-tags{display:flex;gap:.45rem;flex-wrap:wrap;margin:.85rem 0 0;} 264.project-detail-tags .tag-pill,.project-detail-tags .badge{display:inline-flex;align-items:center;font-size:.67rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--fp-line);color:var(--fp-ink-2);background:var(--fp-line-soft);font-family:var(--fp-mono);line-height:1.1;white-space:nowrap;max-width:100%;} 265.project-detail-vote{margin-top:1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;} 266.project-action-panel{display:grid;gap:1rem;border-left:1px solid var(--fp-line-soft);padding-left:1.35rem;} 267.project-action-panel.fundable{background:linear-gradient(180deg,#F4FBF7 0%,#FFFFFF 100%);border:1px solid #CFE8D9;border-radius:16px;padding:1rem;} 268.project-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;} 269.project-action-head h2{margin:0;font-size:1rem;letter-spacing:-.01em;min-width:0;} 270.project-action-status{display:grid;gap:.7rem;} 271.project-funding-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;} 272.project-funding-stat{border:1px solid var(--fp-line);border-radius:11px;background:var(--fp-bg-soft);padding:.65rem .7rem;min-width:0;}
273.project-funding-stat span{display:block;font-family:var(--fp-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fp-ink-3);white-space:nowrap;} 274.project-funding-stat strong{display:block;margin-top:.16rem;font-family:var(--fp-mono);font-size:.95rem;letter-spacing:-.02em;color:var(--fp-ink);overflow-wrap:anywhere;} 275.project-next-step{border-top:1px solid var(--fp-line-soft);padding-top:.85rem;color:var(--fp-ink-2);font-size:.9rem;} 276.project-funding-pitch{border:1px solid #CFE8D9;background:#F4FBF7;border-radius:14px;padding:.85rem .95rem;color:var(--fp-ink);} 277.project-funding-pitch strong{display:block;font-size:1.02rem;line-height:1.25;} 278.project-funding-pitch span{display:block;margin-top:.25rem;color:var(--fp-ink-2);font-size:.88rem;line-height:1.45;} 279.project-action-buttons{display:grid;gap:.55rem;} 280.project-action-buttons .btn,.project-action-buttons button{width:100%;min-height:44px;} 281.project-action-buttons .btn.funding{min-height:54px;font-size:1rem;box-shadow:0 14px 28px -18px rgba(27,110,76,.8);} 282.project-fund-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:end;} 283.project-fund-form button.funding{min-height:44px;box-shadow:0 14px 28px -18px rgba(27,110,76,.8);} 284.project-risk-copy{margin:0;color:var(--fp-ink-3);font-size:.78rem;line-height:1.45;} 285.project-section{margin:1.35rem 0;} 286.project-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 .7rem;} 287.project-section-head h2{margin:0;} 288.project-section-head p{margin:.2rem 0 0;color:var(--fp-ink-2);font-size:.9rem;} 289.project-prompt-panel{display:grid;gap:1rem;} 290.project-brief{border-top:1px solid var(--fp-line-soft);padding-top:1rem;} 291.project-prompt-text{margin:.35rem 0 0;white-space:pre-wrap;line-height:1.68;max-width:82ch;overflow-wrap:anywhere;word-break:break-word;} 292.milestone-list,.ledger-list,.output-list,.activity-list,.comment-list{display:grid;gap:.7rem;min-width:0;max-width:100%;} 293.milestone-item,.ledger-entry,.output-item,.activity-item,.comment-item{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:14px;padding:1rem;box-shadow:none;min-width:0;max-width:100%;overflow:hidden;} 294.milestone-item summary{cursor:pointer;} 295.milestone-title-row,.ledger-entry-main,.output-item-main,.activity-item-main,.comment-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;flex-wrap:wrap;min-width:0;max-width:100%;} 296.milestone-title-row h3,.output-item-main h3,.activity-item-main h3{margin:0;font-size:1rem;line-height:1.3;letter-spacing:-.015em;min-width:0;max-width:100%;overflow-wrap:anywhere;} 297.milestone-meta,.ledger-meta,.output-meta,.activity-meta{display:flex;gap:.35rem .75rem;flex-wrap:wrap;align-items:center;margin-top:.45rem;font-family:var(--fp-mono);font-size:.7rem;color:var(--fp-ink-2);min-width:0;max-width:100%;} 298.milestone-meta span,.ledger-meta span,.output-meta span,.activity-meta span{min-width:0;max-width:100%;overflow-wrap:anywhere;} 299.milestone-desc,.activity-desc,.ledger-desc{margin:.55rem 0 0;color:var(--fp-ink-2);line-height:1.55;overflow-wrap:anywhere;word-break:break-word;} 300.milestone-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.75rem;min-width:0;max-width:100%;} 301.milestone-money div,.ledger-amount{border:1px solid var(--fp-line-soft);border-radius:10px;background:var(--fp-bg-soft);padding:.55rem .6rem;font-family:var(--fp-mono);font-size:.72rem;color:var(--fp-ink-2);min-width:0;max-width:100%;overflow-wrap:anywhere;} 302.milestone-money strong,.ledger-amount strong{display:block;color:var(--fp-ink);font-size:.9rem;margin-top:.12rem;overflow-wrap:anywhere;} 303.ledger-entry{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:1rem;align-items:start;} 304.ledger-amount{text-align:right;} 305.ledger-amount.in strong{color:var(--fp-acc);} 306.ledger-amount.out strong{color:var(--fp-danger);} 307.output-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end;} 308.output-bundle-panel{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:16px;padding:1rem;box-shadow:0 18px 42px -34px rgba(42,32,20,.35);min-width:0;max-width:100%;overflow:hidden;} 309.artifact-browser{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:14px;overflow:auto;max-height:430px;min-width:0;max-width:100%;} 310.artifact-browser.compact{max-height:260px;margin-top:.75rem;} 311.artifact-browser-head,.artifact-download-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px 90px 170px;gap:.75rem;
311align-items:center;min-width:720px;} 312.artifact-browser-head{position:sticky;top:0;z-index:1;background:var(--fp-bg-soft);border-bottom:1px solid var(--fp-line);padding:.55rem .75rem;font-family:var(--fp-mono);font-size:.68rem;text-transform:uppercase;color:var(--fp-ink-3);} 313.artifact-download-row{padding:.62rem .75rem;border-bottom:1px solid var(--fp-line-soft);} 314.artifact-download-row > *{min-width:0;max-width:100%;} 315.artifact-download-row:last-child{border-bottom:0;} 316.artifact-file-link{display:block;font-weight:700;color:var(--fp-ink);overflow-wrap:anywhere;text-decoration:none;} 317.artifact-file-link:hover span{text-decoration:underline;} 318.artifact-path{display:block;margin-top:.18rem;font-family:var(--fp-mono);font-size:.7rem;color:var(--fp-ink-3);overflow-wrap:anywhere;} 319.artifact-download-meta{font-family:var(--fp-mono);font-size:.7rem;color:var(--fp-ink-2);white-space:nowrap;} 320.output-showcase{display:grid;gap:.9rem;margin-bottom:.9rem;} 321.output-demo-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;background:var(--fp-surface);border:1px solid #CFE8D9;border-radius:16px;padding:1rem;} 322.output-demo-panel h3{margin:0;font-size:1.05rem;} 323.output-demo-panel p{margin:.18rem 0 0;color:var(--fp-ink-2);font-size:.9rem;} 324.output-carousel{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.05rem .05rem .65rem;scrollbar-width:thin;} 325.output-slide{flex:0 0 min(420px,86vw);scroll-snap-align:start;background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:16px;overflow:hidden;} 326.output-slide img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--fp-bg-soft);} 327.output-slide figcaption{padding:.65rem .8rem;font-size:.84rem;color:var(--fp-ink-2);} 328.activity-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;
328align-items:start;} 329.activity-dot{width:.72rem;height:.72rem;border-radius:999px;border:2px solid var(--fp-line);background:var(--fp-surface);margin-top:.35rem;} 330.activity-dot.done{border-color:var(--fp-acc);background:var(--fp-acc);} 331.activity-dot.active{border-color:var(--fp-water-2);box-shadow:0 0 0 3px rgba(70,199,232,.16);} 332.activity-dot.err{border-color:var(--fp-danger);background:var(--fp-danger);} 333.build-log-panel{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:18px;padding:.9rem 1rem;max-height:420px;overflow-y:auto;font-family:var(--fp-mono);font-size:.8rem;font-variant-numeric:tabular-nums;} 334.build-log-panel .ts{color:var(--fp-ink-3);margin-right:.5rem;font-size:.72rem;} 335.build-log-panel .spend{color:var(--fp-danger);} 336.build-log-panel .error{color:var(--fp-danger);font-weight:600;} 337.build-log-panel .output{color:var(--fp-ok-text);} 338.empty-state{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:14px;padding:1rem;color:var(--fp-ink-2);} 339.project-head{align-items:flex-start;justify-content:space-between;gap:1rem;} 340.project-head-title{flex:1;min-width:0;} 341.project-head-title h1{margin:.05rem 0 .35rem;} 342.project-head-title .muted{margin:0;} 343.project-head-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end;min-width:6.5rem;} 344.timeline-list{display:flex;flex-direction:column;gap:.55rem;} 345.timeline-item{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:flex-start;border-bottom:1px solid var(--fp-line);padding:.55rem 0;} 346.timeline-item:last-child{border-bottom:0;} 347.timeline-dot{width:.75rem;height:.75rem;border-radius:999px;border:2px solid var(--fp-line);background:var(--fp-surface);margin-top:.3rem;} 348.timeline-dot.done{border-color:var(--fp-ok);background:var(--fp-ok);} 349.timeline-dot.active{border-color:var(--fp-acc);box-shadow:0 0 0 3px rgba(10,124,102,.12);} 350.timeline-item strong{display:block;} 351.profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin:.8rem 0 0;} 352.profile-stat{border:1px solid var(--fp-line);border-radius:var(--fp-radius-sm);background:var(--fp-bg-soft);padding:.65rem .75rem;} 353.profile-stat strong{display:block;font-family:var(--fp-mono);} 354.notification-row.unread{border-left:3px solid var(--fp-acc);} 355.pager-card{padding:.9rem 1.1rem;} 356.pager-row{justify-content:space-between; align-items:center;} 357.pager-nav{display:flex; gap:.45rem; align-items:center; flex-wrap:wrap; justify-content:flex-end;} 358.pager-link,.pager-current,.pager-ellipsis{display:inline-flex; align-items:center; justify-content:center; min-width:2.4rem; padding:.42rem .7rem; border-radius:6px; font-size:.9rem;} 359.pager-link{border:1px solid var(--fp-line); background:var(--fp-surface); color:var(--fp-ink);} 360.pager-link:hover{border-color:var(--fp-ink); color:var(--fp-ink); background:var(--fp-bg-soft); text-decoration:none;} 361.pager-link.edge{min-width:auto; padding-inline:.9rem;} 362.pager-current{border:1px solid var(--fp-ink); background:var(--fp-ink); color:#fff; font-weight:700;} 363.pager-disabled{border:1px solid var(--fp-line); color:var(--fp-ink-3); opacity:.7; cursor:default; background:var(--fp-bg);} 364.pager-ellipsis{min-width:auto; padding-inline:.2rem; color:var(--fp-ink-3);} 365.pager-mobile{display:none;} 366.vote-control{display:flex;flex-direction:column;align-items:center;gap:0;width:42px;min-width:42px;flex:0 0 auto;background:var(--fp-bg);border:1px solid var(--fp-line);border-radius:12px;padding:4px;align-self:flex-start;user-select:none;} 367.vote-control.compact{min-width:42px;} 368.vote-form{margin:0;} 369.vote-btn{width:34px;height:30px;border-radius:8px;border:0;background:transparent;color:var(--fp-ink-3);display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:.82rem;line-height:1;transition:.12s;} 370.vote-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;} 371.vote-btn:hover:not([disabled]){background:var(--fp-surface);} 372.vote-btn.up:hover:not([disabled]),.vote-btn.up.active{color:var(--fp-up);} 373.vote-btn.down:hover:not([disabled]),.vote-btn.down.active{color:var(--fp-down);} 374.vote-btn.active{background:transparent;} 375.vote-btn[disabled]{opacity:.5;cursor:not-allowed;} 376.vote-score{font-family:var(--fp-mono);font-size:.92rem;font-weight:700;line-height:1.4;color:var(--fp-ink-2);min-width:auto;text-align:center;padding:1px 0;border-radius:999px;border:1px solid transparent;} 377.vote-score.pos{color:var(--fp-up-text);} 378.vote-score.neg{color:var(--fp-down-text);} 379/* Checkbox preference rows (e.g. /account notification prefs). The global 380 input{width:100%} rule stretches checkboxes, so pin them to a fixed size and 381 lay each row out as a fixed checkbox + flexible label that wraps under itself â 382 keeping the checkboxes in a clean vertical column, including on mobile. Also 383 resets the uppercase-mono label treatment for readable sentence-case copy. */ 384.check-row{display:flex;align-items:flex-start;gap:.6rem;margin:.5rem 0;font-family:inherit;font-size:.95rem;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--fp-ink);cursor:pointer;} 385.check-row input[type=checkbox]{flex:0 0 auto;width:1.05rem;height:1.05rem;min-width:1.05rem;margin:.18rem 0 0;padding:0;accent-color:var(--fp-acc);} 386.check-row > span{flex:1;min-width:0;} 387.auth-page{display:grid;gap:1.35rem;} 388.auth-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.45fr);gap:1rem;align-items:stretch;background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:20px;padding:1.35rem;box-shadow:none;} 389.auth-hero h1{margin:.1rem 0 .5rem;font-size:clamp(2rem,4vw,2.75rem);line-height:1.03;} 390.auth-hero p{margin:.45rem 0 0;color:var(--fp-ink-2);max-width:68ch;} 391.auth-hero-side{border-left:1px solid var(--fp-line-soft);padding-left:1rem;display:grid;align-content:center;gap:.75rem;} 392.auth-balance{font-family:var(--fp-mono);font-size:1.7rem;font-weight:700;letter-spacing:-.02em;color:var(--fp-acc);} 393.auth-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;} 394.auth-actions .btn,.auth-actions button{min-height:42px;} 395.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;} 396.auth-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));} 397.auth-card,.auth-form-card{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:18px;padding:1.1rem 1.2rem;box-shadow:none;} 398.auth-form-card{display:grid;gap:.75rem;} 399.auth-card h2,.auth-form-card h2{margin:0 0 .35rem;}
400.auth-section{display:grid;gap:.75rem;} 401.auth-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;} 402.auth-section-head h2{margin:0;} 403.auth-section-head p{margin:.2rem 0 0;color:var(--fp-ink-2);font-size:.9rem;} 404.auth-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;} 405.auth-stat{border:1px solid var(--fp-line);border-radius:11px;background:var(--fp-bg-soft);padding:.7rem .75rem;min-width:0;} 406.auth-stat strong{display:block;font-family:var(--fp-mono);font-size:1rem;letter-spacing:-.02em;color:var(--fp-ink);overflow-wrap:anywhere;} 407.auth-stat span{display:block;margin-top:.15rem;color:var(--fp-ink-2);font-size:.78rem;} 408.auth-list,.auth-ledger-list,.auth-notification-list{display:grid;gap:.65rem;} 409.auth-project-row,.auth-ledger-row,.auth-notification-item{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:14px;padding:1rem;box-shadow:none;} 410.auth-project-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px);gap:1rem;align-items:center;} 411.auth-project-main{display:grid;gap:.55rem;min-width:0;} 412.auth-project-title{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;} 413.auth-project-title strong{font-size:1rem;letter-spacing:-.015em;} 414.auth-meta{display:flex;gap:.35rem .75rem;flex-wrap:wrap;align-items:center;font-family:var(--fp-mono);font-size:.7rem;color:var(--fp-ink-2);} 415.auth-project-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end;} 416.auth-project-actions .btn,.auth-project-actions button{min-height:38px;} 417.auth-ledger-row{display:grid;grid-template-columns:160px minmax(0,1fr);gap:.9rem;align-items:start;} 418.auth-ledger-kind{font-family:var(--fp-mono);font-weight:700;color:var(--fp-ink);} 419.auth-ledger-time{font-family:var(--fp-mono);font-size:.7rem;color:var(--fp-ink-3);} 420.auth-notification-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;} 421.auth-notification-item.unread{border-left:3px solid var(--fp-acc);} 422.auth-notification-title{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;} 423.auth-empty{background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:14px;padding:1rem;color:var(--fp-ink-2);} 424.auth-tabs{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;background:var(--fp-surface);border:1px solid var(--fp-line);border-radius:11px;padding:3px;width:max-content;max-width:100%;} 425.credit-pack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;} 426.credit-pack-card{text-align:center;display:grid;gap:.45rem;align-content:start;} 427.credit-pack-card form{margin:.35rem 0 0;} 428@media (max-width:560px){ 429 .site-header-bar{flex-wrap:wrap; gap:.55rem .9rem; padding:.7rem 1rem;} 430 .site-nav{width:100%; margin-left:0; justify-content:flex-start;} 431 .site-main{padding:1.35rem 1rem 3.5rem;} 432 header:not(.site-header){flex-wrap:wrap; gap:.5rem .9rem; padding:.7rem 1rem;} 433 header:not(.site-header) nav{width:100%; margin-left:0; gap:.9rem; row-gap:.5rem; justify-content:flex-start;} 434 .discover-control-group{align-items:flex-start;flex-direction:column;gap:.4rem;} 435 .discover-control-label{flex-basis:auto;padding-top:0;} 436 .filter-head{gap:.5rem;} 437 .filter-clear{margin-left:0;} 438 .market-wide{max-width:880px;} 439 .market-hero{grid-template-columns:1fr;} 440 .market-hero h1{font-size:1.85rem;} 441 .market-stats{grid-template-columns:1fr;} 442 .project-grid{grid-template-columns:1fr;} 443 .project-detail-hero{grid-template-columns:1fr;padding:1rem;border-radius:16px;} 444 .project-detail-panel,.project-action-panel,.project-prompt-panel,.project-section-panel{padding:1rem;border-radius:16px;} 445 .output-bundle-panel{padding:.8rem;border-radius:14px;} 446 .project-detail-panel h1{font-size:1.85rem;line-height:1.08;} 447 .project-summary{font-size:.96rem;line-height:1.55;} 448 .funding-progress-meta{align-items:flex-start;flex-wrap:wrap;} 449 .project-action-panel{border-left:0;border-top:1px solid var(--fp-line-soft);padding-left:0;padding-top:1rem;} 450 .project-action-panel.fundable{border:1px solid #CFE8D9;padding:1rem;} 451 .project-funding-stats,.milestone-money{grid-template-columns:1fr;} 452 .project-funding-stat span{white-space:normal;} 453 .project-fund-form{grid-template-columns:1fr;} 454 .ledger-entry{grid-template-columns:1fr;} 455 .milestone-item,.output-bundle-panel{padding:.85rem;border-radius:14px;} 456 .milestone-title-row{display:grid;grid-template-columns:1fr;gap:.45rem;} 457 .milestone-title-row h3{font-size:.98rem;} 458 .milestone-meta{font-size:.68rem;line-height:1.45;} 459 .artifact-browser{max-height:none;overflow:visible;} 460 .artifact-browser-head{display:none;} 461 .artifact-download-row{display:grid;grid-template-columns:1fr;gap:.35rem;min-width:0;padding:.8rem;border-bottom:1px solid var(--fp-line-soft);} 462 .artifact-download-meta{white-space:normal;overflow-wrap:anywhere;} 463 .artifact-file-link{font-size:.88rem;} 464 .artifact-path{font-size:.66rem;} 465 .ledger-amount{text-align:left;}
466 .output-actions{justify-content:flex-start;} 467 .output-actions .btn{width:100%;min-height:44px;} 468 .output-demo-panel .btn{width:100%;min-height:44px;} 469 .filter-bar{overflow:hidden;} 470 .filter-rows{gap:.35rem;padding:.15rem .15rem .35rem;} 471 .discover-control-group{padding:.55rem .6rem;} 472 .sort-tabs{flex-wrap:wrap;overflow-x:visible;padding-bottom:0;row-gap:.35rem;} 473 .discover-pill{flex:0 1 auto;min-height:36px;padding:.42rem .72rem;} 474 .project-card.project-row{display:flex;flex-direction:column;gap:.9rem;padding:1rem;} 475 .project-card-head{gap:.8rem;} 476 .project-row-actions{border-left:0;border-top:1px solid var(--fp-line-soft);padding-left:0;padding-top:.85rem;flex-direction:column;align-items:stretch;justify-content:flex-start;} 477 .project-row-actions .project-card-actions{width:100%;flex-direction:column;justify-content:flex-start;} 478 .project-row-actions .btn,.project-row-actions button{width:100%;min-height:44px;} 479 .project-funded-box{text-align:left;display:grid;grid-template-columns:auto 1fr;align-items:end;gap:.25rem 1rem;} 480 .project-funded-credits{grid-column:1 / -1;} 481 .project-funded-pct{font-size:1.9rem;} 482 .project-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .75rem;} 483 .project-card-metric span{white-space:normal;} 484 .profile-stats{grid-template-columns:1fr;} 485 .auth-hero{grid-template-columns:1fr;padding:1rem;border-radius:16px;} 486 .auth-hero-side{border-left:0;border-top:1px solid var(--fp-line-soft);padding-left:0;padding-top:1rem;} 487 .auth-grid,.auth-grid.three,.auth-stat-grid,.credit-pack-grid{grid-template-columns:1fr;} 488 .auth-project-row,.auth-ledger-row,.auth-notification-item{grid-template-columns:1fr;} 489 .auth-project-actions,.auth-actions{justify-content:flex-start;} 490 .auth-project-actions .btn,.auth-project-actions button,.auth-actions .btn,.auth-actions button,.credit-pack-card button{width:100%;min-height:44px;} 491 .auth-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;} 492 .project-card-foot{align-items:flex-start;} 493 .project-card-actions{width:100%;justify-content:flex-start;} 494 .discover-card,.project-head{align-items:flex-start;} 495 .discover-actions,.project-head-actions{width:100%;justify-content:flex-end;} 496 .discover-actions .badge,.project-head-actions .badge{margin-bottom:.1rem;} 497 .pager-row{align-items:stretch;} 498 .pager-summary{width:100%;} 499 .pager-nav{width:100%; justify-content:space-between;} 500 .pager-nav .pager-num,.pager-nav .pager-ellipsis{display:none;} 501 .pager-nav .pager-current{display:none;} 502 .pager-mobile{display:block; width:100%; text-align:center; margin-top:.55rem;} 503 .vote-control{min-width:2.75rem;} 504 .vote-btn{width:2.1rem;height:2.1rem;} 505} 506/* Required-field marker, skip link, price text, and coarse-pointer (touch) hit 507 targets. On touch devices small controls are bumped to the 44px minimum. */ 508.req{color:var(--fp-danger);font-weight:700;} 509.price{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;margin:.2rem 0;line-height:1.1;} 510.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--fp-ink);color:#fff;padding:.6rem 1rem;border-radius:0 0 8px 0;font-weight:700;} 511.skip-link:focus{left:0;} 512@media (pointer:coarse){ 513 .vote-btn{width:2.75rem;height:2.75rem;} 514 .btn.small,button.small{min-height:44px;} 515 .site-nav a{min-height:44px;} 516} 517</style>
518<script async src="https://plausible.barrasindustries.com/js/pa-6YXDczuGJ1jFm27YBZjAI.js"></script>
vendor: 1 bytes, line 518
518
519<script> 520 window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}}; 521 plausible.init(); 522 (function(){try{ 523 var p=new URLSearchParams(location.search),hit=false,P=window.plausible; 524 if(p.get('signup')==='1'){P('Signup');p.delete('signup');hit=true;} 525 if(p.get('created')==='1'){P('Post prompt');p.delete('created');hit=true;} 526 if(p.has('bought')){P('Buy credits',{revenue:{amount:(parseInt(p.get('bought'),10)||0)/100,currency:'USD'}});p.delete('bought');hit=true;} 527 if(p.has('funded')){P('Fund project',{revenue:{amount:(parseInt(p.get('funded'),10)||0)/100,currency:'USD'}});p.delete('funded');hit=true;} 528 if(p.get('shared')==='1'){P('Share claim');p.delete('shared');hit=true;} 529 if(location.pathname==='/subscription/confirmed'){P('Subscribe');} 530 if(hit){var qs=p.toString();history.replaceState(null,'',location.pathname+(qs?'?'+qs:'')+location.hash);} 531 }catch(e){}})(); 532</script>
532 533</head> 534<body> 535<a class="skip-link" href="#main">Skip to content</a> 536<div class="page-shell"> 537<header class="site-header"> 538 <div class="site-header-bar"> 539 <a class="site-logo" href="/"><span>fable<b>pool</b></span></a> 540 <nav class="site-nav" aria-label="Primary"> 541 <a href="/discover">Discover</a> 542 <a class="btn" href="/projects/new">Post a prompt</a> 543 <a class="btn" href="/auth/google">Sign in with Google</a> 544 </nav> 545 </div> 546</header> 547<main class="site-main market-wide" id="main"> 548 549 550 551<div class="market-panel" style="margin:.2rem 0 1.1rem"> 552 <div class="fp-kicker">Open pools</div> 553 <h1 style="margin:.1rem 0 .5rem">Back the software ideas moving right now.</h1> 554 <p class="muted" style="font-size:1rem">Vote on ideas, pool credits behind the projects you want built, and watch AI agents build publicly through milestones with visible spend, logs and outputs.</p> 555 <div class="row"> 556 <a class="btn" href="/auth/google">Sign in with Google</a> 557 <a class="btn ghost" href="/about">How it works</a> 558 </div> 559</div> 560<div class="market-section-head"><div><h2>Open pools</h2><p class="muted">Fundable project pools, building work, and shipped outputs.</p></div></div> 561<div class="filter-bar"> 562 <div class="filter-head"> 563 <span class="filter-count">40 <span>projects</span></span> 564 565 566 </div> 567 <div class="filter-rows"> 568 <div class="discover-control-group is-sort"> 569 <span class="discover-control-label">Sort</span> 570 <div class="sort-tabs" aria-label="Sort"> 571 <a class="discover-pill active" href="/discover" aria-current="true">Best</a><a class="discover-pill" href="/discover?sort=voted">Hot</a><a class="discover-pill" href="/discover?sort=new">New</a><a class="discover-pill" href="/discover?sort=progress">Fullest</a><a class="discover-pill" href="/discover?sort=progress&filter=building">Building</a><a class="discover-pill" href="/discover?sort=new&filter=completed">Shipped</a><a class="discover-pill" href="/discover?sort=funded">Most raised</a> 572</div> 573 </div> 574 <div class="discover-control-group"> 575 <span class="discover-control-label">Status</span> 576 <div class="sort-tabs" aria-label="Status"> 577 <a class="discover-pill active" href="/discover" aria-current="true">All</a><a class="discover-pill" href="/discover?filter=funding">Funding</a><a class="discover-pill" href="/discover?filter=building">Building</a><a class="discover-pill" href="/discover?filter=completed">Completed</a> 578</div> 579 </div> 580 <div class="discover-control-group"> 581 <span class="discover-control-label">Funding</span> 582 <div class="sort-tabs" aria-label="Funding"> 583 <a class="discover-pill active" href="/discover" aria-current="true">Any progress</a><a class="discover-pill" href="/discover?progress=backed">Backed</a><a class="discover-pill" href="/discover?progress=half">50%+ funded</a><a class="discover-pill" href="/discover?progress=near">75%+ funded</a><a class="discover-pill" href="/discover?progress=unfunded">Unfunded</a> 584</div> 585 </div> 586 <div class="discover-control-group"> 587 <span class="discover-control-label" id="tags-label">Tags</span> 588 <div class="sort-tabs" role="group" aria-labelledby="tags-label"> 589 <a class="discover-pill active" href="/discover" aria-current="true">All tags</a><a class="discover-pill" href="/discover?tag=apps">Apps</a><a class="discover-pill" href="/discover?tag=games">Games</a><a class="discover-pill" href="/discover?tag=devtools">Dev Tools</a><a class="discover-pill" href="/discover?tag=agents">AI Agents</a><a class="discover-pill" href="/discover?tag=data">Data</a><a class="discover-pill" href="/discover?tag=education">Education</a> 590 <details class="tag-more"><summary aria-label="Show 4 more tags">+4 more</summary><div class="tag-more-panel"><a class="discover-pill" href="/discover?tag=creative">Creative</a><a class="discover-pill" href="/discover?tag=business">Business</a><a class="discover-pill" href="/discover?tag=hardware">Hardware</a><a class="discover-pill" href="/discover?tag=other">Other</a></div></details> 591 </div> 592 </div> 593 </div> 594</div> 595 596<div class="open-pools-list"><article class="card project-card project-row"> 597 <div class="vote-control compact" data-score="1" data-my-vote="0"> 598 <form method="post" action="/projects/160/vote" class="vote-form"> 599
600 <input type="hidden" name="current_vote" value="0"> 601 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 602</form> 603 <div class="vote-score pos">1</div> 604 <form method="post" action="/projects/160/vote" class="vote-form"> 605 606 <input type="hidden" name="current_vote" value="0"> 607 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 608</form> 609</div> 610 <div class="project-row-body"> 611 <div class="project-card-title"> 612 <a href="/projects/160"><strong>Employment Law Agent</strong></a> 613 <p class="muted">by Litigation Friend · GPT-5.5 · 3 months ago</p> 614 </div> 615 <p class="project-card-summary">Build an agent which helps a UK employee figure out if they might have an employment tribunal claim against their employer/ex-employer, and what a successful claim couldâ¦</p> 616 <div class="project-card-tags"> 617 <a class="tag-pill" href="/discover?tag=agents">AI Agents</a> 618 619 620 <span class="badge ok">Shipped</span> 621 </div> 622 <div class="project-card-progress"> 623 <div class="funding-progress full"> 624 <div class="funding-progress-meta"> 625 <span><strong>210,516 credits</strong> of 4,392 credits</span> 626 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 627 </div> 628 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="210,516 credits of 4,392 credits, 100% full"> 629 <div class="funding-progress-fill" style="width:100%"></div> 630 </div> 631</div> 632 </div> 633 <div class="project-card-metrics" aria-label="Project metrics"> 634 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 635 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>7</strong><span>watchers</span></div> 636 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 637 </div> 638 </div> 639 <div class="project-row-actions"> 640 <div class="project-funded-box"> 641 <div class="project-funded-pct full">100%</div> 642 <div class="project-funded-label">% full</div> 643 <div class="project-funded-credits"> 644 <span>Credits raised <strong>210,516 credits</strong></span> 645 <span>Target <strong>4,392 credits</strong></span> 646 </div> 647 </div> 648 <div class="project-card-actions"> 649 <a class="btn ghost small" href="/auth/google">Watch</a> 650 <a class="btn ghost small" href="/projects/160">View output</a> 651 </div> 652 </div> 653</article><article class="card project-card project-row"> 654 <div class="vote-control compact" data-score="6" data-my-vote="0"> 655 <form method="post" action="/projects/82/vote" class="vote-form"> 656 657 <input type="hidden" name="current_vote" value="0"> 658 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 659</form> 660 <div class="vote-score pos">6</div> 661 <form method="post" action="/projects/82/vote" class="vote-form"> 662 663 <input type="hidden" name="current_vote" value="0"> 664 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 665</form> 666</div> 667 <div class="project-row-body"> 668 <div class="project-card-title"> 669 <a href="/projects/82"><strong>Open Source brilliant.org clone, community driven problems and courses</strong></a> 670 <p class="muted">by Gabriele Congiu · Anthropic: Claude Fable 5 · 3 months ago</p> 671 </div> 672 <p class="project-card-summary">You are a senior full-stack architect and open-source product strategist. Design an MVP for an open-source Brilliant.org-style learning platform focused on community-driâ¦</p> 673 <div class="project-card-tags"> 674 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 675 676 677 <span class="badge warn">Interrupted</span> 678 </div> 679 <div class="project-card-progress">
680 <span class="muted">71,700 credits raised</span> 681 </div> 682 <div class="project-card-metrics" aria-label="Project metrics"> 683 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>3</strong><span>funders</span></div> 684 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>3</strong><span>watchers</span></div> 685 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 686 </div> 687 </div> 688 <div class="project-row-actions"> 689 <div class="project-funded-box"> 690 <div class="project-funded-pct">0%</div> 691 <div class="project-funded-label">% full</div> 692 <div class="project-funded-credits"> 693 <span>Credits raised <strong>71,700 credits</strong></span> 694 <span>Target <strong>Open</strong></span> 695 </div> 696 </div> 697 <div class="project-card-actions"> 698 <a class="btn ghost small" href="/auth/google">Watch</a> 699 <a class="btn ghost small" href="/projects/82">View project</a> 700 </div> 701 </div> 702</article><article class="card project-card project-row"> 703 <div class="vote-control compact" data-score="9" data-my-vote="0"> 704 <form method="post" action="/projects/29/vote" class="vote-form"> 705 706 <input type="hidden" name="current_vote" value="0"> 707 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 708</form> 709 <div class="vote-score pos">9</div> 710 <form method="post" action="/projects/29/vote" class="vote-form"> 711 712 <input type="hidden" name="current_vote" value="0"> 713 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 714</form> 715</div> 716 <div class="project-row-body"> 717 <div class="project-card-title"> 718 <a href="/projects/29"><strong>Solve Garbage Collection in C# for HFT</strong></a> 719 <p class="muted">by Keith · GPT-5.5 · 3 months ago</p> 720 </div> 721 <p class="project-card-summary">Right now garbage collection makes high frequency trading in c# very difficult. Find a way to fix it please</p> 722 <div class="project-card-tags"> 723 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 724 725 726 <span class="badge ok">Shipped</span> 727 </div> 728 <div class="project-card-progress"> 729 <div class="funding-progress"> 730 <div class="funding-progress-meta"> 731 <span><strong>13,700 credits</strong> of 20,000 credits</span> 732 <span class="funding-progress-pct"><b>69%</b><span> full</span></span> 733 </div> 734 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="69" aria-valuetext="13,700 credits of 20,000 credits, 69% full"> 735 <div class="funding-progress-fill" style="width:69%"></div> 736 </div> 737</div> 738 </div> 739 <div class="project-card-metrics" aria-label="Project metrics"> 740 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 741 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>1</strong><span>watcher</span></div> 742 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 743 </div> 744 </div> 745 <div class="project-row-actions"> 746 <div class="project-funded-box"> 747 <div class="project-funded-pct">69%</div> 748 <div class="project-funded-label">% full</div> 749 <div class="project-funded-credits">
750 <span>Credits raised <strong>13,700 credits</strong></span> 751 <span>Target <strong>20,000 credits</strong></span> 752 </div> 753 </div> 754 <div class="project-card-actions"> 755 <a class="btn ghost small" href="/auth/google">Watch</a> 756 <a class="btn ghost small" href="/projects/29">View output</a> 757 </div> 758 </div> 759</article><article class="card project-card project-row"> 760 <div class="vote-control compact" data-score="2" data-my-vote="0"> 761 <form method="post" action="/projects/114/vote" class="vote-form"> 762 763 <input type="hidden" name="current_vote" value="0"> 764 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 765</form> 766 <div class="vote-score pos">2</div> 767 <form method="post" action="/projects/114/vote" class="vote-form"> 768 769 <input type="hidden" name="current_vote" value="0"> 770 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 771</form> 772</div> 773 <div class="project-row-body"> 774 <div class="project-card-title"> 775 <a href="/projects/114"><strong>Mechanica - a Mechanical Systems Explorer - Full-Stack 3D Viewer Build Prompt</strong></a> 776 <p class="muted">by Ken Barras · GPT-5.5 · 3 months ago</p> 777 </div> 778 <p class="project-card-summary">You are a senior frontend engineer, Three.js expert, WebGL specialist, and product designer. Your task is to build a production-quality interactive web application calleâ¦</p> 779 <div class="project-card-tags"> 780 <a class="tag-pill" href="/discover?tag=agents">AI Agents</a> 781 782 783 <span class="badge ok">Shipped</span> 784 </div> 785 <div class="project-card-progress"> 786 <div class="funding-progress full"> 787 <div class="funding-progress-meta"> 788 <span><strong>19,999 credits</strong> of 13,050 credits</span> 789 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 790 </div> 791 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="19,999 credits of 13,050 credits, 100% full"> 792 <div class="funding-progress-fill" style="width:100%"></div> 793 </div> 794</div> 795 </div> 796 <div class="project-card-metrics" aria-label="Project metrics"> 797 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 798 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>6</strong><span>watchers</span></div> 799 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>1</strong><span>comment</span></div> 800 </div> 801 </div> 802 <div class="project-row-actions"> 803 <div class="project-funded-box"> 804 <div class="project-funded-pct full">100%</div> 805 <div class="project-funded-label">% full</div> 806 <div class="project-funded-credits"> 807 <span>Credits raised <strong>19,999 credits</strong></span> 808 <span>Target <strong>13,050 credits</strong></span> 809 </div> 810 </div> 811 <div class="project-card-actions"> 812 <a class="btn ghost small" href="/auth/google">Watch</a> 813 <a class="btn ghost small" href="/projects/114">View output</a> 814 </div> 815 </div> 816</article><article class="card project-card project-row"> 817 <div class="vote-control compact" data-score="2" data-my-vote="0"> 818 <form method="post" action="/projects/154/vote" class="vote-form"> 819
820 <input type="hidden" name="current_vote" value="0"> 821 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 822</form> 823 <div class="vote-score pos">2</div> 824 <form method="post" action="/projects/154/vote" class="vote-form"> 825 826 <input type="hidden" name="current_vote" value="0"> 827 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 828</form> 829</div> 830 <div class="project-row-body"> 831 <div class="project-card-title"> 832 <a href="/projects/154"><strong>Internet Research Notebook â turn scattered research into a public, inspectable research pack</strong></a> 833 <p class="muted">by Matt · GPT-5.5 · 3 months ago</p> 834 </div> 835 <p class="project-card-summary">Build an open-source "Internet Research Notebook" for creators, analysts, and builders. The app should help someone turn scattered online research into a public, inspectâ¦</p> 836 <div class="project-card-tags"> 837 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 838 839 840 <span class="badge ok">Shipped</span> 841 </div> 842 <div class="project-card-progress"> 843 <span class="muted">19,242 credits raised</span> 844 </div> 845 <div class="project-card-metrics" aria-label="Project metrics"> 846 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 847 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>0</strong><span>watchers</span></div> 848 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 849 </div> 850 </div> 851 <div class="project-row-actions"> 852 <div class="project-funded-box"> 853 <div class="project-funded-pct">0%</div> 854 <div class="project-funded-label">% full</div> 855 <div class="project-funded-credits"> 856 <span>Credits raised <strong>19,242 credits</strong></span> 857 <span>Target <strong>Open</strong></span> 858 </div> 859 </div> 860 <div class="project-card-actions"> 861 <a class="btn ghost small" href="/auth/google">Watch</a> 862 <a class="btn ghost small" href="/projects/154">View output</a> 863 </div> 864 </div> 865</article><article class="card project-card project-row"> 866 <div class="vote-control compact" data-score="10" data-my-vote="0"> 867 <form method="post" action="/projects/50/vote" class="vote-form"> 868 869 <input type="hidden" name="current_vote" value="0"> 870 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 871</form> 872 <div class="vote-score pos">10</div> 873 <form method="post" action="/projects/50/vote" class="vote-form"> 874 875 <input type="hidden" name="current_vote" value="0"> 876 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 877</form> 878</div> 879 <div class="project-row-body"> 880 <div class="project-card-title"> 881 <a href="/projects/50"><strong>Identify the best way you can contribute to HomeAssistant and do it.</strong></a> 882 <p class="muted">by Ben Randall · GPT-5.5 · 3 months ago</p> 883 </div> 884 <p class="project-card-summary">The HomeAssistant project has a large group of active developers who are consistently evaluating the long term roadmap for the project. Weâre looking for some way to comâ¦</p> 885 <div class="project-card-tags"> 886 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 887 888 889 <span class="badge acc">Building</span> 890 </div> 891 <div class="project-card-progress"> 892 <div class="funding-progress"> 893 <div class="funding-progress-meta"> 894 <span><strong>6,590 credits</strong> of 20,000 credits</span> 895 <span class="funding-progress-pct"><b>33%</b><span> full</span></span> 896 </div> 897 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="33" aria-valuetext="6,590 credits of 20,000 credits, 33% full"> 898 <div class="funding-progress-fill" style="width:33%"></div> 899 </div> 900</div> 901 </div> 902 <div class="project-card-metrics" aria-label="Project metrics"> 903 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>6</strong><span>funders</span></div> 904 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true">
904<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>3</strong><span>watchers</span></div> 905 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 906 </div> 907 </div> 908 <div class="project-row-actions"> 909 <div class="project-funded-box"> 910 <div class="project-funded-pct">33%</div> 911 <div class="project-funded-label">% full</div> 912 <div class="project-funded-credits"> 913 <span>Credits raised <strong>6,590 credits</strong></span> 914 <span>Target <strong>20,000 credits</strong></span> 915 </div> 916 </div> 917 <div class="project-card-actions"> 918 <a class="btn ghost small" href="/auth/google">Watch</a> 919 <a class="btn ghost small" href="/projects/50">View build</a> 920 </div> 921 </div> 922</article><article class="card project-card project-row"> 923 <div class="vote-control compact" data-score="3" data-my-vote="0"> 924 <form method="post" action="/projects/115/vote" class="vote-form"> 925 926 <input type="hidden" name="current_vote" value="0"> 927 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 928</form> 929 <div class="vote-score pos">3</div> 930 <form method="post" action="/projects/115/vote" class="vote-form"> 931 932 <input type="hidden" name="current_vote" value="0"> 933 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 934</form> 935</div> 936 <div class="project-row-body"> 937 <div class="project-card-title"> 938 <a href="/projects/115"><strong>Build `open-dgm`: an open-source Darwin Gödel Machine framework for recursively self-improving coding agents</strong></a> 939 <p class="muted">by DK · Fable 5 · 3 months ago</p> 940 </div> 941 <p class="project-card-summary">Build `open-dgm`: an open-source Darwin Gödel Machine framework for recursively self-improving coding agents. Goal: implement a real, inspectable, benchmarked DGM, not aâ¦</p> 942 <div class="project-card-tags"> 943 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 944 945 946 <span class="badge acc">Building</span> 947 </div> 948 <div class="project-card-progress"> 949 <div class="funding-progress full"> 950 <div class="funding-progress-meta"> 951 <span><strong>12,373 credits</strong> of 11,841 credits</span> 952 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 953 </div> 954 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="12,373 credits of 11,841 credits, 100% full"> 955 <div class="funding-progress-fill" style="width:100%"></div> 956 </div> 957</div> 958 </div> 959 <div class="project-card-metrics" aria-label="Project metrics"> 960 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 961 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>4</strong><span>watchers</span></div> 962 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>3</strong><span>comments</span></div> 963 </div> 964 </div> 965 <div class="project-row-actions"> 966 <div class="project-funded-box"> 967 <div class="project-funded-pct full">100%</div> 968 <div class="project-funded-label">% full</div> 969 <div class="project-funded-credits">
970 <span>Credits raised <strong>12,373 credits</strong></span> 971 <span>Target <strong>11,841 credits</strong></span> 972 </div> 973 </div> 974 <div class="project-card-actions"> 975 <a class="btn ghost small" href="/auth/google">Watch</a> 976 <a class="btn ghost small" href="/projects/115">View build</a> 977 </div> 978 </div> 979</article><article class="card project-card project-row"> 980 <div class="vote-control compact" data-score="2" data-my-vote="0"> 981 <form method="post" action="/projects/78/vote" class="vote-form"> 982 983 <input type="hidden" name="current_vote" value="0"> 984 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 985</form> 986 <div class="vote-score pos">2</div> 987 <form method="post" action="/projects/78/vote" class="vote-form"> 988 989 <input type="hidden" name="current_vote" value="0"> 990 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 991</form> 992</div> 993 <div class="project-row-body"> 994 <div class="project-card-title"> 995 <a href="/projects/78"><strong>Open source Spotify clone with WebDAV and s3</strong></a> 996 <p class="muted">by Qefx · GPT-5.5 · 3 months ago</p> 997 </div> 998 <p class="project-card-summary">Something like navidrome, but with direct connections to S3 or WebDAV to mount files. Including Chromecast and an android app. And AI recommendation engine to auto playâ¦</p> 999 <div class="project-card-tags"> 1000 <a class="tag-pill" href="/discover?tag=agents">AI Agents</a> 1001 1002 1003 <span class="badge ok">Shipped</span> 1004 </div> 1005 <div class="project-card-progress"> 1006 <div class="funding-progress"> 1007 <div class="funding-progress-meta"> 1008 <span><strong>13,800 credits</strong> of 27,900 credits</span> 1009 <span class="funding-progress-pct"><b>49%</b><span> full</span></span> 1010 </div> 1011 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="49" aria-valuetext="13,800 credits of 27,900 credits, 49% full"> 1012 <div class="funding-progress-fill" style="width:49%"></div> 1013 </div> 1014</div> 1015 </div> 1016 <div class="project-card-metrics" aria-label="Project metrics"> 1017 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 1018 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>3</strong><span>watchers</span></div> 1019 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1020 </div> 1021 </div> 1022 <div class="project-row-actions"> 1023 <div class="project-funded-box"> 1024 <div class="project-funded-pct">49%</div> 1025 <div class="project-funded-label">% full</div> 1026 <div class="project-funded-credits"> 1027 <span>Credits raised <strong>13,800 credits</strong></span> 1028 <span>Target <strong>27,900 credits</strong></span> 1029 </div> 1030 </div> 1031 <div class="project-card-actions"> 1032 <a class="btn ghost small" href="/auth/google">Watch</a> 1033 <a class="btn ghost small" href="/projects/78">View output</a> 1034 </div> 1035 </div> 1036</article><article class="card project-card project-row"> 1037 <div class="vote-control compact" data-score="6" data-my-vote="0"> 1038 <form method="post" action="/projects/147/vote" class="vote-form"> 1039
1040 <input type="hidden" name="current_vote" value="0"> 1041 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1042</form> 1043 <div class="vote-score pos">6</div> 1044 <form method="post" action="/projects/147/vote" class="vote-form"> 1045 1046 <input type="hidden" name="current_vote" value="0"> 1047 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1048</form> 1049</div> 1050 <div class="project-row-body"> 1051 <div class="project-card-title"> 1052 <a href="/projects/147"><strong>Build an open protocol for user-owned AI memory</strong></a> 1053 <p class="muted">by Daniel May · GPT-5.5 · 3 months ago</p> 1054 </div> 1055 <p class="project-card-summary">AI is starting to remember us. Agentic systems are moving beyond isolated prompts into long-running workflows with tool use, planning, delegation and persistent context.â¦</p> 1056 <div class="project-card-tags"> 1057 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 1058 1059 1060 <span class="badge ok">Shipped</span> 1061 </div> 1062 <div class="project-card-progress"> 1063 <div class="funding-progress"> 1064 <div class="funding-progress-meta"> 1065 <span><strong>5,015 credits</strong> of 8,388 credits</span> 1066 <span class="funding-progress-pct"><b>60%</b><span> full</span></span> 1067 </div> 1068 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="60" aria-valuetext="5,015 credits of 8,388 credits, 60% full"> 1069 <div class="funding-progress-fill" style="width:60%"></div> 1070 </div> 1071</div> 1072 </div> 1073 <div class="project-card-metrics" aria-label="Project metrics"> 1074 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>8</strong><span>funders</span></div> 1075 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>5</strong><span>watchers</span></div> 1076 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1077 </div> 1078 </div> 1079 <div class="project-row-actions"> 1080 <div class="project-funded-box"> 1081 <div class="project-funded-pct">60%</div> 1082 <div class="project-funded-label">% full</div> 1083 <div class="project-funded-credits"> 1084 <span>Credits raised <strong>5,015 credits</strong></span> 1085 <span>Target <strong>8,388 credits</strong></span> 1086 </div> 1087 </div> 1088 <div class="project-card-actions"> 1089 <a class="btn ghost small" href="/auth/google">Watch</a> 1090 <a class="btn ghost small" href="/projects/147">View output</a> 1091 </div> 1092 </div> 1093</article><article class="card project-card project-row"> 1094 <div class="vote-control compact" data-score="1" data-my-vote="0"> 1095 <form method="post" action="/projects/137/vote" class="vote-form"> 1096 1097 <input type="hidden" name="current_vote" value="0"> 1098 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1099</form> 1100 <div class="vote-score pos">1</div> 1101 <form method="post" action="/projects/137/vote" class="vote-form"> 1102 1103 <input type="hidden" name="current_vote" value="0"> 1104 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1105</form> 1106</div> 1107 <div class="project-row-body"> 1108 <div class="project-card-title"> 1109 <a href="/projects/137"><strong>Vector Asteroids â Arcade Demo</strong></a> 1110 <p class="muted">by Matt · GPT-5.5 · 3 months ago</p> 1111 </div> 1112 <p class="project-card-summary">Build a polished, juicy retro arcade game in the style of classic vector Asteroids. HARD REQUIREMENTS (for robustness + easy static hosting): - Deliver a SINGLE self-conâ¦</p> 1113 <div class="project-card-tags"> 1114 <a class="tag-pill" href="/discover?tag=games">Games</a> 1115 1116 1117 <span class="badge ok">Shipped</span> 1118 </div> 1119 <div class="project-card-progress"> 1120 <div class="funding-progress full"> 1121 <div class="funding-progress-meta"> 1122 <span><strong>12,000 credits</strong> of 9,945 credits</span> 1123 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 1124 </div> 1125 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="12,000 credits of 9,945 credits, 100% full"> 1126 <div class="funding-progress-fill" style="width:100%"></div> 1127 </div> 1128</div> 1129 </div> 1130 <div class="project-card-metrics" aria-label="Project metrics"> 1131 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 1132 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true">
1132<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>2</strong><span>watchers</span></div> 1133 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1134 </div> 1135 </div> 1136 <div class="project-row-actions"> 1137 <div class="project-funded-box"> 1138 <div class="project-funded-pct full">100%</div> 1139 <div class="project-funded-label">% full</div> 1140 <div class="project-funded-credits"> 1141 <span>Credits raised <strong>12,000 credits</strong></span> 1142 <span>Target <strong>9,945 credits</strong></span> 1143 </div> 1144 </div> 1145 <div class="project-card-actions"> 1146 <a class="btn ghost small" href="/auth/google">Watch</a> 1147 <a class="btn ghost small" href="/projects/137">View output</a> 1148 </div> 1149 </div> 1150</article><article class="card project-card project-row"> 1151 <div class="vote-control compact" data-score="6" data-my-vote="0"> 1152 <form method="post" action="/projects/168/vote" class="vote-form"> 1153 1154 <input type="hidden" name="current_vote" value="0"> 1155 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1156</form> 1157 <div class="vote-score pos">6</div> 1158 <form method="post" action="/projects/168/vote" class="vote-form"> 1159 1160 <input type="hidden" name="current_vote" value="0"> 1161 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1162</form> 1163</div> 1164 <div class="project-row-body"> 1165 <div class="project-card-title"> 1166 <a href="/projects/168"><strong>Monero mobile wallet with a privacy, security and transparency focus. (Open-source & Reproducible Builds)</strong></a> 1167 <p class="muted">by Dori Borrello · Anthropic: Claude Fable 5 · 3 months ago</p> 1168 </div> 1169 <p class="project-card-summary">The dominant mobile Monero wallet is built by a for-profit company with a security track record the community should not have to depend on: - **Milk Sad (2023â2024 disclâ¦</p> 1170 <div class="project-card-tags"> 1171 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 1172 1173 1174 <span class="badge acc">Building</span> 1175 </div> 1176 <div class="project-card-progress"> 1177 <div class="funding-progress"> 1178 <div class="funding-progress-meta"> 1179 <span><strong>919 credits</strong> of 13,038 credits</span> 1180 <span class="funding-progress-pct"><b>7%</b><span> full</span></span> 1181 </div> 1182 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="7" aria-valuetext="919 credits of 13,038 credits, 7% full"> 1183 <div class="funding-progress-fill" style="width:7%"></div> 1184 </div> 1185</div> 1186 </div> 1187 <div class="project-card-metrics" aria-label="Project metrics"> 1188 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>6</strong><span>funders</span></div> 1189 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>6</strong><span>watchers</span></div> 1190 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>1</strong><span>comment</span></div> 1191 </div> 1192 </div> 1193 <div class="project-row-actions"> 1194 <div class="project-funded-box"> 1195 <div class="project-funded-pct">7%</div> 1196 <div class="project-funded-label">% full</div> 1197 <div class="project-funded-credits">
1198 <span>Credits raised <strong>919 credits</strong></span> 1199 <span>Target <strong>13,038 credits</strong></span> 1200 </div> 1201 </div> 1202 <div class="project-card-actions"> 1203 <a class="btn ghost small" href="/auth/google">Watch</a> 1204 <a class="btn ghost small" href="/projects/168">View build</a> 1205 </div> 1206 </div> 1207</article><article class="card project-card project-row"> 1208 <div class="vote-control compact" data-score="5" data-my-vote="0"> 1209 <form method="post" action="/projects/141/vote" class="vote-form"> 1210 1211 <input type="hidden" name="current_vote" value="0"> 1212 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1213</form> 1214 <div class="vote-score pos">5</div> 1215 <form method="post" action="/projects/141/vote" class="vote-form"> 1216 1217 <input type="hidden" name="current_vote" value="0"> 1218 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1219</form> 1220</div> 1221 <div class="project-row-body"> 1222 <div class="project-card-title"> 1223 <a href="/projects/141"><strong>AI Creates a Programming Language</strong></a> 1224 <p class="muted">by Ioana Bria · GPT-5.5 · 3 months ago</p> 1225 </div> 1226 <p class="project-card-summary">Todayâs programming languages were designed for humans writing code by hand. Increasingly, software is being written collaboratively with AI systems that think, reason,â¦</p> 1227 <div class="project-card-tags"> 1228 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 1229 1230 1231 <span class="badge acc">Building</span> 1232 </div> 1233 <div class="project-card-progress"> 1234 <div class="funding-progress"> 1235 <div class="funding-progress-meta"> 1236 <span><strong>1,493 credits</strong> of 12,327 credits</span> 1237 <span class="funding-progress-pct"><b>12%</b><span> full</span></span> 1238 </div> 1239 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="12" aria-valuetext="1,493 credits of 12,327 credits, 12% full"> 1240 <div class="funding-progress-fill" style="width:12%"></div> 1241 </div> 1242</div> 1243 </div> 1244 <div class="project-card-metrics" aria-label="Project metrics"> 1245 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>4</strong><span>funders</span></div> 1246 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>1</strong><span>watcher</span></div> 1247 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1248 </div> 1249 </div> 1250 <div class="project-row-actions"> 1251 <div class="project-funded-box"> 1252 <div class="project-funded-pct">12%</div> 1253 <div class="project-funded-label">% full</div> 1254 <div class="project-funded-credits"> 1255 <span>Credits raised <strong>1,493 credits</strong></span> 1256 <span>Target <strong>12,327 credits</strong></span> 1257 </div> 1258 </div> 1259 <div class="project-card-actions"> 1260 <a class="btn ghost small" href="/auth/google">Watch</a> 1261 <a class="btn ghost small" href="/projects/141">View build</a> 1262 </div> 1263 </div> 1264</article><article class="card project-card project-row"> 1265 <div class="vote-control compact" data-score="0" data-my-vote="0"> 1266 <form method="post" action="/projects/170/vote" class="vote-form"> 1267
1268 <input type="hidden" name="current_vote" value="0"> 1269 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1270</form> 1271 <div class="vote-score">0</div> 1272 <form method="post" action="/projects/170/vote" class="vote-form"> 1273 1274 <input type="hidden" name="current_vote" value="0"> 1275 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1276</form> 1277</div> 1278 <div class="project-row-body"> 1279 <div class="project-card-title"> 1280 <a href="/projects/170"><strong>Maschine Emulator: DO NOT USE WEB MIDI</strong></a> 1281 <p class="muted">by Keith · Anthropic: Claude Fable 5 · 3 months ago</p> 1282 </div> 1283 <p class="project-card-summary">DO NOT USE WEB MIDI Native app, only windows support for now. Use .net C# if possible Create an emulator for the Maschine hardware, Maschine is a midi controller by natiâ¦</p> 1284 <div class="project-card-tags"> 1285 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 1286 1287 <span class="badge warn">backers only</span> 1288 <span class="badge ok">Shipped</span> 1289 </div> 1290 <div class="project-card-progress"> 1291 <div class="funding-progress full"> 1292 <div class="funding-progress-meta"> 1293 <span><strong>8,800 credits</strong> of 8,003 credits</span> 1294 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 1295 </div> 1296 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="8,800 credits of 8,003 credits, 100% full"> 1297 <div class="funding-progress-fill" style="width:100%"></div> 1298 </div> 1299</div> 1300 </div> 1301 <div class="project-card-metrics" aria-label="Project metrics"> 1302 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 1303 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>0</strong><span>watchers</span></div> 1304 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1305 </div> 1306 </div> 1307 <div class="project-row-actions"> 1308 <div class="project-funded-box"> 1309 <div class="project-funded-pct full">100%</div> 1310 <div class="project-funded-label">% full</div> 1311 <div class="project-funded-credits"> 1312 <span>Credits raised <strong>8,800 credits</strong></span> 1313 <span>Target <strong>8,003 credits</strong></span> 1314 </div> 1315 </div> 1316 <div class="project-card-actions"> 1317 <a class="btn ghost small" href="/auth/google">Watch</a> 1318 <a class="btn ghost small" href="/projects/170">View output</a> 1319 </div> 1320 </div> 1321</article><article class="card project-card project-row"> 1322 <div class="vote-control compact" data-score="2" data-my-vote="0"> 1323 <form method="post" action="/projects/167/vote" class="vote-form"> 1324 1325 <input type="hidden" name="current_vote" value="0"> 1326 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1327</form> 1328 <div class="vote-score pos">2</div> 1329 <form method="post" action="/projects/167/vote" class="vote-form"> 1330
1331 <input type="hidden" name="current_vote" value="0"> 1332 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1333</form> 1334</div> 1335 <div class="project-row-body"> 1336 <div class="project-card-title"> 1337 <a href="/projects/167"><strong>Open-source Product Adoption Platform for SaaS</strong></a> 1338 <p class="muted">by Chris Stones · Anthropic: Claude Fable 5 · 3 months ago</p> 1339 </div> 1340 <p class="project-card-summary">Because introjs is ancient, and every vendor out there charges an exorbitant amount of money for basic SaaS tooling.</p> 1341 <div class="project-card-tags"> 1342 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 1343 1344 1345 <span class="badge err">Failed</span> 1346 </div> 1347 <div class="project-card-progress"> 1348 <div class="funding-progress"> 1349 <div class="funding-progress-meta"> 1350 <span><strong>5,600 credits</strong> of 16,005 credits</span> 1351 <span class="funding-progress-pct"><b>35%</b><span> full</span></span> 1352 </div> 1353 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="35" aria-valuetext="5,600 credits of 16,005 credits, 35% full"> 1354 <div class="funding-progress-fill" style="width:35%"></div> 1355 </div> 1356</div> 1357 </div> 1358 <div class="project-card-metrics" aria-label="Project metrics"> 1359 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 1360 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>2</strong><span>watchers</span></div> 1361 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1362 </div> 1363 </div> 1364 <div class="project-row-actions"> 1365 <div class="project-funded-box"> 1366 <div class="project-funded-pct">35%</div> 1367 <div class="project-funded-label">% full</div> 1368 <div class="project-funded-credits"> 1369 <span>Credits raised <strong>5,600 credits</strong></span> 1370 <span>Target <strong>16,005 credits</strong></span> 1371 </div> 1372 </div> 1373 <div class="project-card-actions"> 1374 <a class="btn ghost small" href="/auth/google">Watch</a> 1375 <a class="btn ghost small" href="/projects/167">View project</a> 1376 </div> 1377 </div> 1378</article><article class="card project-card project-row"> 1379 <div class="vote-control compact" data-score="2" data-my-vote="0"> 1380 <form method="post" action="/projects/110/vote" class="vote-form"> 1381 1382 <input type="hidden" name="current_vote" value="0"> 1383 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1384</form> 1385 <div class="vote-score pos">2</div> 1386 <form method="post" action="/projects/110/vote" class="vote-form"> 1387 1388 <input type="hidden" name="current_vote" value="0"> 1389 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1390</form> 1391</div> 1392 <div class="project-row-body"> 1393 <div class="project-card-title"> 1394 <a href="/projects/110"><strong>UK Service Outage Map (National Utility)</strong></a> 1395 <p class="muted">by Kev · GPT-5.5 · 3 months ago</p> 1396 </div> 1397 <p class="project-card-summary">This will ultimately be used to help vulnerable people in been able to understand why something they rely on is no longer available and what the current status for serviâ¦</p> 1398 <div class="project-card-tags"> 1399 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 1400 1401 1402 <span class="badge acc">Building</span> 1403 </div> 1404 <div class="project-card-progress"> 1405 <div class="funding-progress"> 1406 <div class="funding-progress-meta"> 1407 <span><strong>4,800 credits</strong> of 12,589 credits</span> 1408 <span class="funding-progress-pct"><b>38%</b><span> full</span></span> 1409 </div> 1410 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="38" aria-valuetext="4,800 credits of 12,589 credits, 38% full"> 1411 <div class="funding-progress-fill" style="width:38%"></div> 1412 </div> 1413</div> 1414 </div> 1415 <div class="project-card-metrics" aria-label="Project metrics"> 1416 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>3</strong><span>funders</span></div> 1417 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true">
1417<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>3</strong><span>watchers</span></div> 1418 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1419 </div> 1420 </div> 1421 <div class="project-row-actions"> 1422 <div class="project-funded-box"> 1423 <div class="project-funded-pct">38%</div> 1424 <div class="project-funded-label">% full</div> 1425 <div class="project-funded-credits"> 1426 <span>Credits raised <strong>4,800 credits</strong></span> 1427 <span>Target <strong>12,589 credits</strong></span> 1428 </div> 1429 </div> 1430 <div class="project-card-actions"> 1431 <a class="btn ghost small" href="/auth/google">Watch</a> 1432 <a class="btn ghost small" href="/projects/110">View build</a> 1433 </div> 1434 </div> 1435</article><article class="card project-card project-row"> 1436 <div class="vote-control compact" data-score="2" data-my-vote="0"> 1437 <form method="post" action="/projects/140/vote" class="vote-form"> 1438 1439 <input type="hidden" name="current_vote" value="0"> 1440 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1441</form> 1442 <div class="vote-score pos">2</div> 1443 <form method="post" action="/projects/140/vote" class="vote-form"> 1444 1445 <input type="hidden" name="current_vote" value="0"> 1446 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1447</form> 1448</div> 1449 <div class="project-row-body"> 1450 <div class="project-card-title"> 1451 <a href="/projects/140"><strong>Fan Passport: The World Cup Journey</strong></a> 1452 <p class="muted">by Kevin Pieroni · GPT-5.5 · 3 months ago</p> 1453 </div> 1454 <p class="project-card-summary">Most World Cup apps are about scores. This is about identity and participation. Funders aren't paying for another scoreboard. They're funding: "A digital football stickeâ¦</p> 1455 <div class="project-card-tags"> 1456 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 1457 1458 1459 <span class="badge ok">Shipped</span> 1460 </div> 1461 <div class="project-card-progress"> 1462 <div class="funding-progress full"> 1463 <div class="funding-progress-meta"> 1464 <span><strong>4,600 credits</strong> of 3,133 credits</span> 1465 <span class="funding-progress-pct full"><b>100%</b><span> full</span></span> 1466 </div> 1467 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="100" aria-valuetext="4,600 credits of 3,133 credits, 100% full"> 1468 <div class="funding-progress-fill" style="width:100%"></div> 1469 </div> 1470</div> 1471 </div> 1472 <div class="project-card-metrics" aria-label="Project metrics"> 1473 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 1474 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>1</strong><span>watcher</span></div> 1475 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1476 </div> 1477 </div> 1478 <div class="project-row-actions"> 1479 <div class="project-funded-box"> 1480 <div class="project-funded-pct full">100%</div> 1481 <div class="project-funded-label">% full</div> 1482 <div class="project-funded-credits">
1483 <span>Credits raised <strong>4,600 credits</strong></span> 1484 <span>Target <strong>3,133 credits</strong></span> 1485 </div> 1486 </div> 1487 <div class="project-card-actions"> 1488 <a class="btn ghost small" href="/auth/google">Watch</a> 1489 <a class="btn ghost small" href="/projects/140">View output</a> 1490 </div> 1491 </div> 1492</article><article class="card project-card project-row"> 1493 <div class="vote-control compact" data-score="2" data-my-vote="0"> 1494 <form method="post" action="/projects/16/vote" class="vote-form"> 1495 1496 <input type="hidden" name="current_vote" value="0"> 1497 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1498</form> 1499 <div class="vote-score pos">2</div> 1500 <form method="post" action="/projects/16/vote" class="vote-form"> 1501 1502 <input type="hidden" name="current_vote" value="0"> 1503 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1504</form> 1505</div> 1506 <div class="project-row-body"> 1507 <div class="project-card-title"> 1508 <a href="/projects/16"><strong>UK Car Modification Database</strong></a> 1509 <p class="muted">by Kev · Anthropic: Claude Fable 5 · 3 months ago</p> 1510 </div> 1511 <p class="project-card-summary">Think "Wikipedia meets PCPartPicker" for cars. Users select: Make Model Year Then browse real modifications. Example For a Stelvio Quadrifoglio: Engine: ECU tune Downpipâ¦</p> 1512 <div class="project-card-tags"> 1513 <a class="tag-pill" href="/discover?tag=data">Data</a> 1514 1515 1516 <span class="badge acc">Building</span> 1517 </div> 1518 <div class="project-card-progress"> 1519 <div class="funding-progress"> 1520 <div class="funding-progress-meta"> 1521 <span><strong>4,100 credits</strong> of 70,200 credits</span> 1522 <span class="funding-progress-pct"><b>6%</b><span> full</span></span> 1523 </div> 1524 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="6" aria-valuetext="4,100 credits of 70,200 credits, 6% full"> 1525 <div class="funding-progress-fill" style="width:6%"></div> 1526 </div> 1527</div> 1528 </div> 1529 <div class="project-card-metrics" aria-label="Project metrics"> 1530 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>2</strong><span>funders</span></div> 1531 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>2</strong><span>watchers</span></div> 1532 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1533 </div> 1534 </div> 1535 <div class="project-row-actions"> 1536 <div class="project-funded-box"> 1537 <div class="project-funded-pct">6%</div> 1538 <div class="project-funded-label">% full</div> 1539 <div class="project-funded-credits"> 1540 <span>Credits raised <strong>4,100 credits</strong></span> 1541 <span>Target <strong>70,200 credits</strong></span> 1542 </div> 1543 </div> 1544 <div class="project-card-actions"> 1545 <a class="btn ghost small" href="/auth/google">Watch</a> 1546 <a class="btn ghost small" href="/projects/16">View build</a> 1547 </div> 1548 </div> 1549</article><article class="card project-card project-row"> 1550 <div class="vote-control compact" data-score="2" data-my-vote="0"> 1551 <form method="post" action="/projects/35/vote" class="vote-form"> 1552
1553 <input type="hidden" name="current_vote" value="0"> 1554 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1555</form> 1556 <div class="vote-score pos">2</div> 1557 <form method="post" action="/projects/35/vote" class="vote-form"> 1558 1559 <input type="hidden" name="current_vote" value="0"> 1560 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1561</form> 1562</div> 1563 <div class="project-row-body"> 1564 <div class="project-card-title"> 1565 <a href="/projects/35"><strong>Open Source Kite Flying Map</strong></a> 1566 <p class="muted">by NaveenKumar N · GPT-5.5 · 3 months ago</p> 1567 </div> 1568 <p class="project-card-summary">Web app to help kite flyers to show the map with the location, weather, wind direction, and speed. Google maps but for Kites.</p> 1569 <div class="project-card-tags"> 1570 <a class="tag-pill" href="/discover?tag=apps">Apps</a> 1571 1572 1573 <span class="badge warn">Awaiting funding</span> 1574 </div> 1575 <div class="project-card-progress"> 1576 <div class="funding-progress"> 1577 <div class="funding-progress-meta"> 1578 <span><strong>3,822 credits</strong> of 24,400 credits</span> 1579 <span class="funding-progress-pct"><b>16%</b><span> full</span></span> 1580 </div> 1581 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="16" aria-valuetext="3,822 credits of 24,400 credits, 16% full"> 1582 <div class="funding-progress-fill" style="width:16%"></div> 1583 </div> 1584</div> 1585 </div> 1586 <div class="project-card-metrics" aria-label="Project metrics"> 1587 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>3</strong><span>funders</span></div> 1588 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>2</strong><span>watchers</span></div> 1589 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1590 </div> 1591 </div> 1592 <div class="project-row-actions"> 1593 <div class="project-funded-box"> 1594 <div class="project-funded-pct">16%</div> 1595 <div class="project-funded-label">% full</div> 1596 <div class="project-funded-credits"> 1597 <span>Credits raised <strong>3,822 credits</strong></span> 1598 <span>Target <strong>24,400 credits</strong></span> 1599 </div> 1600 </div> 1601 <div class="project-card-actions"> 1602 <a class="btn ghost small" href="/auth/google">Watch</a> 1603 <a class="btn funding small" href="/projects/35#back">Fill the pool</a> 1604 </div> 1605 </div> 1606</article><article class="card project-card project-row"> 1607 <div class="vote-control compact" data-score="0" data-my-vote="0"> 1608 <form method="post" action="/projects/165/vote" class="vote-form"> 1609 1610 <input type="hidden" name="current_vote" value="0"> 1611 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1612</form> 1613 <div class="vote-score">0</div> 1614 <form method="post" action="/projects/165/vote" class="vote-form"> 1615 1616 <input type="hidden" name="current_vote" value="0"> 1617 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1618</form> 1619</div> 1620 <div class="project-row-body"> 1621 <div class="project-card-title"> 1622 <a href="/projects/165"><strong>AtPack: A Package Registry That Runs on AT Protocol (based on James M. Snell's original article)</strong></a> 1623 <p class="muted">by Andre Silva · GPT-5.5 · 3 months ago</p> 1624 </div> 1625 <p class="project-card-summary">This idea is not mine. It comes from the article "What If npm Ran on AT Protocol?" by James M. Snell (June 21, 2026), <https://www.jasnell.me/posts/what-if-npm-ran-on-atâ¦</p> 1626 <div class="project-card-tags"> 1627 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 1628 1629 1630 <span class="badge acc">Building</span> 1631 </div> 1632 <div class="project-card-progress"> 1633 <div class="funding-progress"> 1634 <div class="funding-progress-meta"> 1635 <span><strong>6,400 credits</strong> of 12,367 credits</span> 1636 <span class="funding-progress-pct"><b>52%</b><span> full</span></span> 1637 </div> 1638 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="52" aria-valuetext="6,400 credits of 12,367 credits, 52% full"> 1639 <div class="funding-progress-fill" style="width:52%"></div> 1640 </div> 1641</div> 1642 </div> 1643 <div class="project-card-metrics" aria-label="Project metrics"> 1644 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 1645 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true">
1645<path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>1</strong><span>watcher</span></div> 1646 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1647 </div> 1648 </div> 1649 <div class="project-row-actions"> 1650 <div class="project-funded-box"> 1651 <div class="project-funded-pct">52%</div> 1652 <div class="project-funded-label">% full</div> 1653 <div class="project-funded-credits"> 1654 <span>Credits raised <strong>6,400 credits</strong></span> 1655 <span>Target <strong>12,367 credits</strong></span> 1656 </div> 1657 </div> 1658 <div class="project-card-actions"> 1659 <a class="btn ghost small" href="/auth/google">Watch</a> 1660 <a class="btn ghost small" href="/projects/165">View build</a> 1661 </div> 1662 </div> 1663</article><article class="card project-card project-row"> 1664 <div class="vote-control compact" data-score="3" data-my-vote="0"> 1665 <form method="post" action="/projects/75/vote" class="vote-form"> 1666 1667 <input type="hidden" name="current_vote" value="0"> 1668 <button type="submit" name="vote" value="up" class="vote-btn up" aria-label="Upvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 4l8 9h-5v7H9v-7H4z"/></svg><span class="sr-only">Upvote</span></button> 1669</form> 1670 <div class="vote-score pos">3</div> 1671 <form method="post" action="/projects/75/vote" class="vote-form"> 1672 1673 <input type="hidden" name="current_vote" value="0"> 1674 <button type="submit" name="vote" value="down" class="vote-btn down" aria-label="Downvote" aria-pressed="false" title="Sign in to vote" disabled><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 20l-8-9h5V4h6v7h5z"/></svg><span class="sr-only">Downvote</span></button> 1675</form> 1676</div> 1677 <div class="project-row-body"> 1678 <div class="project-card-title"> 1679 <a href="/projects/75"><strong>Build an open-source, model-agnostic coding-agent harness for power users</strong></a> 1680 <p class="muted">by Tom Moulard · GPT-5.5 · 3 months ago</p> 1681 </div> 1682 <p class="project-card-summary">Models churn every few months. The harness that turns a model into a working coding agent shouldn't â yet every tool today hardcodes one vendor, one execution loop, oneâ¦</p> 1683 <div class="project-card-tags"> 1684 <a class="tag-pill" href="/discover?tag=devtools">Dev Tools</a> 1685 1686 1687 <span class="badge warn">Awaiting funding</span> 1688 </div> 1689 <div class="project-card-progress"> 1690 <div class="funding-progress"> 1691 <div class="funding-progress-meta"> 1692 <span><strong>1,642 credits</strong> of 11,370 credits</span> 1693 <span class="funding-progress-pct"><b>14%</b><span> full</span></span> 1694 </div> 1695 <div class="funding-progress-track" role="progressbar" aria-label="Funding progress" aria-valuemin="0" aria-valuemax="100" aria-valuenow="14" aria-valuetext="1,642 credits of 11,370 credits, 14% full"> 1696 <div class="funding-progress-fill" style="width:14%"></div> 1697 </div> 1698</div> 1699 </div> 1700 <div class="project-card-metrics" aria-label="Project metrics"> 1701 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg><strong>1</strong><span>funder</span></div> 1702 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7Z"/><circle cx="12" cy="12" r="3"/></svg><strong>1</strong><span>watcher</span></div> 1703 <div class="project-card-metric"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M21 11.5a8.38 8.38 0 0 1-8.5 8.5 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7A8.38 8.38 0 0 1 4 11.5 8.5 8.5 0 0 1 12.5 3 8.5 8.5 0 0 1 21 11.5Z"/></svg><strong>0</strong><span>comments</span></div> 1704 </div> 1705 </div> 1706 <div class="project-row-actions"> 1707 <div class="project-funded-box"> 1708 <div class="project-funded-pct">14%</div> 1709 <div class="project-funded-label">% full</div> 1710 <div class="project-funded-credits">
1711 <span>Credits raised <strong>1,642 credits</strong></span> 1712 <span>Target <strong>11,370 credits</strong></span> 1713 </div> 1714 </div> 1715 <div class="project-card-actions"> 1716 <a class="btn ghost small" href="/auth/google">Watch</a> 1717 <a class="btn funding small" href="/projects/75#back">Fill the pool</a> 1718 </div> 1719 </div> 1720</article></div> 1721<div class="card pager-card"> 1722 <div class="row pager-row"> 1723 <div class="muted pager-summary">Showing 1-20 of 40 projects</div> 1724 <div class="pager-nav"><span class="pager-link pager-disabled edge" aria-disabled="true">Previous</span><span class="pager-current pager-num" aria-current="page">1</span><a class="pager-link pager-num" href="/discover?page=2">2</a><a class="pager-link edge" href="/discover?page=2">Next</a></div> 1725 <div class="muted pager-mobile">Page 1 of 2</div> 1726 </div> 1727</div> 1728</main> 1729<footer class="site-footer"> 1730 FablePool - crowdfund ambitious AI builds, in public. <a href="/about">About</a> 1731 <div> 1732 <a href="/policies/terms">Terms</a> 1733 <a href="/policies/refunds">Refunds</a> 1734 <a href="/policies/ip">Output IP</a> 1735 <a href="/policies/moderation">Moderation</a> 1736 <a href="/policies/spend-reports">Spend reports</a> 1737 <a href="/policies/privacy">Privacy</a> 1738 </div> 1739</footer>
1740<script> 1741(function(){ 1742 document.querySelectorAll('.exp-btn').forEach(function(b){ 1743 b.addEventListener('click', function(){ 1744 var t=document.getElementById(b.getAttribute('data-target')); 1745 if(!t)return; 1746 var willShow=t.hidden; t.hidden=!willShow; 1747 b.textContent=willShow?b.getAttribute('data-less'):b.getAttribute('data-more'); 1748 }); 1749 }); 1750})(); 1751</script>
vendor: 1 bytes, line 1751
1751
1752<script> 1753(function(){ 1754 function scoreText(n){return String(n);} 1755 function render(control,score,myVote){ 1756 var scoreEl=control.querySelector('.vote-score'); 1757 if(scoreEl){ 1758 scoreEl.textContent=scoreText(score); 1759 scoreEl.classList.toggle('pos',score>0); 1760 scoreEl.classList.toggle('neg',score<0); 1761 } 1762 control.dataset.score=String(score); 1763 control.dataset.myVote=String(myVote); 1764 control.querySelectorAll('.vote-btn').forEach(function(btn){ 1765 var isUp=btn.classList.contains('up'); 1766 var active=(isUp&&myVote===1)||(!isUp&&myVote===-1); 1767 btn.classList.toggle('active',active); 1768 btn.setAttribute('aria-pressed',active?'true':'false'); 1769 }); 1770 } 1771 document.addEventListener('submit',function(e){ 1772 var form=e.target; 1773 if(!form||!form.classList||!form.classList.contains('vote-form'))return; 1774 e.preventDefault(); 1775 var btn=e.submitter||form.querySelector('button[type=submit]'); 1776 if(!btn||btn.disabled||form.dataset.busy==='1')return; 1777 var control=form.closest('.vote-control'); 1778 if(!control)return; 1779 if(control.dataset.busy==='1')return; 1780 var fd=new FormData(form); 1781 if(btn.name)fd.set(btn.name,btn.value); 1782 fd.set('current_vote',control.dataset.myVote||'0'); 1783 form.dataset.busy='1'; 1784 control.dataset.busy='1'; 1785 control.querySelectorAll('.vote-btn').forEach(function(b){b.disabled=true;}); 1786 fetch(form.action,{ 1787 method:'POST', 1788 body:fd, 1789 credentials:'same-origin', 1790 headers:{'Accept':'application/json','X-Requested-With':'fetch'} 1791 }).then(function(res){ 1792 if(res.status===401||res.redirected){location.href=res.url||'/auth/google';return null;} 1793 if(!res.ok)throw new Error('Vote failed'); 1794 return res.json(); 1795 }).then(function(data){ 1796 if(!data)return; 1797 render(control,Number(data.score)||0,Number(data.myVote)||0); 1798 }).catch(function(){ 1799 var current=form.querySelector('input[type="hidden"][name="current_vote"]'); 1800 if(current)current.value=control.dataset.myVote||'0'; 1801 if(btn.name&&!form.querySelector('input[type="hidden"][name="'+btn.name+'"].vote-fallback-value')){ 1802 var h=document.createElement('input'); 1803 h.type='hidden';h.name=btn.name;h.value=btn.value;h.className='vote-fallback-value'; 1804 form.appendChild(h); 1805 } 1806 form.submit(); 1807 }).finally(function(){ 1808 form.dataset.busy='0'; 1809 control.dataset.busy='0'; 1810 control.querySelectorAll('.vote-btn').forEach(function(b){b.disabled=false;}); 1811 }); 1812 }); 1813})(); 1814</script>
vendor: 1 bytes, line 1814
1814
1815<script> 1816(function(){ 1817 document.addEventListener('submit', function(e){ 1818 var f=e.target; if(!f||f.tagName!=='FORM') return; 1819 // Skip when submission was cancelled (e.g. a confirm() dialog declined via an 1820 // onsubmit="return confirm(...)") â otherwise we'd lock a button that never posted. 1821 if(e.defaultPrevented) return; 1822 var b=f.querySelector('button[type=submit],button:not([type]),input[type=submit]'); 1823 if(!b||b.disabled) return; 1824 setTimeout(function(){ 1825 b.disabled=true; 1826 if(b.tagName==='BUTTON'){ b.dataset.lbl=b.textContent; b.textContent='Workingâ¦'; } 1827 },0); 1828 }); 1829 window.addEventListener('pageshow', function(){ 1830 document.querySelectorAll('button[disabled],input[type=submit][disabled]').forEach(function(b){ 1831 if(b.dataset && b.dataset.lbl!==undefined){ b.disabled=false; if(b.tagName==='BUTTON'){b.textContent=b.dataset.lbl;} delete b.dataset.lbl; } 1832 }); 1833 }); 1834 try{ 1835 var path=location.pathname; 1836 document.querySelectorAll('.site-nav a[href]').forEach(function(a){ 1837 var href=a.getAttribute('href'); 1838 if(!href||href.charAt(0)!=='/') return; 1839 var match = href==='/' ? path==='/' : (path===href || path.indexOf(href+'/')===0); 1840 if(match){ a.classList.add('nav-active'); a.setAttribute('aria-current','page'); } 1841 }); 1842 }catch(_){} 1843})(); 1844</script>
1844 1845</div>
1846<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2fe71064735c41c4976e06f93577795c","r":1,"spa":2}' crossorigin="anonymous"></script>
1846 1847</body> 1848</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.