Behind the masthead
Colophon
A note on how Sift is built — the stack, the people, the principles.
Masthead
Edited and built by Kristen Martino, who holds editorial responsibility for everything published here — including AI-generated text.
Article summaries, story synthesis, per-outlet framing lines and background primers are generated by Claude (Anthropic). Dossiers on outlets, politicians, organizations and bills are compiled from public records. Bias and factual-reporting ratings are the work of AllSides and Media Bias/Fact Check, surfaced verbatim — Sift never computes its own. See the methodology for how each of those works.
Set in
Sift is set in Fraunces and Hanken Grotesk, with DM Mono for labels and captions, served from same-origin via next/font. The cover star is a vector diamond, sized to scale across PWA icons, OG cards, and tab favicons.
- Next.js 15Frontend & App Router on Vercel
- FastAPI + LangGraphPipeline & comparison workflow on Railway
- Postgres + pgvectorArticles, stories, embeddings, bookmarks
- Claude (Anthropic)Summarization, story synthesis, comparison
- Voyage AIEmbeddings for semantic topic search
- ClerkAuth & user management
- Tailwind CSSDesign system & theming
- next/fontSelf-hosted Fraunces, Hanken Grotesk & DM Mono
Architecture
Browser → Vercel (Next.js) → Neon Postgres (pgvector)
↑
+— /api/compare ————→ Railway (FastAPI + LangGraph)
↑
+— cron / 10 min ———→ Railway → writes to PostgresPrinciples
- Articles load in under 50ms — AI processing happens in the background, not when you read.
- Works without an account — sign in only if you want bookmarks synced across devices.
- Graceful degradation: every feature works independently, so one slow service never blocks the page.
- 72 curated outlets are ingested, deduplicated, and ranked every 30 minutes before you open the app.