Web APIs, from the route-up.
Webroute helps you build self-sufficient, web-standard routes that have everything they need: path, method, I/O shape and validation, middleware and request handler.
It was invented to make building sophisticated APIs easier in the diverse ecosystem of serverless (but also serverful) full-stack and backend development.
Webroute was heavily inspired by tRPC, but built specifically for HTTP. So if you're a fan of either, you'll probably like webroute.
A basic webroute might look something like this:
import { route } from "@webroute/route";
const myRoute = route("/user/:id")
.use(authMiddleware)
.params(z.object({ id: z.string() }))
.handle(async (req) => {
// ...do work
});
Which is just a regular web-standard request handler:
const response = myRoute(new Request("..."));
Being web-standard and self-sufficient, it can be used directly, with no modification, with popular frameworks like Next.js
, and Hono
or within runtimes like bun
, deno
and node.
Read the Quick Start.
Webroute provides the functionality of a full-blown framework, without being one. Instead, it offers a handful of packages which can be selectively installed to fill in the gaps, when your use case requires it.
Webroute is "full-stack", in the sense it provides utilities and patterns for both the client-side and server-side. However, these client- and server-side tools are not dependent on the other - one can be used without the other.
Webroute works with all runtimes or frameworks that conform to the WinterCG Minimum Web Standard.
Hono
Next.js
Remix
SolidStart
SvelteKit
Bun
Deno
Node
(via adapter)Cloudflare Workes
Vercel Edge