Hello World NANO
Your first WildflowerJS component. State, binding, and actions in 10 lines.
Real applications built with WildflowerJS. Pick an area, or filter by feature.
Your first WildflowerJS component. State, binding, and actions in 10 lines.
Reactive state updates with computed properties, two-way model binding, and configurable step size.
A complete interactive widget in one HTML file, powered by the smallest Nano build. Computed totals, two-way inputs, reactive styling, and a conditional message.
A single-file clock with a smooth analog sweep on requestAnimationFrame, a digital view, and a timezone picker.
Note: Nano builds do not include data-list, the core list reactivity you get with the Mini build and above, so this demo shows how to get a reactive list without it. The city wall clones a plain <template> by hand and the framework picks up each new city automatically.
A live-filtering list. The data is an array in state, a computed filters it, and the list body is re-stamped from a <template> on each keystroke.
Note: Nano builds do not include data-list, the core list reactivity you get with the Mini build and above, so this demo shows how to get a reactive list without it.
Reactive lists with input binding, filtering, item actions, and computed counts.
Declarative writes against a server with an added delay. Every change shows on screen first, temp ids are replaced by server ids on confirm, and an armable reject switch shows field-level rollback live, with the rejected write reverting while an overlapping one stays. A server-computed work estimate comes from an async computed, and persisted rows paint instantly on reload.
Opens as a server-rendered status page and adopts it. Services, incidents, and the notice are read back out of the HTML with no loading flash, then stay live on polling, focus, and reconnect refreshes. You are the on-call operator. Status flips, incident posts, and resolves all write straight back, with temp ids, tombstone deletes, and an armable rejection to watch rollback happen. Open a second window to act as a second operator.
Ana and Ben share one table as independent data-query clients over the same server, converging through invalidateQueries after every settled write. Field-level claims let a star and a rename on the same row settle independently, an intent journal makes undo just another write, and persisted rows paint both panels instantly on reload. DataTables renders the grid.
Opens as a server-rendered page. The KPI header and orders table are adopted from the HTML and kept live by data-query, with append pagination, tombstone deletes, and machine values carried in data-seed. A pool-rendered bar chart, latency scatter, and traffic heatmap run alongside on the same data, with no chart library.
Complete SPA with client-side routing, product catalog, shopping cart, checkout flow, and toast notifications.
A personal project manager you can use for real. Your data persists in your browser via IndexedDB and stays across visits. Export to JSON for backup, or reset to demo data any time. Includes list and board views, status groups, priorities, assignees, labels, sub-issues with rollup, comments with reactions, saved views, favorites, command palette, keyboard nav, and more.
Full-featured kanban with drag-and-drop, modals, animated transitions, search filtering, and localStorage persistence.
Play chess against a minimax AI with adjustable difficulty. Board themes, piece sets, move list, captured pieces, and undo, all managed by WildflowerJS.
Multi-store architecture with real-time chart updates, computed metrics, and theme switching. Static data pools render the user table and activity feed, updated by explicit calls with no reactive overhead.
Classic BASIC-era resource management game. Buy land, feed your people, plant crops, survive 10 years as ruler of ancient Sumeria.
3,000 ships flocking in 3D space via Three.js InstancedMesh. WildflowerJS drives the HUD and scanner overlay, and Three.js reads component state directly through the context proxy. There is no wrapper, adapter, or glue code between them.
800+ autonomous agents at native frame rate. Spatial grid neighbor search, multi-flock coloring, predator/prey dynamics, and canvas trails. Every boid is a DOM element.
Strange attractors rendered as pure DOM particles at native frame rate. Four presets (Lorenz, Aizawa, Thomas, Halvorsen), 3D rotation, depth-mapped color, radial glow. Every particle is a pool-driven div.
Rotatable 3D molecules from PubChem. Ball-and-stick, space-fill, wireframe modes. Half-colored bonds, zoom scaling, and z-index depth sorting, all in CSS with no WebGL.
Full tower defense on data-pool. Entities are plain objects flushed on requestAnimationFrame, with no proxy overhead. SVG sprites are pre-rasterized at load, since Chrome re-decodes an SVG on every src change. Every enemy, tower, and projectile is a DOM element. Based on svelte-tower-defence by Ivan Semochkin (SvelteHack 2024).
The same game on push-based data-list. Entities are tracked by the WildflowerJS reactive proxy, and the SVG sprites are pre-rasterized at load. Every entity is a DOM element. Based on svelte-tower-defence by Ivan Semochkin (SvelteHack 2024).
700 bodies with O(n²) gravitational physics computed in a 295-byte WASM module. The pool reads positions from shared linear memory each frame. Click to place attractors. Every body is a DOM element.
Multi-species physarum simulation rendered entirely in DOM. 4,000 invisible agents sense and deposit pheromone trails on a grid of 5,400 data-pool tiles. A headless store steps the simulation in tick(), and the component only renders. Mouse over the grid to paint food.
Inspired by Sage Jenson's 36 Points and Etienne Jacob's interactive-physarum. Both are licensed under CC BY-NC-SA 3.0; this demo inherits the same terms.
A transmission grid simulated down to the wires. Stations are draggable pool cards, and the conductors are drawn on a canvas and sag as load heats them. Breakers, dispatch, weather, and cascading trips.
A live telemetry table of 500 to 2,000 aircraft, each reporting up to twenty times a second. The table is a pool in targeted mode, so only the rows marked dirty are written. Flights run from departure to arrival, and filtering, sorting, and selection are ordinary reactive state.
A music player whose visualizer is made of DOM. Web Audio drives 128 bars, peak caps, and a bass glow, each an ordinary element styled in CSS. Linear, radial, SVG arc, and kaleidoscope modes, with the SVG pools templated inside the <svg>.
Enterprise data tables with sorting, pagination, and reactive components injected into table cells.
jQuery delegation alongside data-action, jQuery DOM mutations on elements managed by WildflowerJS, and a no-build boilerplate, all live on one page. The two libraries share the DOM without conflict.
A swapped-in fragment initializes itself with no wildflower.scan() call, hx-get and data-bind-attr share the same button, and hx-boost navigation survives a full body swap, with no extra wiring.
WildflowerJS integrates with Web Awesome 3.x's Shadow-DOM-encapsulated custom elements via wildflower.registerAdapter(). Two-way binding with data-model across six widget types, plus programmatic state updates pushed through the adapter's property and event mapping.
Trip planner combining interactive maps, calendar scheduling, and sortable task lists, with no wrapper packages.