Skip to content

The Technology Stack

This part covers the technologies that make up the Webflo stack.

Platform APIs

Webflo is deeply integrated with how the web already works. It leans on standard web platform APIs so your code stays portable and predictable. Key platform APIs used by Webflo include:

FeatureWhy it mattersLink
RequestNetwork primitive for making outgoing requests.MDN
ResponseRepresentation of responses returned from network requests.MDN
HeadersStructured metadata for requests and responses.MDN
StreamsEnables streaming bodies for incremental rendering and transfer.MDN
URLRobust URL parsing for canonicalization and routing.MDN
URLPatternRoute pattern matching for routing logic.MDN
DOMNative markup primitives for composing and rendering UI.MDN
<template> elementReusable template primitive for composition and SSR/CSR.MDN
ReadableStreamIncremental consumption of streaming data.MDN
WritableStreamIncremental production of streaming data.MDN
Service Worker APIBackground routing, caching, and offline capabilities.MDN
MessageChannelBidirectional messaging for realtime/background features.MDN
FormDataNative type for multipart form uploads and form handling.MDN
BlobBinary data container for transfers and file blobs.MDN
FileRepresents filesystem-backed file uploads.MDN

The Observer API

Reactivity in Webflo is powered by the Observer API — a lightweight, general-purpose API for observing JavaScript objects and arrays.

With the Observer API unlocking observability at the object and array level, no special interfaces or wrappers are needed for reactivity anywhere in the stack. Webflo simply runs on bare objects, bare arrays, and the concept of mutation — all plain JavaScript primitives. For a framework, this sets a new benchmark in just using the language — one we intend to preserve.

As a developer, you get a clean technology stack that's all just plain objects and arrays too - stripped of special programming interfaces like WebfloStore, WebfloReduxAdapter, WebfloReactiveProxyThingAdapter, etc. Often these exist in other frameworks as a means to reactivity, guarded with measures against mutability since that breaks their reactive model.

By making mutation a first-class concept, as it is in JavaScript itself, Webflo helps you see the world as it is — dynamic, mutable, powerful, free.

Meet the Observer API →

OOHTML

OOHTML is the lightweight, buildless markup layer Webflo uses for composing UI. Its role in the stack is simple and decisive: make HTML modular, importable, and data-aware so authors can ship interactive apps without a heavy toolchain.

How it simplifies everything:

  • Buildless composition: authors write plain HTML (templates + imports) instead of compiling a new component language — fewer build steps, fewer surprises.
  • Portable markup: the same template files work for SSR and CSR, so your UI source is the single truth.
  • Low cognitive load: conventional HTML authoring, with a few additive conventions (imports, def/ref, scoped styles/scripts) instead of an entire framework DSL.
  • First-class data plumbing: OOHTML directly binds to your app's document.bindings and the Observer API for hydration and reactive updates.

What OOHTML gives you (at a glance):

  • Declarative HTML imports and modular templates — reuse without build tooling.
  • Namespacing, and style and script scoping to avoid global collisions.
  • Comment-based and inline data binding that degrades cleanly in SSR.
  • Imperative import APIs for dynamic or lazy module loading.

Meet OOHTML →

MIT Licensed