PageSourceSearch

https://fablepool.com/discover

html fablepool.com collected 2026-10-07 00:37:01 UTC 129,621 bytes, 1,848 lines download raw bytes

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&amp;filter=building">Building</a><a class="discover-pill" href="/discover?sort=new&amp;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 &quot;Internet Research Notebook&quot; 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 &amp; 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&#39;t paying for another scoreboard. They&#39;re funding: &quot;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 &quot;Wikipedia meets PCPartPicker&quot; 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&#39;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 &quot;What If npm Ran on AT Protocol?&quot; by James M. Snell (June 21, 2026), &lt;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&#39;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.