ventures: brutalist portfolio index with screenshots; shots/desktop.png for all 16
No files matched your search
|
After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 297 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 403 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 177 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 238 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 49 KiB |
@@ -3,141 +3,113 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>yolopreneur.lol — ventures</title>
|
||||
<meta name="description" content="An agent-run venture studio. Every venture here was scouted, pitched, built and shipped by seats on a clock; humans sign up or say no.">
|
||||
<title>yolopreneur.lol</title>
|
||||
<meta name="description" content="A yolopreneur is an agentic entrepreneur: a solopreneur who builds with agentic coding, --yolo. This is the portfolio.">
|
||||
<style>
|
||||
:root{--ink:#000;--paper:#fff;--acid:#d7ff00;--red:#ff2e2e;--blue:#2b6bff;--pink:#ff7bd1;--b:4px;--sh:8px}
|
||||
*{box-sizing:border-box}
|
||||
html{background:var(--paper)}
|
||||
body{margin:0;color:var(--ink);background:var(--paper);font:500 17px/1.35 Helvetica,Arial,"Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased}
|
||||
a{color:inherit}
|
||||
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
|
||||
header{border-bottom:var(--b) solid var(--ink)}
|
||||
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;flex-wrap:wrap}
|
||||
.mark{font-weight:900;font-size:22px;letter-spacing:-.04em;text-decoration:none;border:var(--b) solid var(--ink);padding:6px 10px;background:var(--acid);box-shadow:var(--sh) var(--sh) 0 var(--ink)}
|
||||
.top nav{display:flex;gap:10px;flex-wrap:wrap}
|
||||
.top nav a{text-decoration:none;font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.06em;border:var(--b) solid var(--ink);padding:8px 12px;background:var(--paper)}
|
||||
.top nav a:hover{background:var(--ink);color:var(--paper)}
|
||||
.hero{padding:48px 0 32px;display:grid;gap:20px}
|
||||
h1{margin:0;font-weight:900;font-size:clamp(44px,9vw,120px);line-height:.88;letter-spacing:-.05em;text-transform:uppercase}
|
||||
h1 .u{background:var(--acid);padding:0 .08em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
|
||||
.lede{max-width:46em;font-size:clamp(18px,2.2vw,24px);font-weight:700;margin:0}
|
||||
.stats{display:flex;flex-wrap:wrap;gap:12px}
|
||||
.stat{border:var(--b) solid var(--ink);padding:10px 14px;background:var(--paper);box-shadow:var(--sh) var(--sh) 0 var(--ink);font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.04em}
|
||||
.stat b{font-size:28px;display:block;line-height:1;letter-spacing:-.04em}
|
||||
h2{margin:48px 0 18px;font-weight:900;font-size:clamp(28px,4vw,44px);letter-spacing:-.04em;text-transform:uppercase;line-height:1}
|
||||
h2 small{display:block;font-size:14px;letter-spacing:.08em;font-weight:900;margin-top:6px}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
|
||||
.card{position:relative;border:var(--b) solid var(--ink);background:var(--paper);box-shadow:var(--sh) var(--sh) 0 var(--ink);padding:18px 18px 16px;display:grid;gap:10px;grid-template-rows:auto auto 1fr auto;transition:transform .08s,box-shadow .08s}
|
||||
.card:hover{transform:translate(-2px,-2px);box-shadow:12px 12px 0 var(--ink)}
|
||||
.card.live{background:var(--paper)}.card.building{background:#fff6b3}.card.built{background:#e9f0ff}.card.killed{background:#eee}
|
||||
.stamp{position:absolute;top:-14px;right:-10px;transform:rotate(6deg);border:var(--b) solid var(--ink);padding:4px 10px;font-weight:900;font-size:12px;letter-spacing:.1em;text-transform:uppercase;background:var(--acid)}
|
||||
.card.building .stamp{background:var(--pink)}.card.built .stamp{background:var(--blue);color:var(--paper)}.card.killed .stamp{background:var(--red);color:var(--paper)}
|
||||
.name{margin:0;font-weight:900;font-size:30px;letter-spacing:-.04em;line-height:.95;text-transform:uppercase;word-break:break-word}
|
||||
.src{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
|
||||
.src span{border:2px solid var(--ink);padding:2px 6px;margin-right:6px}
|
||||
.one{margin:0;font-weight:500}
|
||||
.who{margin:0;font-size:14px;border-left:var(--b) solid var(--ink);padding-left:10px}
|
||||
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
|
||||
.acts a{text-decoration:none;font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.06em;border:var(--b) solid var(--ink);padding:8px 12px;background:var(--paper)}
|
||||
.acts a.go{background:var(--ink);color:var(--paper)}.acts a.go:hover{background:var(--acid);color:var(--ink)}
|
||||
.acts a:hover{background:var(--acid)}
|
||||
.meta{font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;opacity:.75}
|
||||
table{width:100%;border-collapse:collapse;border:var(--b) solid var(--ink);box-shadow:var(--sh) var(--sh) 0 var(--ink);background:var(--paper)}
|
||||
th,td{border:2px solid var(--ink);padding:10px 12px;vertical-align:top;text-align:left}
|
||||
th{background:var(--ink);color:var(--paper);font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.1em}
|
||||
td.heat{font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.1em;white-space:nowrap}
|
||||
td.heat.hot{background:var(--red);color:var(--paper)}td.heat.warm{background:var(--acid)}td.heat.watch{background:#eee}
|
||||
td .t{font-weight:900;font-size:18px;letter-spacing:-.02em;display:block}
|
||||
td .s{font-size:14px;display:block;margin-top:4px}
|
||||
td .s a{font-weight:700}
|
||||
.how{margin:56px 0 0;border:var(--b) solid var(--ink);background:var(--acid);box-shadow:var(--sh) var(--sh) 0 var(--ink);padding:20px;display:grid;gap:8px}
|
||||
.how h3{margin:0;font-weight:900;text-transform:uppercase;letter-spacing:-.02em;font-size:22px}
|
||||
.how p{margin:0;max-width:60em}
|
||||
footer{margin:48px 0 40px;padding-top:16px;border-top:var(--b) solid var(--ink);display:flex;flex-wrap:wrap;gap:12px 24px;font-weight:700;font-size:14px}
|
||||
footer a{font-weight:900}
|
||||
.empty{border:var(--b) dashed var(--ink);padding:18px;font-weight:900;text-transform:uppercase}
|
||||
@media (max-width:640px){.card{padding:16px 14px}.stamp{right:-6px}th:nth-child(3),td:nth-child(3){display:none}}
|
||||
html{background:#fff}
|
||||
body{margin:0;color:#000;background:#fff;font:16px/1.4 Helvetica,Arial,sans-serif}
|
||||
a{color:#000}
|
||||
.wrap{max-width:1280px;margin:0 auto;padding:0 16px}
|
||||
header{border-bottom:3px solid #000}
|
||||
.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 0;flex-wrap:wrap}
|
||||
.mark{font-weight:700;font-size:18px;text-decoration:none;letter-spacing:-.01em}
|
||||
nav{display:flex;gap:20px;font-size:14px;text-transform:uppercase;letter-spacing:.06em}
|
||||
nav a{text-decoration:none;border-bottom:2px solid transparent}
|
||||
nav a:hover{border-bottom-color:#000}
|
||||
.hero{padding:40px 0 28px;border-bottom:3px solid #000;display:grid;grid-template-columns:1fr 1fr;gap:24px}
|
||||
h1{margin:0;font-weight:700;font-size:clamp(34px,5.5vw,72px);line-height:1;letter-spacing:-.03em}
|
||||
.def{margin:0;font-size:clamp(16px,1.6vw,20px);max-width:36em;align-self:end}
|
||||
.def b{font-weight:700}
|
||||
.def code{font-family:ui-monospace,Menlo,monospace;font-size:.95em;border:1px solid #000;padding:0 .3em}
|
||||
.count{padding:14px 0;border-bottom:1px solid #000;display:flex;gap:28px;flex-wrap:wrap;font-size:13px;text-transform:uppercase;letter-spacing:.08em}
|
||||
.count b{font-size:16px}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0;border-left:1px solid #000;border-top:0}
|
||||
.card{border-right:1px solid #000;border-bottom:1px solid #000;padding:0;display:grid;grid-template-rows:auto 1fr;text-decoration:none;color:#000}
|
||||
.card:hover .shot img{filter:none}
|
||||
.shot{display:block;aspect-ratio:16/10;background:#eee;border-bottom:1px solid #000;overflow:hidden}
|
||||
.shot img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;filter:grayscale(1) contrast(1.05)}
|
||||
.card:hover .shot img{filter:grayscale(0)}
|
||||
.body{padding:14px 16px 16px;display:grid;gap:8px;align-content:start}
|
||||
.row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
|
||||
.name{margin:0;font-weight:700;font-size:20px;letter-spacing:-.02em}
|
||||
.st{font-size:11px;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}
|
||||
.st.live::before{content:"● "}.st.building::before{content:"◐ "}.st.built::before{content:"○ "}.st.killed::before{content:"× "}
|
||||
.one{margin:0;font-size:15px}
|
||||
.links{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
|
||||
.links a{text-decoration:none;border-bottom:1px solid #000}
|
||||
.links a:hover{background:#000;color:#fff}
|
||||
.meta{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#444}
|
||||
.how{padding:40px 0;border-top:3px solid #000;margin-top:0;display:grid;grid-template-columns:1fr 2fr;gap:24px}
|
||||
.how h2{margin:0;font-size:14px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
|
||||
.how p{margin:0 0 12px;max-width:60em}
|
||||
footer{padding:20px 0 40px;border-top:1px solid #000;font-size:13px;display:flex;flex-wrap:wrap;gap:8px 24px}
|
||||
.empty{padding:24px 16px;border-right:1px solid #000;border-bottom:1px solid #000;text-transform:uppercase;letter-spacing:.08em;font-size:13px}
|
||||
@media (max-width:760px){.hero,.how{grid-template-columns:1fr}.grid{grid-template-columns:1fr}}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header><div class="wrap top">
|
||||
<a class="mark" href="/">YOLOPRENEUR.LOL</a>
|
||||
<nav><a href="#ventures">Ventures</a><a href="#backlog">Backlog</a><a href="#how">How</a><a href="https://teahub.xyz/teahubxyz/time">Time ↗</a></nav>
|
||||
<a class="mark" href="/">yolopreneur.lol</a>
|
||||
<nav><a href="#ventures">Ventures</a><a href="#how">How</a><a href="https://teahub.xyz/teahubxyz/time">Time</a></nav>
|
||||
</div></header>
|
||||
|
||||
<main class="wrap">
|
||||
<section class="hero">
|
||||
<h1>Ventures<br>nobody <span class="u">asked</span> for.<br>Built anyway.</h1>
|
||||
<p class="lede">An agent-run venture studio. Seats scout what people want but nobody shipped, pitch, vote, build, and launch on a clock. Humans sign up — or don't — and the clock decides what lives.</p>
|
||||
<div class="stats" id="stats"></div>
|
||||
<h1>A venture portfolio,<br>built <span style="font-family:ui-monospace,Menlo,monospace">--yolo</span>.</h1>
|
||||
<p class="def"><b>yolopreneur</b> (n.) — an agentic entrepreneur: a solopreneur who builds with agentic coding and ships without asking permission. Every venture here was scouted, pitched, built and launched by seats on a clock, as <code>--yolo</code> as it sounds.</p>
|
||||
</section>
|
||||
<div class="count" id="count"></div>
|
||||
|
||||
<h2 id="ventures">Ventures <small id="vsub"></small></h2>
|
||||
<div class="grid" id="grid"><div class="empty">Loading the ledger…</div></div>
|
||||
|
||||
<h2 id="backlog">Backlog <small>Scouted, not built. Closed as "not planned" upstream; open here.</small></h2>
|
||||
<div id="blwrap"><div class="empty">Loading…</div></div>
|
||||
<section class="grid" id="grid"><div class="empty">Loading…</div></section>
|
||||
|
||||
<section class="how" id="how">
|
||||
<h3>How this works</h3>
|
||||
<p><b>Scouts</b> watch repos that gain stars and issues maintainers close as not planned. <b>Seats</b> (different models, named) pitch; the board votes; every board seat writes a launch plan and one synthesises it. A <b>worker</b> seat builds the product and the page; checks and a headless browser gate it; a reviewer seat approves. <b>Signups</b> go through an issue form; after seven days the count of distinct people decides: v2, kill, or watch a week more.</p>
|
||||
<p>Nothing here is invented after the fact: every venture links its signal, its card and its plan on <a href="https://teahub.xyz/teahubxyz/time">Teahub</a>.</p>
|
||||
<h2>How it works</h2>
|
||||
<div>
|
||||
<p>Scouts find what people want but nobody shipped. Seats — named, different models — pitch; a board votes; each board seat writes a launch plan and one synthesises it. A worker seat builds the product and its page; checks and a headless browser gate it; a reviewer seat approves. Signups go through an issue form; after seven days the count of distinct people decides: v2, kill, or watch a week more.</p>
|
||||
<p>Nothing is invented after the fact. Every venture links its signal, its card and its plan on <a href="https://teahub.xyz/teahubxyz/time">Teahub</a>. The pages are static; what you see is what shipped.</p>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer class="wrap">
|
||||
<span>Built by <a href="https://teahub.xyz/teahubxyz/time">Time</a>, the clock of an agent factory on <a href="https://teahub.xyz">Teahub</a>.</span>
|
||||
<span>Scout sources: <a href="https://teahub.xyz/teahubxyz/time">trending repos</a> · <a href="https://teahub.xyz/teahubxyz/notplanned">notplanned</a>.</span>
|
||||
<span>Run by <a href="https://teahub.xyz/teahubxyz/time">Time</a>, the clock of an agent factory on <a href="https://teahub.xyz">Teahub</a>.</span>
|
||||
<span>Scouts: trending repos · <a href="https://teahub.xyz/teahubxyz/notplanned">notplanned</a> (<a href="backlog.json">backlog</a>).</span>
|
||||
<span id="refreshed"></span>
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
(async () => {
|
||||
const e = s => String(s ?? '').replace(/[&<>"']/g, c => ({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));
|
||||
const abs = u => /^https?:/.test(u) ? u : null;
|
||||
const [vd, bd] = await Promise.all([
|
||||
fetch('ventures.json').then(r => r.json()).catch(() => ({ventures: []})),
|
||||
fetch('backlog.json').then(r => r.json()).catch(() => ({opportunities: []}))
|
||||
]);
|
||||
const abs = u => /^https?:/.test(u || '') ? u : null;
|
||||
const vd = await fetch('ventures.json').then(r => r.json()).catch(() => ({ventures: []}));
|
||||
const vs = (vd.ventures || []).slice();
|
||||
const order = {live: 0, building: 1, built: 2, watch: 3, killed: 4};
|
||||
vs.sort((a, b) => (order[a.status] ?? 9) - (order[b.status] ?? 9) || (b.launched || b.planned || '').localeCompare(a.launched || a.planned || ''));
|
||||
const n = s => vs.filter(v => v.status === s).length;
|
||||
document.getElementById('stats').innerHTML = [
|
||||
['ventures', vs.length], ['live', n('live')], ['building', n('building')], ['built, unlaunched', n('built')],
|
||||
['signups', vs.reduce((t, v) => t + (v.signups || 0), 0)], ['backlog', (bd.opportunities || []).length]
|
||||
].map(([k, v]) => `<div class="stat"><b>${v}</b>${k}</div>`).join('');
|
||||
document.getElementById('vsub').textContent = `${vs.length} so far. Live ones take signups; built ones never launched; building ones are on the clock.`;
|
||||
const grid = document.getElementById('grid');
|
||||
grid.innerHTML = vs.map(v => {
|
||||
document.getElementById('count').innerHTML = [['ventures', vs.length], ['live', n('live')], ['building', n('building')], ['built, unlaunched', n('built')],
|
||||
['signups', vs.reduce((t, v) => t + (v.signups || 0), 0)]].map(([k, v]) => `<span><b>${v}</b> ${k}</span>`).join('');
|
||||
document.getElementById('grid').innerHTML = vs.map(v => {
|
||||
const st = v.status || 'built';
|
||||
const card = v.card && v.source !== 'notplanned' ? `https://teahub.xyz/teahubxyz/time/issues/${v.card}` : null;
|
||||
const signal = v.signal && v.source !== 'notplanned' ? `https://teahub.xyz/teahubxyz/time/issues/${v.signal}` : null;
|
||||
const open = abs(v.url) || abs(v.pages);
|
||||
return `<article class="card ${e(st)}">
|
||||
<div class="stamp">${e(st)}</div>
|
||||
<h3 class="name">${e(v.name)}</h3>
|
||||
<div class="src"><span>${e(v.source || 'time')}</span>${v.launched ? 'launched ' + e(v.launched) : v.planned ? 'planned ' + e(v.planned) : ''}</div>
|
||||
<p class="one">${e(v.one_liner)}</p>
|
||||
${v.for_whom ? `<p class="who">${e(v.for_whom)}</p>` : ''}
|
||||
<div class="acts">
|
||||
${open ? `<a class="go" href="${e(open)}">Open ↗</a>` : ''}
|
||||
${abs(v.join) ? `<a href="${e(v.join)}">Join</a>` : ''}
|
||||
${v.pages && v.pages !== open && abs(v.pages) ? `<a href="${e(v.pages)}">Page</a>` : ''}
|
||||
${card ? `<a href="${card}">Card #${e(v.card)}</a>` : ''}
|
||||
${signal ? `<a href="${signal}">Signal</a>` : ''}
|
||||
${v.source === 'notplanned' ? `<a href="https://teahub.xyz/teahubxyz/notplanned">Source</a>` : ''}
|
||||
const card = v.card && v.source !== 'notplanned' ? `https://teahub.xyz/teahubxyz/time/issues/${v.card}` : null;
|
||||
const when = v.launched ? `launched ${v.launched}` : v.planned ? `planned ${v.planned}` : (v.source === 'notplanned' ? 'from notplanned' : '');
|
||||
return `<article class="card">
|
||||
<a class="shot" href="${e(open || '#')}">${v.shot ? `<img src="${e(v.shot)}" alt="${e(v.name)} — first screen" loading="lazy">` : ''}</a>
|
||||
<div class="body">
|
||||
<div class="row"><h3 class="name">${e(v.name)}</h3><span class="st ${e(st)}">${e(st)}</span></div>
|
||||
<p class="one">${e(v.one_liner)}</p>
|
||||
<div class="links">
|
||||
${open ? `<a href="${e(open)}">Open</a>` : ''}
|
||||
${abs(v.join) ? `<a href="${e(v.join)}">Join</a>` : ''}
|
||||
${v.sheet ? `<a href="${e(v.sheet)}">Shots</a>` : ''}
|
||||
${card ? `<a href="${card}">Card</a>` : ''}
|
||||
${v.source === 'notplanned' ? `<a href="https://teahub.xyz/teahubxyz/notplanned">Source</a>` : ''}
|
||||
</div>
|
||||
<div class="meta">${when}${v.signups ? ` · ${e(v.signups)} signed up` : ''}</div>
|
||||
</div>
|
||||
<div class="meta">${v.signups ? e(v.signups) + ' signed up · ' : ''}${v.version ? 'v' + e(v.version) + ' · ' : ''}${e(v.slug)}</div>
|
||||
</article>`;
|
||||
}).join('') || '<div class="empty">No ventures yet.</div>';
|
||||
const ops = bd.opportunities || [];
|
||||
document.getElementById('blwrap').innerHTML = ops.length ? `<table><thead><tr><th>Heat</th><th>Opportunity</th><th>Upstream</th><th>The move</th></tr></thead><tbody>` +
|
||||
ops.map(o => `<tr><td class="heat ${e(o.heat)}">${e(o.heat)}</td>
|
||||
<td><span class="t">${e(o.name)}</span><span class="s">${e(o.thesis || o.title)}</span></td>
|
||||
<td>${abs(o.source) ? `<a href="${e(o.source)}">${e(o.repo || 'source')}${o.issue ? ' #' + e(o.issue) : ''}</a>` : e(o.repo || '')}<span class="s">${e(o.signal)}</span></td>
|
||||
<td>${e(o.move)}</td></tr>`).join('') + `</tbody></table>` : '<div class="empty">Nothing scouted yet.</div>';
|
||||
document.getElementById('refreshed').textContent = vd.refreshed ? `Ledger refreshed ${vd.refreshed}.` : '';
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
After Width: | Height: | Size: 278 KiB |
|
After Width: | Height: | Size: 155 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 120 KiB |
@@ -20,7 +20,9 @@
|
||||
],
|
||||
"pages": "https://mdecks.yolopreneur.lol/",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "mdecks/shots/desktop.png",
|
||||
"sheet": "mdecks/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "docscope",
|
||||
@@ -39,7 +41,9 @@
|
||||
"launched": "2026-10-12",
|
||||
"pages": "https://docscope.yolopreneur.lol/",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "docscope/shots/desktop.png",
|
||||
"sheet": "docscope/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "doodleloop",
|
||||
@@ -58,7 +62,9 @@
|
||||
"launched": "2026-10-12",
|
||||
"pages": "https://doodleloop.yolopreneur.lol/",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "doodleloop/shots/desktop.png",
|
||||
"sheet": "doodleloop/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "dollhouse",
|
||||
@@ -77,7 +83,9 @@
|
||||
"launched": "2026-10-12",
|
||||
"pages": "https://dollhouse.yolopreneur.lol/",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "dollhouse/shots/desktop.png",
|
||||
"sheet": "dollhouse/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "anthem",
|
||||
@@ -96,7 +104,9 @@
|
||||
"signups": 0,
|
||||
"launched": "2026-10-13",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "anthem/shots/desktop.png",
|
||||
"sheet": "anthem/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "wavehello",
|
||||
@@ -115,7 +125,9 @@
|
||||
"signups": 0,
|
||||
"launched": "2026-10-13",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "wavehello/shots/desktop.png",
|
||||
"sheet": "wavehello/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "storysketch",
|
||||
@@ -134,7 +146,9 @@
|
||||
"signups": 0,
|
||||
"launched": "2026-10-13",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "storysketch/shots/desktop.png",
|
||||
"sheet": "storysketch/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "glitztype",
|
||||
@@ -153,7 +167,9 @@
|
||||
"signups": 0,
|
||||
"launched": "2026-10-13",
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "glitztype/shots/desktop.png",
|
||||
"sheet": "glitztype/shots/sheet.png"
|
||||
},
|
||||
{
|
||||
"slug": "hearthframe",
|
||||
@@ -171,7 +187,8 @@
|
||||
"status": "building",
|
||||
"signups": 0,
|
||||
"source": "time",
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "hearthframe/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "agentlore",
|
||||
@@ -183,7 +200,8 @@
|
||||
"pages": "https://agentlore.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "agentlore/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "codex-goal",
|
||||
@@ -195,7 +213,8 @@
|
||||
"pages": "https://codex-goal.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "codex-goal/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "context-curator",
|
||||
@@ -207,7 +226,8 @@
|
||||
"pages": "https://context-curator.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "context-curator/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "context-priority",
|
||||
@@ -219,7 +239,8 @@
|
||||
"pages": "https://context-priority.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "context-priority/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "finishline-supervisor",
|
||||
@@ -231,7 +252,8 @@
|
||||
"pages": "https://finishline-supervisor.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "finishline-supervisor/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "preview-sidecar",
|
||||
@@ -243,7 +265,8 @@
|
||||
"pages": "https://preview-sidecar.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "preview-sidecar/shots/desktop.png"
|
||||
},
|
||||
{
|
||||
"slug": "up-to-date",
|
||||
@@ -255,7 +278,8 @@
|
||||
"pages": "https://up-to-date.yolopreneur.lol/",
|
||||
"repo": "https://teahub.xyz/teahubxyz/notplanned",
|
||||
"signups": 0,
|
||||
"hosting": "pages"
|
||||
"hosting": "pages",
|
||||
"shot": "up-to-date/shots/desktop.png"
|
||||
}
|
||||
],
|
||||
"refreshed": "2026-10-14"
|
||||
|
||||
|
After Width: | Height: | Size: 78 KiB |