Pre-Launch Next.js And Astro Cost-Trap Linter That Flags Unbounded ISR, Greedy Image Optimization, And Edge-Function Fan-Out Before They Generate The First Vercel Bill
Vercel's Spend Management caps the bleeding at $200 by default but only after you've already shipped the cost trap... unbounded ISR pages, image optimization without a sane limit, edge functions that fan out to N origins, or middleware that runs on every static asset. The gap is a linter (npm run check-cost) that reads your next.config.js, your route handlers, your loaders, your image components, and your middleware, then emits a 'this configuration will cost roughly $X/month at the traffic profile in your last analytics report' alongside the specific lines to fix. Static-time analysis only, no runtime probe required.
Skip the Vercel API. Read the project config statically, pair it with the user's existing analytics CSV (Plausible, GA exports work fine), and output a single 'estimated monthly bill if you ship today' number. That number is what wins on Hacker News. The line-by-line fix suggestions are what gets you paid.
landscape (3 existing solutions)
Reactive budget alerts and 'just use Cloudflare' guides are the only options today. There's no static-analysis tool that reads a Next.js/Astro codebase and predicts cost shape against a traffic estimate before a single byte ships.