Roadmap · status & plan · June 2026

v0 is live. Now make it real, make it self-running, then own launch days.

The demo is shipped and public: a leaderboard and full entity pages, on real X volume, at ai-mindshare.pages.dev. The roadmap from here is concrete: swap the mock for real model-graded enrichment, make it refresh itself on a schedule, widen the field, then build the differentiators and the archive nobody can backfill.

✓ v0 shippedv1 · real & self-runningv2 · differentiatorseach phase independently shippable

Shipped · v0 (live now)

Built as 12 gated PRs in Niftory/ai-mindshare-sift. The Build Log tracks each.

The pipeline (real)
  • Monorepo: contracts (zod + the voice model + leak check), scores (Vibe + Launch), collector (X v2, fixture, budget guard), enrich (LLM client + prompts + validator), rollup. 79 tests.
  • Real X data: live counts + recent-search, spam filtering, normalization. The leaderboard's volumes and the launch-spike charts are real.
  • Orchestrator → schema-valid, leak-free index.json + per-entity summary.json.
The site (live)
  • TanStack Start static SPA: leaderboard + full entity pages (what-people-say, themes with facets/verdicts, voices tabs, owned-vs-organic, capability scorecard, good/bad-at tags, threads, launch score).
  • Sift brand-book 4-theme switcher, mobile-optimized, streamlined copy.
  • Runtime decided: scheduled GitHub Actions on Ubicloud + R2 + D1.
Honest gap: enrichment in v0 is complete-mock (Fable 5 hand-analyzed; others believable) so the full product is visible now. Author-dependent surfaces use sensible defaults. v1 makes both real.

Phases

v0shipped

The demo, end to end ✓

Prove the whole shape with a live, themed, tested site on real volume. Done: see "Shipped" above.

Done when ✓
  • Live URL with a real leaderboard + entity pages
  • Real X volume + the pipeline producing valid public JSON
  • Themed, mobile, tested (79-test suite over the data)
v1next

Real & self-running

Turn the demo into a product: replace the mock with model-graded enrichment, make it refresh itself with no human in the loop, widen to the real field, and go public under a name.

Ships
  • Real LLM enrichment via BAML: one typed, schema-enforced batched call (like the main Sift repo); sentiment, themes, capabilities, tags, verdicts, the consensus summary, all model-generated on a fast model
  • Author enrichment: identity + affiliation → real voices, relationship split, threads (replaces v0 defaults)
  • Scheduled Actions on Ubicloud → R2; the site fetches R2 so a data refresh never rebuilds the site; idempotent re-runs
  • D1 working set: dedup, classification cache, hourly counts, entity state, events
  • ~20 verified entities across model / open-weight / lab / product; full-archive bootstrap each
  • Launch-mode state machine (manual flag + counts z-score) with the 30-min cadence
  • Methodology + "How we're open" pages; public registry repo (PRs welcome); score-formula packages
  • Name + domain, remove noindex, OG cards per entity

Needs: dedicated X app keys (have), LLM key (have), a "will anyone care" pass on the registry, the name/domain call. Done when: the site refreshes itself hourly with real model-graded sentiment across 20 entities, zero manual steps, methodology public.

v2after v1

The differentiators

The analytics nobody else has, and the surfaces that bring traffic: theme intelligence, capability search, the benchmarks-vs-vibes gap, and the launch archive.

Ships
  • Theme pages (/themes/<topic>): trajectory, facets, verdict, voiced-by, vs-the-field; cross-model view ("who gets roasted on pricing")
  • /good-at/<tag> search + pages ("which model is good at openclaw") — the biggest organic-traffic surface
  • The Gap: benchmarks-vs-vibes scatter (artificialanalysis axis, attributed)
  • Launches archive + day-0 compare; editorial launch reads (auto-drafted, human-edited)
  • Builder sentiment series (~300-account panel); Vibe Score v2 builder-weighting
  • Change feed + ticker; amplification events; owned-vs-organic toggle on every panel

Needs: the multi-entity registry (v1), a capability-index source + attribution, builder-panel curation. Done when: a real launch runs in launch-mode with a live read + day-0 compare, and the /good-at pages are indexable.

v3later

Moat & distribution

Compound what can't be backfilled, and let the data market itself.

Candidates
  • The launch archive as the historical record nobody else has, browsable across launches
  • An X account auto-drafting chart posts for approval; embeddable badges (mindshare / launch score) for blogs + press
  • Downloadable JSON as infrastructure (researchers build on it); a documented schema
  • Second source: news / licensed web alongside X (never Reddit until licensing allows)
  • Registry community contributions graduating to tracked; revisit the open-source call with real operating data

What we still need to vet

v0 deliberately mocked the hardest parts so the product was visible fast. Here's the honest list of what's unproven, by priority. Blocking = decide/verify before public launch; Important = before v1 is trustworthy; Later = monitor.

AreaThe unknownHow we vet itPriority
X contract Resolved. X gave written approval to run this separate public property on the Sift enterprise token, with three conditions: summary data, summary content, and embeds only. The architecture already meets the conditions: the leak rule keeps public JSON to IDs + aggregates (no raw text/handles), and tweet content renders only through official X embeds. No transport swap needed. Cleared
Query precision Do the alias queries actually capture the right conversation? "cursor" matched only 195 (under-matching narrow phrases); generic names risk homonyms. Garbage in = garbage rankings. Per-entity precision audit: an LLM (or human) judges a sample "is this actually about <entity>?" Tune aliases + guards until precision ≥ 90%. Publish the query strings so others can correct them. Blocking
Enrichment quality Real LLM sentiment/themes/capabilities never validated on real tweets (v0 is rule-based mock; the 550B free model was too slow). Does a fast model classify well? Which model? Run real enrichment on the captured Fable 5 sample, eyeball accuracy vs the text, A/B a few fast models (Gemini Flash / Haiku / a fast OpenRouter free). Wire via BAML (one typed batched call). (Starting this now.) Blocking
Sentiment meaning The 87%-neutral problem: news-sharing reads neutral, so is the Vibe Score signal or noise? Is "+9 net" meaningful? Validate the score against a human read of a labeled set; lean on the builder-sentiment series (less neutral) and net-of-neutral framing. Calibrate once 5+ entities exist. Important
Author classification The whole voice model (identity + affiliation → voices, owned-vs-organic, threads) depends on classifying authors from bio/handle. Accuracy + per-author LLM cost both unproven. Hand-label ~50 real authors, measure precision; cache aggressively (30d) so cost is one call per new author. Registry official-handles short-circuit the obvious ones. Important
The self-running loop Scheduled Actions → R2 publish → site fetches R2 never run end to end. R2 public access, CORS, manifest atomicity, D1-over-HTTP working set: all unexercised. Wire it on one entity, watch a few cycles, confirm the live site updates with no rebuild. This is the core of v1. Important
Real cost @ 20 entities Budget was estimated, not measured: X reads (counts + content + author + thread pulls) + LLM tokens at hourly cadence across 20 entities, with launch-mode spikes. Measure one real day at 20 entities; reconcile the X ledger vs the dev console; confirm it fits the cap with the per-entity guards on. Important
Registry quality Which entities are real and worth tracking? The seed has placeholder model names; field medians + the leaderboard are only as good as the list. A "will anyone care" pass: verify names/aliases/handles, pick the ~20 that actually have conversation, before bootstrap pulls. Important
X embeds live v0 links out to posts; the real product renders official X embeds (widgets.js), which flake and must degrade. The no-stored-text compliance path runs through embeds. Render embeds on the entity page with the 4s fallback card; test with widgets.js blocked. Pre-render oEmbed for reads. Later
Launch-Score calibration Is 87 a "good" launch? The score percentiles against an archive that doesn't exist yet, so early numbers are uncalibrated. Use the log-ratio fallback until 5+ launches are archived, then switch to percentile and re-state historicals with a version bump. Later
Demand + name Will people actually use and share a sentiment leaderboard? And the property still has no name/domain (blocks public launch). The fable-5 prototype got real traction as a signal; the true test is launch-day on X. Name/domain is a call in Open Questions below. Later
The X contract is cleared (written approval, summary + embeds only). The one gate left is data correctness: query precision and real-LLM enrichment quality. Everything else is engineering we know how to do, and the product surfaces are now built (see Build Log).

Launch-day playbook

The property's whole reason to exist is being great for 72 hours at a time. This is the operating procedure per major launch; most of it is automated, the human steps are bolded.

WhenWhat happens
T−1 dayAdd/verify the entity in the registry (aliases incl. rumored names, official handles, guard terms). Flip the launch flag with a 72h window. Pipeline warms: full-archive bootstrap if new, baseline captured for the z-score.
T0Launch mode kicks to 30-min cadence automatically. The Launch tab goes live on the entity page: day-0 curves, provisional Launch Score, past-launch overlay. All of this is guaranteed and human-free. Editorial decides whether the story warrants a read; if yes, the auto-draft is open within 4 hours.
T0 → T+72hScore subscores update each refresh; change feed narrates the arc (day 1 is novelty, day 2 is pricing, day 3 is verdicts). If a read is live, its data blocks re-hydrate and editorial does one pass per day. Charts posted to the X account (v3: auto-drafted).
T+72hLaunch mode decays to elevated, then baseline. The Launch Score locks (durability subscore lands) and the fingerprint freezes into /launches. If a read exists, editorial freezes it with the final verdict. The entity's Now tab keeps rolling on the leaderboard either way.
Surprise launches: the z-score trigger catches them within ~2 hours and pages the editorial channel (Slack webhook). The cost of being 2 hours late to a surprise is low; the cost of polling everything at launch cadence forever is not.

How it explodes

This isn't "build it and hope it's shared." The growth is structural: it's the only source for this view, the data is inherently a screenshot, the people it measures are incentivized to amplify it, and model launches are recurring viral events the property owns. The job is to be great for 72 hours at a time.

Why it can actually blow up (not hopium)
  • Unique data, zero competition for the screenshot. Nobody else publishes mindshare + sentiment + who-said-what. When a launch happens, ours is the only chart.
  • The subjects amplify it. Labs reshare when sentiment is good; builders reshare being named a top voice; everyone argues when they look bad. Measuring people makes them post.
  • Launches are a built-in attention spike every few weeks. We don't manufacture virality; we show up where it already is, with the numbers.
  • Transparency earns the skeptics. Downloadable JSON + public query strings survive Hacker News and researcher scrutiny, which is where credibility (and the biggest shares) come from.
The shareable artifacts (built to be screenshots)
  • The Launch Score as a quotable number: "Fable 5 debuted at 87, the strongest open since GPT-5."
  • The Gap (benchmarks vs vibes): the contrarian, debate-bait chart. "Models people love that benchmarks underrate."
  • Superlatives: biggest mover, most polarizing, most overrated/underrated this week. Rankings invite quote-tweets.
  • OG cards on every page, so sharing a URL is sharing the chart.

The channel playbook

Same data, a few audiences, a few formats. X + Hacker News + AI newsletters are the engine; the rest amplify.

ChannelWhy it fitsThe plays
𝕏 / Twitter
home turf
The conversation we measure lives here, and the accounts being ranked are on it. Native audience, native amplifiers. Launch-day war room: live charts in real time ("hour 6: #2 mindshare, vibe 78, builders +40, pricing complaints climbing"). @-mention the subjects so labs + builders engage. Top-voices flywheel: featured builders reshare. An auto-posting account (@-handle) for daily movers + launch updates, charts auto-drafted, human-approved. Reply with receipts under hype threads.
Hacker News
Show HN, launch-day threads
The technical-credibility crowd: builders, eng leaders, founders. Loves data, open methodology, and a contrarian-but-rigorous take. A front-page hit is a launch by itself. Show HN on a launch day: "the only real-time sentiment data on the [model] launch," leading with the methodology + downloadable JSON. The Gap chart (benchmarks vs vibes) is peak HN debate fuel. A data-rich write-up per major launch. Win the comments with rigor, not marketing.
LinkedIn
DevRel, comms, founders, analysts
The professional + buyer audience. Thought-leadership format, and the people who watch their own launch are the warmest Sift leads. A recurring "AI model power rankings" / "state of AI sentiment" digest. "How did [model] launch land?" by-the-numbers posts for comms/DevRel. Founders + execs share when their product ranks well. "Powered by Sift" funnels to pipeline.
AI newsletters
TLDR AI, The Rundown, Ben's Bites, Last Week in AI, Import AI
The single highest-leverage channel for this audience. These reach hundreds of thousands of exactly-right readers and are always hungry for a chart and a number. Being the cited source is recurring, compounding distribution. Become the standing data source. Pitch a launch chart + the Launch Score to the big AI newsletters on every major launch; make it copy-paste easy (OG image + one-line stat + link). A weekly "mindshare movers" they can syndicate. One feature in TLDR AI is worth more than a month of posting.

Amplifiers (secondary, still worth it): YouTube / creator syndication — feed launch-reaction creators (Matt Wolfe, Wes Roth, Theo, Fireship-tier) the charts for their day-one videos; they credit the source on camera. Product Hunt — a one-time spike for the property's own launch, good for the initial "what is this" moment. Bluesky / Threads — cross-post the X content; low cost, the AI crowd is migrating partially. Targeted AI Discords — drop launch data where builders already gather, softly. None of these are the engine; X + Hacker News + newsletters are.

The growth loops

Compounding
  • Citations loop: journalists need a number with a name. Frictionless downloadable JSON + a stable methodology page → "according to [name]" → distribution + authority → more citations.
  • Subject-amplification loop: measuring labs + builders makes them post (vanity when up, defense when down).
  • SEO loop: /good-at/<tag> pages capture "best model for X" search permanently.
  • Embeddable badges: mindshare / vibe-score badges labs + blogs embed → backlinks + passive reach.
Guardrails (so it doesn't backfire)
  • Stay data-grounded. Report the numbers; don't editorialize drama. The credibility is the moat; one bad-faith take burns it.
  • Astroturf calls must be airtight. Only flag amplification the data proves; "the lab is astroturfing" is a nuke, used carefully.
  • Don't astroturf ourselves. No sockpuppet seeding anywhere; the open data is the value, let it get found.
  • Punch with rigor, not snark. "Most overrated" is debate-bait that works only if the methodology behind it is bulletproof.

Cold-start: how to actually ignite it

1 · Launch on a launch

Don't debut into silence. Ship the property the day a big model drops, when attention is already peaked.

2 · Pre-load the artifact

Have the Gap chart or a killer launch read ready; post from a credible account (founder / Sift), tag the top voices featured on the page.

3 · Own launch day

Live charts, @-mention the lab, reply to the hype with data. Then a Show HN the next day, LinkedIn that week.

4 · The bot carries it

Between launches, the auto-posting account keeps the cadence: daily movers, weekly state-of-vibes. Always-on engine.

The one-line strategy: own model-launch days on X with the only real-time sentiment data that exists, let the people we measure amplify it, back it with methodology rigorous enough for Hacker News, and turn every chart into a citation. The recurring launch calendar is the growth engine; we just have to be great for 72 hours at a time.

Success metrics

HorizonMetricTarget
v0Pipeline uptime through one full week + parity with the hand-built fable-5 numbers7 days unattended, numbers reconcile
v1 launchUnique visitors in launch week; at least one unsolicited citation10k visitors; 1 citation
First tracked launchTraffic during a 72h launch window; screenshots of our charts circulating on X50k visitors; visible organic sharing
QuarterPress/newsletter citations; Sift-attributed inbound demos5 citations/mo; measurable demo source tag
Two quartersThe coined metric escapes the site: "Launch Score" or "the Gap" quoted without us prompting it1 unprompted use in coverage or a lab's own comms

Cost to operate

LineMonthlyNotes
X API$0 (Enterprise) · ~$2.4k equivalent pay-per-useFull math in Technical; per-entity caps enforced
LLM classification~$50-150~500k posts/mo through a flash-tier model, batched, cached
Cloudflare (Workers, R2, D1, Pages)~$20-50Static-first design keeps this near the floor
Domain + misc~$10
Total< $250/mo on our contractsThe expensive ingredient is editorial attention on launch days, by design

Open questions

Resolved during the build

Site framework → TanStack Start (static SPA), not Astro. Runtime → scheduled GitHub Actions on Ubicloud, not Cloudflare Workers. Storage → R2 (raw + published JSON) + D1 over HTTP (working set); no Postgres. Repo posture → private machine, public registry. Themes → the Sift brand-book 4-theme token system. All live in the shipped v0.

1 · Name and domain

leaning VibeBench, with ModelPulse as the safe fallback. Candidates and rationale in Product. Needs a call + domain purchase before v1.

2 · Open source or not · decided: private machine, public registry

The pipeline and site stay private: anti-gaming rules don't survive publication, and the collector must be swappable to cheaper transports without the swap being visible. The entity registry ships as a small public repo for community alias/entity PRs, and the methodology page carries the full audit surface. Details in Technical.

3 · Collection transport over time

leaning start on Enterprise (paid for, official), shadow-test the cheap collector on 2-3 entities during v1, swap content pulls when parity clears ~95%. Counts can stay official as the reference series. The Collector contract makes the swap a config change, invisible externally.

4 · Who edits the reads

leaning reads ship only when the story warrants one, so the question shrinks to "who makes that call and does the daily pass during a launch." The Launch tab + score are guaranteed without anyone; a named owner per launch covers the rest.

5 · v1 entity list

~20 slots across the four vectors. Draft list exists in the registry section of Product; needs a final pass for "will anyone care" and alias/guard quality before bootstrap pulls.

6 · The Gap's capability axis

leaning artificialanalysis index with attribution (reach out; the chart is free marketing for them too). LMArena Elo as fallback; sentiment-only ranking if neither is usable. Also: builder-panel curation needs an initial 300-account pass and a public inclusion rule.

Execute: the agent build pack

Everything a coding agent needs to build v0 → v1 without re-deriving a single decision lives in build/: the master brief with build order and gates, then one spec per subsystem, plus real-data fixtures and the registry seed.

FileContents
README.mdAgent brief: constraints (privacy boundary, leak rule, budget guards), 9-step build order with gates, v0/v1 scope, definition of done
01-repo-scaffold.mdWorkspace layout, Cloudflare resources (R2/Queues/D1/crons), D1 schema, conventions
02-data-contracts.mdRegistry, NormalizedPost, Classification, and all five public artifacts as exact types; the leak rule as a test
03-collector.mdCollector interface, X API endpoints/params/limits, pull recipe, hard budget guards, shadow-swap harness
04-enrichment.mdTheme vocabulary with definitions, the actual classification/author/summary prompts, validator rules, spam heuristics, amplification detection
05-rollups-scores.mdWindow rollups, vibe-score.v1 and launch-score.v1 as exact math, change-event triggers, state machine, atomic publish
06-site.mdAstro pages/components mapped to the mockups, hydration + polling model, embed strategy + fallback, OG cards, quality bar
07-acceptance.mdCI gates, fixture reconciliation tolerances, mockup-parity check, the 7-day live soak
fixtures/ · registry-seed.jsonReal June 9 Fable 5 capture (trimmed, private-shape) + 21-entity registry seed (placeholder names flagged for verification)