Files
WRNexusJS/examples/basic-app
ClintchizandClaude Opus 5 442a3106ed test(islands): guard zero-JS routes and single-React bundling
Two guards protect the core promise: a route with no islands emits no
assets at all, and a page with several islands keeps React in one shared
chunk.

buildIslands now writes a generated entry per island instead of passing
component sources directly. Two islands sharing a source deduped to a
single entrypoint, and output order is not guaranteed to match input
order, so island names could bind to the wrong bundle.

Island modules are excluded from the editor compiler bundle: it globs
packages/compiler/src, and island-bundle.ts calls Bun.build while
island-codegen.ts imports @wrnexus/core — neither belongs in a Node-only
VS Code artifact.

Integration assertions share one build. bun test interferes with
Bun.build's module reads after several build calls in one process, while
the same calls succeed repeatedly outside the runner; production is
unaffected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 15:50:26 +05:30
..
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-07-12 15:55:18 +05:30
2026-07-12 15:55:18 +05:30
2026-08-02 23:18:51 +05:30
2026-08-01 10:04:42 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-08-02 23:18:51 +05:30
2026-07-12 15:55:18 +05:30
2026-08-02 23:18:51 +05:30

basic-app

The reference app for WrNexus. Demonstrates every MVP feature.

app/
  pages/index.wrn       ->  GET /          (SSR + two counter components w/ props)
  pages/about.wrn       ->  GET /about     (pure SSR, zero JS)
  pages/reactive.wrn    ->  GET /reactive  (reactive directives, no component)
  pages/hello.wrn       ->  GET /hello     (.wrn language, compiled reactive page)
  api/hello.ts           ->  GET /api/hello
  api/echo.ts            ->  GET|POST /api/echo
  middleware/auth.ts     ->  runs first (alphabetical)
  middleware/logger.ts   ->  runs second
  realtime/chat.ts       ->  ws /realtime/chat
  components/counter.wrn ->  server-rendered component: data-component="counter"
  styles/global.css      ->  global stylesheet -> /__wrnexus/styles.css (every page)
public/
  favicon.ico          ->  framework default if this file is absent
  robots.txt           ->  GET /robots.txt
  site.webmanifest     ->  GET /site.webmanifest
wrnexus.config.ts         ->  global SEO + head injection + CSS processor + security/CORS config

wrnexus.config.ts shows global SEO defaults, how to use a CSS framework via CDN (head), or a real Tailwind/PostCSS build (styles.process). It also enables example CORS origins and documents the default security headers. To use an npm framework, @import it in app/styles/global.css.

app/pages/hello.wrn demonstrates a page-level .wrn seo block plus direct .wrn access to cookies, session, and the CSR localStorage snapshot.

Run from the repo root:

bun install
bun run dev      # serves this app at http://localhost:3000