Pre-launch hardening
Rate limiting on the API and MCP runtime, per-project killswitch, maintenance-mode banner, real health probes, and shared timeouts on all external calls.
We tightened the boring-but-critical parts before public launch. Every public endpoint is now rate-limited with sliding windows backed by Upstash: signup, sign-in, forgot-password, tool-test, and every MCP tool call.
Both services ship with Helmet security headers and expose real /health/ready probes that check Redis + Postgres. Load balancers can now pull an unhealthy instance instead of routing to a zombie.
Admins can flip a maintenance flag that blocks write operations and paints an amber banner on every frontend. Individual projects can be disabled with one click if they start behaving badly.
Every external call (Etherscan, Sourcify, CoinGecko, RPCs, resource URLs) now goes through a shared retry+timeout wrapper with exponential backoff, so a single slow provider can't stall a tool call.