https://github.com/afx-team/evjs
React full-stack framework, built on TanStack + Hono.
https://github.com/afx-team/evjs
edge full-stack hono react routing rpc server-functions server-rendering tanstack zero-config
Last synced: 1 day ago
JSON representation
React full-stack framework, built on TanStack + Hono.
- Host: GitHub
- URL: https://github.com/afx-team/evjs
- Owner: afx-team
- License: mit
- Created: 2026-02-12T06:16:08.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-06-10T05:30:24.000Z (13 days ago)
- Last Synced: 2026-06-11T05:06:22.541Z (12 days ago)
- Topics: edge, full-stack, hono, react, routing, rpc, server-functions, server-rendering, tanstack, zero-config
- Language: TypeScript
- Homepage: https://afx-team.github.io/evjs/
- Size: 2.4 MB
- Stars: 19
- Watchers: 0
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# evjs
[](https://www.npmjs.com/package/@evjs/cli)
[](https://github.com/evaijs/evjs/actions)
[](https://deepwiki.com/evaijs/evjs)
[](https://en.wikipedia.org/wiki/Vibe_coding)
React fullstack framework with file-based SPA routes, router-free MPA pages, server functions, and a Hono server runtime.
> **ev** = **Ev**aluation · **Ev**olution — evaluate across runtimes, evolve with AI tooling.
## ⚡ Features
- **Convention over Configuration** — `ev dev` / `ev build`, no boilerplate needed.
- **Page Routes** — `src/pages` is the client route source of truth.
- **SPA and MPA Modes** — SPA is generated from `src/pages` with typed page hooks; MPA emits independent router-free pages.
- **Data Fetching** — [TanStack Query](https://tanstack.com/query) with built-in proxies.
- **Server Functions** — `"use server"` directive, auto-discovered at build time.
- **Pluggable Transport** — HTTP, WebSocket, or custom via `ServerTransport`.
- **Plugin System** — extend builds with custom loaders (Tailwind, SVG, etc.).
- **Programmatic Route Handlers** — Standard Request/Response REST API endpoints via `createRoute()`.
- **Typed Errors** — `ServerError` flows structured data server → client.
- **Multi-Runtime** — [Hono](https://hono.dev/)-based server with Node, Deno, Bun, Edge adapters.
- **CLI** — `ev dev` · `ev build` · `ev inspect`
## 🚀 Quick Start
```bash
npx @evjs/create-app my-app
cd my-app && npm install
ev dev
```
After `ev dev`, your browser opens to `http://localhost:3000` with hot module
replacement. Server functions in `*.server.ts` files are auto-discovered — no
config needed.
## 🏗️ Packages
### Public entry points
| Package | Purpose |
|---------|---------|
| [`@evjs/ev`](./packages/ev) | Framework API, config, plugins, and build orchestration (`defineConfig`, `dev`, `build`) |
| [`@evjs/cli`](./packages/cli) | Thin CLI wrapper (`ev dev`, `ev build`, `ev inspect`) with the default bundler |
| [`@evjs/create-app`](./packages/create-app) | Project scaffolding (`npx @evjs/create-app`) |
| [`@evjs/client`](./packages/client) | Browser runtime core for standalone CSR, page hooks, navigation, transport, and RSC |
| [`@evjs/server`](./packages/server) | Server runtime core for Hono/fetch apps, server functions, routes, rendering, and deployment |
| [`examples/`](./examples) | Starter templates |
Internal modules such as manifest schemas, build tools, page runtime, and shell
live inside the public packages above instead of separate application-facing
packages. Application code imports framework composition APIs from `@evjs/ev`
and runtime APIs from `@evjs/client` or `@evjs/server`. Browser-only apps can
use `@evjs/client` without depending on `@evjs/ev`.
See [ARCHITECTURE.md](./ARCHITECTURE.md) · [AGENTS.md](./AGENTS.md) · [AGENT.md](./AGENT.md)
## 🛠️ Development
```bash
npm install # deps
npm run build # all packages + examples
npm run test # vitest
npm run test:e2e # playwright
```
## 📄 License
MIT © [Ant UED](https://xtech.antfin.com/)