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 GUIDE

01 / 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/site
NATIVE 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/browser
NATIVE 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 8080
NATIVE 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/experimental
BROWSER 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 ↗
BUILD SOMETHING REAL WITH NOQERI.OPEN THE PLAYGROUND ↗