Auth, real-time chat, file storage, email, and a visual editor built in. Plus file-based routing, server loaders, SSR, and API routes. Everything you need to ship, nothing to configure.
// pages/dashboard.ts - auth, data, and real-time in one file export const auth = true; // login required export function loader({ user }) { const db = useDb(); return { name: user.name, stats: db.all('SELECT * FROM stats'), }; } const msgs = ['Hello from the server', 'Data pushed via SSE']; let count = 0; export function subscribe({ push }) { setInterval(() => push({ time: new Date().toLocaleTimeString(), count: ++count, message: msgs[count % msgs.length], }), 1000); } export class Dashboard extends LitElement { name; // ← from loader time; // ← from subscribe message; // ← from subscribe render() { return html`<h1>Hi ${this.name}</h1> <p>${this.time}</p> <p>${this.message}</p>`; } }
OIDC + native email/password with PKCE, encrypted sessions, token refresh, email verification, and password reset. Zero-config login pages.
Built-in chat, WebRTC voice/video calls, typing indicators, read receipts, and end-to-end encryption. All over Socket.IO.
Local or S3-compatible storage (AWS, Cloudflare R2, MinIO) with presigned uploads and downloads. No server proxy needed.
Send transactional email via SMTP, Resend, or SendGrid. Built-in templates for verification, password reset, and welcome emails.
Role-based access control with route guards, resource-level permissions, and audit logging. Protect loaders and API routes declaratively.
Click-to-select elements, edit properties and styles in a panel, inline text editing, and an AI assistant. All in the browser.
Drop a .ts file in pages/ and it becomes a route. Dynamic params, catch-all routes, and nested layouts.
Export a loader() function from any page. Runs on the server with full Node.js access, passes data to your component.
Pages render on the server for instant first paint, then hydrate on the client for full interactivity.
Export a subscribe() function to push real-time data via SSE. Co-located with your page, no separate server needed.
Create api/*.ts files that export GET, POST, PUT, DELETE handlers. Full request parsing with file uploads.
SQLite out of the box, PostgreSQL via DATABASE_URL. Same useDb() API for both. Auto-migrations, parameterized queries, and transactions.
Create _layout.ts files in any directory. Layouts nest automatically and persist across client-side navigation.
Place _middleware.ts files alongside pages. They nest like layouts. Security headers, rate limiting, and CORS built in.
Built-in i18n with locale-prefixed URLs, JSON translation files, HMR updates, and automatic locale detection.
Structured logging, health checks, graceful shutdown, request tracing, and security headers. All built in for production deploys.
One command to scaffold. Auth, database, real-time, and storage ready out of the box. Focus on your product, not plumbing.
Read the docs