One codebase. Typed end to end. Deployed in one command.
Fahhh turns a folder of API route files into a fully typed client, a route manifest, and deployable functions — automatically. No OpenAPI spec to maintain, no SDK to generate, no fetch() to write by hand.
Everything you need.
Nothing you don't.
Nothing to Commit
A typed client is generated automatically at build time from your real route files — gitignored, never hand-written, never committed to your repo.
File-System Routing
Your API routes are your endpoints. Nest files in your api folder and they become callable from the client the moment the dev server picks them up.
End-to-End Type Safety
Your client gets the exact types your server handlers declare — params, request body, and return value — inferred directly from real TypeScript. No schema library required.
Framework Agnostic Client
Works seamlessly with React, Vue, Svelte, or vanilla JS. If it speaks TypeScript, it speaks Fahhh.
First-class DX
Hover over any client call to see the exact response type — inferred straight from your real handler code, not a duplicated schema.
Lightweight & Fast
No bulky runtime on the client. Just a thin proxy wrapper around standard fetch calls, optimized for edge deployments.
Invisible RPC
Fahhh leverages TypeScript's module resolution to create a virtual API client. You get auto-completion and compile-time guarantees without writing fetch boilerplate.
export async function GET() {
return { id: 1 };
}import api from "virtual:api"
const data =
await api["/api/users"].GET()
// data is inferred as:
type Data = {
id: number
};
How it compares
| Feature | Fahhh | Next.js | Express | tRPC |
|---|---|---|---|---|
| Typed client included | Yes, built-in | No (bring your own) | No | Yes, built-in |
| Routing paradigm | File-system | File-system | Manual (app.get/post) | Object/procedure-based |
| Client code generation | None (inferred) | N/A | N/A | None (inferred) |
| Edge / Workers runtime | Yes (Cloudflare adapter) | Yes (platform edge runtime) | No (Node-only, tied to http) | Yes (via fetch adapter) |
Ready to shape the future?
Fahhh is open-source and built for the community. Whether you're fixing a bug, adding a feature, or writing documentation, we'd love to have you on board.