NOQERI / FOUR WEB PATHS
Web code that finds its own path.
Noqeri now offers four distinct development modes. Two native static/browser builds generate assets without Node.js; native server actions run locally; the experimental Node-hosted view compiler supports a broader subset. None implies a production-qualified public HTTP server.
← THE FULL FIELD GUIDE01 / Native static: zero client JavaScript
The C++17 native web compiler emits pre-rendered HTML/CSS from Noqeri routes, themes and first-party UI components. Serve the output with any normal static host. There are no client-side on.click actions in this mode.
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target noqeri-web
./build/noqeri-web build examples/native_web_static dist/siteNATIVE STATIC CODE ↗02 / Native browser-client: no Node at build time
The NEW native build-client subset supports literal routes, state and persisted nonsecret browser preferences, click events, components, static pre-rendering and hydration. The C++17 renderer generates browser JavaScript: Node-free compiling is not JavaScript-free browsing. Unsupported advanced view features fail closed.
./build/noqeri web build-client examples/native_web_client dist/browserNATIVE CLIENT SOURCE ↗CLIENT SECURITY AND LIMITS ↗03 / Native server actions: loopback preview
serve-app renders form and button actions as server-authoritative HTML POSTs, with route-scoped CSRF/session protection and optional same-origin hydration. NOQERI_WEB_REACTIVE=1 enhances it with browser navigation and incremental updates; default behavior works with JavaScript disabled.
./build/noqeri web serve-app examples/native_web_actions 8080
# Optional progressive enhancement:
NOQERI_WEB_REACTIVE=1 ./build/noqeri web serve-app examples/native_web_actions 8080NATIVE ACTION EXAMPLE ↗04 / Experimental browser view DSL
The separate Runtime/web-project.mjs builder uses Node.js 22+ at build time and compiles view blocks into browser ES modules, supports additional browser subscriptions and external JS interop. Eligible deterministic static routes are pre-rendered and hydrated; dynamic request SSR is not implemented by this builder.
node Runtime/web-project.mjs examples/web_view dist/experimentalBROWSER WEB REFERENCE ↗OPEN SITE PLAYGROUND ↗05 / A Noqeri-authored reactive view
This is source for the supported view subset, not a claim that all four modes compile the same grammar. The browser runtime still executes browser-standard JavaScript generated by the chosen compiler.
let count = 0
view {
h1 { "Hello from Noqeri" }
p { "Count: " + count }
button on.click { count = count + 1 } { "Click me" }
}06 / UI, databases and realtime
Lib/web/ui.noqeri supplies components such as Heading, Card, Panel, forms and theme tokens. Native server database adapters may use NoeSQL, SQLite, PostgreSQL, DuckDB, MySQL, Supabase, Firebase or Neon when built/configured. The native preview server does not host WebSocket upgrades; browser subscriptions require a separate same-origin server.
DATA AND DATABASES ↗UPSTREAM WEB QUALIFICATION ↗