TanStack Start
1.168.32React SSR meta-framework: file-based routing, server functions, server routes.
Open Source · Tech Stack
Every framework, library, and tool this site runs on, grouped by what it's for. Versions track package.json as of the last update.
React SSR meta-framework: file-based routing, server functions, server routes.
UI library. React Compiler is enabled -- most manual useMemo/useCallback were removed.
Automatic memoization, wired in via @rolldown/plugin-babel since Vite 8’s React plugin is Rolldown-based, not Babel-based.
Build tool and dev server, Rolldown-powered bundler under the hood.
Static typing across the whole app -- strict mode, no `any`.
Package manager and local dev runtime (the deployed app runs on Cloudflare Workers’ own runtime, not Bun).
File-based routing, type-safe navigation and search params.
Data fetching and caching, warmed server-side on every route loader.
Reactive live queries (useLiveQuery) over a collection synced from the Query cache -- powers instant search filtering.
Column definitions and pagination for the reports table.
Row virtualization -- only visible table rows are mounted in the DOM.
The "Report a Scammer" submission form, with per-field Zod validators.
Shared search/pagination filter state across the table and URL.
Debounces the search input before it hits the live query.
The deploy target -- every route (pages, server functions, and server routes like sitemap.xml/og.png) runs as one Worker.
SQLite database holding every scammer report -- the only external dependency this app has.
Runs a real Workers runtime (via Miniflare) inside Vite's dev server and build pipeline.
Cloudflare CLI -- local D1 migrations, deploy, type generation.
Utility-first CSS -- almost all styling is Tailwind composition, not custom classes.
Back the cn() helper (src/lib/cn.ts) for conditional/overriding class names.
Special Elite (display/typewriter), Source Serif 4 (body), IBM Plex Mono (data/labels) -- also self-hosted as TTFs for the OG image renderer.
The `prose` plugin, styling the rendered Markdown case files served to agents.
Schema validation on the report submission form, client and server.
Validates phone numbers and derives each report’s ISO country code from its calling code.
Generates the local seed dataset (scripts/seed.ts) -- a dev-only dependency.
Rust engine (native on Bun, WebAssembly on Workers) that renders every page’s og:image from JSX, on request, per page.
Powers the remote MCP server at /mcp -- the same buildTools() list backs both this and the in-browser MCP tools.
Builds an mdast tree and serializes it to Markdown for the per-report and llms.txt/llms-full.txt routes, so reporter-submitted text is escaped correctly.
Lint + format in one tool -- no ESLint, no Prettier.
Unit/component tests, run against a dedicated Vitest-only Vite config.