Skip to content

afx-team/evjs

Repository files navigation

evjs

npm CI DeepWiki Vibe Coding

React fullstack framework with file-based SPA/MPA pages, server file routes, server functions, and independent client/server runtime cores.

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.).
  • Server File Routessrc/apis maps Request/Response method modules to HTTP endpoints.
  • 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, build orchestration, deployment helpers, and file-convention authoring subpaths
@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 Standalone/manual browser runtime core
@evjs/server Standalone/manual server runtime core for Hono/fetch apps and route primitives
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 file-convention authoring APIs from @evjs/ev/page, @evjs/ev/request, or @evjs/ev/transport. @evjs/client and @evjs/server remain independent standalone/manual runtime packages for apps that intentionally own those surfaces directly.

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