Skip to main content
React full-stack framework

evjs

Build around pages, not framework plumbing

File-based pages, optional server code, per-page rendering, and deployable output in one predictable application model.

src/pages
pages/
├── page.tsx                 # /
└── products/
    └── $productId/
        ├── page.tsx         # /products/:productId
        ├── page.config.ts
        └── get-product.server.ts

// page.tsx
export default function ProductPage() {
  return <Product />;
}

Core concepts that grow with your application

Directories define page URLs

Put page.tsx in the directory for its route and keep the page's components, data, and tests nearby.

Render page by page

Start with CSR, then choose SSR, SSG, PPR, or RSC only for pages that need a different delivery model.

Call server functions

Export typed operations from a "use server" module and call them from application code.

Expose web-standard APIs

Create HTTP endpoints with file routes, uppercase methods, and standard Request and Response values.

Extend with typed plugins

Configure plugins once for the application and opt pages into their typed behavior where needed.

Deploy across runtimes

Deploy browser-only apps as static sites, or target Node.js, edge, and split-origin architectures.