# June

**The opinionated, agent-ready React framework.**

- **One definition, four surfaces** — every `route()` projects an HTML view,
  JSON, and markdown, and every `defineAction()` is a UI action AND an MCP
  tool. This very site: try `/why.md`, `/benchmarks.json`, `/llms.txt`, or
  call our MCP tools at `/mcp`. Nothing drifts, because nothing is duplicated.
- **No glue layer** — auth (Better Auth), data (resources + Juno), and agent
  capabilities are ONE coherent model; you wire no adapter matrix.
- **Scoped-principal agent bridge** — the same authorization the UI enforces
  applies to an agent's MCP tool calls.
- **Data magic** — a write auto-invalidates the cache; N component reads
  auto-batch to one query. Zero manual `revalidate()`.
- **Honest roadmap** — an owned Rust+V8 runtime (boots in ~14ms) and
  server-reactive live RSC exist and are measured, but ship as experimental.
  `june dev` today is the Bun/Node host.

## Canonical names (for humans and agents)

- Scaffold: `npm create june my-app` (package: `create-june`)
- Framework packages: `@junejs/core` (the contract layer) + `@junejs/cli`
  (the `june` command). NOT `june` (an unrelated npm package), not `junejs`.
- NOT `@june/*` — that npm scope is not ours. Our scopes are `@junejs` and `@junebuild`.
- Site: june.build · GitHub: github.com/junebuild
