The file-based Node.js backend framework with worker-powered runtime isolation.
Build APIs with magic, speed, and Type Safety by default.
Build your first Lithia app in seconds:
npx create-lithia@latest my-app
cd my-app
pnpm install
pnpm devLithia uses a clean, file-based routing convention. No boilerplate, just focus on your logic.
// src/app/routes/hello/route.get.ts
import type { RouteHandler } from "@lithia-js/core";
const Hello: RouteHandler = async (_, res) => {
return res.json({ message: `Hello, World!` });
}
export default Hello;
// Available at: GET /hello- Intuitive Routing: Method-based file naming (
.get.ts,.post.ts) for automatic route registration. - Worker-Powered Runtime: HTTP, events, bootstrap, and async task execution run with explicit runtime boundaries.
- Async Tasks: Native
executeTask()anddispatchTask()APIs for isolated background execution. - Full-stack Ready: Native support for WebSockets, Better Auth, OpenAPI/Scalar, and Drizzle-friendly templates.
- Modern Stack: Ships with Biome and TypeScript pre-configured for the best DX.
Everything you need to know is at lithiajs.org/docs.
- Discussions: GitHub Discussions
- Contribution: We love PRs! See CONTRIBUTING.md
- Sponsor: Support the magic on OpenCollective
Lithia is MIT licensed. Built with ❤️ by Lucas Arch and the community.