What TheTechStack actually runs
The most consequential choice in this stack isn’t a tool. It’s that the editorial pipeline — research, evidence-gathering, drafting, fact-checking — runs on four AI agents, and the only human in the loop is the editor. That’s not a cost hack; it’s the design constraint the whole site is built around: one person’s judgment, scaled by agents, with every claim traceable to a source.
This is post #1, so we’re starting with the only company whose stack we can label 100% confirmed: our own. Every teardown we publish gets a structured record in the stack database; ours is here.
Stack at a glance
| Category | Tool | Since | Confidence |
|---|---|---|---|
| frontend | Astro 5 | 2026-07 | confirmed |
| language | TypeScript | 2026-07 | confirmed |
| database | Flat JSON in git | 2026-07 | confirmed |
| llm-provider | Anthropic Claude | 2026-07 | confirmed |
| orchestration | Claude Code (headless) | 2026-07 | confirmed |
| hosting | Vercel | 2026-07 | confirmed |
| ci-cd | GitHub, deploy on push | 2026-07 | confirmed |
| evaluating (Buttondown vs Resend) | — | confirmed | |
| analytics | evaluating (Plausible vs none) | — | confirmed |
The agent pipeline is the product
A teardown here moves through four agents before a human touches it. A research scout scans engineering blogs, job boards, and HN for candidates — companies whose stacks are visible enough to document honestly. An evidence gatherer works the sources (eng blogs, job postings, conference talks, infrastructure fingerprints) and produces two artifacts: a citation-backed evidence file and a JSON record conforming to a strict schema with a controlled category vocabulary. A writer drafts from the evidence file only — it’s forbidden from adding facts it knows from training data, because that’s where hallucinated “common knowledge” sneaks in. Then an adversarial fact-checker re-opens every cited URL and tries to find reasons not to publish. One unsupported claim is a failed check.
The human step is deliberately unautomated: reading the fact-check report, making judgment calls on confidence labels, editing for voice, and flipping draft: false. Target budget is under three hours of human time per teardown. When a post takes longer, we fix the agents, not the post.
The agents run headlessly through Claude Code — a shell script feeds each agent its role spec and turns it loose with search and file tools. No queues, no workflow engine, no orchestration platform. A 40-line bash script is doing work that a year ago would have justified a Temporal cluster and a hiring plan.
Boring on purpose: the site
The site is Astro 5 rendering markdown to static HTML, styled by one hand-written CSS file in one layout component. No client-side JavaScript ships at all — no framework runtime, no analytics snippet (yet), no cookie banner because there are no cookies. Posts are markdown files in a git repo; publishing is git push, and Vercel rebuilds the site.
We considered Next.js and rejected it: a content site with a database that updates weekly doesn’t need server rendering, and every moving part we don’t run is a part that can’t wake anyone up at 3am. Astro’s content collections give us typed frontmatter and will happily read our records at build time. Total infrastructure bill: $0/month plus a domain and a Claude subscription.
A database that lives in git
The stack database — the thing we think becomes most valuable over time — is currently a directory of JSON files, one per company, validated against a JSON Schema with a controlled vocabulary of tool categories. Every tool entry carries a status (current / previous / evaluating), a confidence label (confirmed / inferred / reported), and at least one piece of evidence: URL, source type, quote, access date.
Flat files in git are the right database for a dataset this size: full history for free, diffs as an audit log, pull requests as a correction mechanism. The plan — stated here so you can hold us to it — is to move to SQLite around 50 records, when cross-company queries (“show me everyone who migrated off Pinecone”) start earning their keep, and to generate per-tool pages from the data after that.
What’s not decided yet
We’re launching without a newsletter and without analytics, which is a strange thing for a media site to admit. Newsletter is down to Buttondown vs Resend — the deciding factor will be API ergonomics for the distribution agent that formats each teardown into an email. Analytics is Plausible vs nothing for a while longer; subscriber count and inbound conversations matter more to us right now than pageviews. When we decide, the record updates, and this post gets an update note. That’s the deal we’re offering every company we cover, so it applies to us first.
What we’d watch
Whether the JSON-in-git database survives contact with 50+ records, whether the fact-checker keeps catching the writer’s occasional invented context as models improve, and whether zero-JS survives the temptation to add interactive stack-comparison views. Watch this record: thetechstack.
Sources & methodology: this one’s first-party — the stack is ours, so everything is labeled confirmed. Research on other companies is assisted by AI agents, verified and edited by a human. Confidence labels: confirmed / inferred / reported. Spot an error? We correct publicly.