# The `.wrn` language vision `.wrn` is a planned single-file component language for WrNexus. One file can declare page state, view markup, SSR/client data bindings, styles, and realtime handlers, and the compiler lowers all of it to the TypeScript primitives the runtime already understands. Business logic should live in normal `app/api` route files; `.wrn` data bindings call those routes and render the response. ## Example ```my page Home { state count = 0 ssr { api users GET /api/users { return users.map((user) => user.name).join(", ") } } client { api latestUsers GET /api/users/latest { return users.map((user) => user.name).join(", ") } } view {

Hello

Loading users...
Loading latest users...
} realtime chat { on message(data) { broadcast(data) } } } ``` ## Lowering targets | `.wrn` construct | Compiles to | | ----------------------------------------- | ------------------------------------------------------- | | `state x = 0` | a `data-scope` seed hydrated by the reactive runtime | | `view { ... }` | a page component returning an SSR HTML string | | `@click="count++"` | a `data-on-click` binding in the reactive runtime | | `{count}` | a mustache text binding evaluated against `data-scope` | | `ssr { api users GET /api/users { } }` | server-side API call + HTML replacement before response | | `client { api users GET /api/users { } }` | opaque CSR binding resolved through `/__wrnexus/csr` | | `realtime chat { }` | a `websocket` export in the realtime router | ## Pipeline ``` .wrn source ──▶ tokenizer ──▶ parser ──▶ AST ──▶ codegen ──▶ .ts ──▶ Bun runtime ``` The MVP now includes tokenizing, parsing, and code generation for a small real subset. Future milestones can add richer expressions, typed data contracts, component composition, and a safer custom expression evaluator.