File-based routing
Drop a file in src/pages, get a route. Nested folders, dynamic segments, and API routes are automatic.
x is a React framework where your folder structure is the router, your API lives beside your pages, and everything runs in one Bun process, from static to server-rendered.
Type a file path and watch it resolve to a live route against the real server. That's the whole framework, in one console.
Drop a file in src/pages, get a route. Nested folders, dynamic segments, and API routes are automatic.
Prerender marketing pages, SSR dashboards. Both on the same route, same process.
REST endpoints beside your pages. Shared types, same process, no separate server.
Loaders, params, and server functions stay typed end to end, from framework to component.
Interactive components hydrate in place. Only what you mark as an island loads client JS.
Static sites, SSR, API, and server functions run in one process. No microservices, no orchestration.
Scaffold, install, and run. No separate API service to wire up, no bundler config to tune before the first page renders.
$bun create thexjs-app@latest my-appAvailable templates:default Blank slate, a single home page. (recommended)basic Pages, API, auth, dashboard.blog Markdown content collections.saas Dashboard, pricing, data layer.Choose a template (default): █$cd my-app && bun run dev[x] dev server running at http://localhost:3000
Hit start, then ship the instant the build is ready.
Most stacks make you wait for the build. Start one, then ship the instant it's ready. See how close you can get to zero.
Read the docs, scaffold a project, and ship from a single home page or a full-stack starter.