Skip to content

afx-team/evjs

Repository files navigation

evjs

npm CI DeepWiki Vibe Coding

React fullstack framework with file-based SPA routes, router-free MPA pages, server functions, and a Hono server runtime.

ev = Evaluation · Evolution — evaluate across runtimes, evolve with AI tooling.

⚡ Features

  • Convention over Configurationev dev / ev build, no boilerplate needed.
  • Page Routessrc/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 FetchingTanStack 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 ErrorsServerError flows structured data server → client.
  • Multi-RuntimeHono-based server with Node, Deno, Bun, Edge adapters.
  • CLIev dev · ev build · ev inspect

🚀 Quick Start

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 Framework API, config, plugins, and build orchestration (defineConfig, dev, build)
@evjs/cli Thin CLI wrapper (ev dev, ev build, ev inspect) with the default bundler
@evjs/create-app Project scaffolding (npx @evjs/create-app)
@evjs/client Browser runtime core for standalone CSR, page hooks, navigation, transport, and RSC
@evjs/server Server runtime core for Hono/fetch apps, server functions, routes, rendering, and deployment
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 · AGENTS.md · AGENT.md

🛠️ Development

npm install          # deps
npm run build        # all packages + examples
npm run test         # vitest
npm run test:e2e     # playwright

📄 License

MIT © Ant UED