Skip to content

Glossary

A comprehensive guide to Minimact terminology, concepts, and the vocabulary of the Posthydrationist movement.


Community

Minimalist

noun | /ˈmɪnɪməlɪst/

A developer who uses Minimact. More than just a user label - it's an identity that represents a commitment to building reactive UIs with minimal code, minimal JavaScript, and maximum control.

"I'm a Minimalist" means: I don't need 45KB of JavaScript to build reactive UIs. I don't need hydration waterfalls. I build with intention, not bloat.

Usage:

  • "Hey Minimalists! Check out the new Quantum Stack extensions."
  • "As a Minimalist, I ship features 3x faster than with traditional frameworks."
  • "The Minimalist community values performance over bundle size."

Posthydrationist

noun | /poʊst-haɪˈdreɪʃənɪst/

A developer who embraces the Posthydrationist philosophy: rejecting client-side hydration in favor of server-first architecture with predictive rendering. All Minimalists are Posthydrationists, but the term encompasses the broader movement beyond just Minimact.

See also: Posthydrationist Manifesto


Core Concepts

Hydration

noun | /haɪˈdreɪʃən/

Traditional definition: The process of attaching JavaScript event handlers to server-rendered HTML, making it interactive.

Minimact perspective: An unnecessary tax that duplicates logic, delays interactivity (150-300ms), and bloats bundles. Minimact eliminates hydration entirely.

Example:

Traditional: Server renders HTML → Client downloads React → Hydrate (150-300ms) → Interactive
Minimact:    Server renders HTML → Client applies patches (2-3ms) → Interactive ✨

Predictive Rendering

noun | /prɪˈdɪktɪv ˈrɛndərɪŋ/

Minimact's revolutionary approach where a Rust engine predicts likely UI state changes and pre-computes DOM patches before the user even triggers them. When the predicted state occurs, patches are applied instantly from the HintQueue (0-1ms).

How it works:

  1. Rust observes patterns: "When count = 9, it often becomes 10 next"
  2. Pre-computes patches for count = 10
  3. Sends patches to client's HintQueue
  4. User clicks increment → 🟢 CACHE HIT! Apply in 0-1ms

Performance: 99% faster than traditional reactive updates.

Patch

noun | /pætʃ/

A minimal DOM operation sent from the server to the client. Instead of sending full HTML or reconciling a Virtual DOM, Minimact sends surgical patches like "set attribute X to Y" or "append child Z".

Types:

  • setAttribute - Change an attribute
  • removeAttribute - Remove an attribute
  • appendChild - Add a child node
  • removeChild - Remove a child node
  • replaceChild - Replace a child node
  • setTextContent - Update text content

Example:

typescript
// User clicks button, server sends:
{
  type: 'setAttribute',
  selector: '#counter',
  attribute: 'data-count',
  value: '10'
}

HintQueue

noun | /hɪnt kjuː/

Client-side cache that stores pre-computed patches from the Rust predictor. When state changes, the client checks the HintQueue first before making a network request. Cache hits result in 0-1ms updates with zero network latency.

Cache hit rate: Typically 80-95% in production applications.


Architecture

VNode

noun | /ˈviː noʊd/ (Virtual Node)

Minimact's lightweight representation of a DOM element on the server. Unlike React's Virtual DOM (which exists on both client and server), Minimact's VNodes only exist on the server and are used to compute patches.

Example:

csharp
new VNode("div", new { className = "card" },
    new VNode("h2", "Title"),
    new VNode("p", "Content")
)

SignalR

noun | /ˈsɪɡnəl ɑːr/

Microsoft's real-time communication library used by Minimact for bidirectional state sync between client and server. Maintains a persistent WebSocket connection.

Usage in Minimact:

  • Client → Server: State changes, events, hook results
  • Server → Client: Patches, predicted patches, component updates

Bundle

noun | /ˈbʌndəl/

A behavioral anchor in minimact-bundle that applies attributes, classes, or styles to arbitrary DOM elements matching a CSS selector - without wrapper divs.

Example:

typescript
registerBundle("hero", ".hero h1, .hero p, button");
useBundle("hero", { class: "fade-in" });

Revolutionary concept: Behavior decoupled from structure.


Quantum Stack Extensions

minimact-punch 🥊

DOM as Reactive Data Source

Extension that provides useDomElementState() - transforming the DOM into a comprehensive reactive state system with 80+ queryable properties (intersection, mutations, size, pseudo-states, theme, performance metrics).

Philosophy: The DOM is not just output - it's input.

minimact-query 🗃️

SQL for the DOM

Extension that brings full SQL syntax to DOM querying: SELECT, WHERE, JOIN, GROUP BY, HAVING, ORDER BY, aggregate functions, and set operations.

Philosophy: The DOM is a queryable relational database.

minimact-quantum 🌌

Quantum DOM Entanglement

Extension that enables identity sync across clients through mutation vectors. Not data sync - IDENTITY sync. The same element exists in multiple locations simultaneously.

Philosophy: The DOM is a distributed shared reality.

minimact-bundle 🎯

Declarative DOM Selector Primitives

Extension that provides registerBundle() and useBundle() for applying behavior to arbitrary DOM elements without wrapper divs.

Philosophy: The DOM is a declarative puppet.

minimact-spatial 📐

Spatial Computing for the Web

Extension that treats the viewport as a 2D queryable database. Query spatial regions with properties like coverage, element density, and intersection ratios.

Philosophy: The DOM is a 2D spatial database.

minimact-trees 🌳

Universal Decision Trees

Extension that provides declarative state machines with automatic key parsing. XState but minimal and predictive.

Philosophy: The DOM is a state machine runtime.


Performance Terms

Cache Hit

noun | /kæʃ hɪt/

When a predicted patch exists in the HintQueue and can be applied immediately (0-1ms) without a server round-trip.

Example: User increments counter from 9 to 10 → Rust predicted this → 🟢 CACHE HIT!

Cache Miss

noun | /kæʃ mɪs/

When a state change wasn't predicted and requires a server round-trip to compute patches (5-15ms).

Still fast: Even cache misses are 10x faster than traditional hydration.

Time to Interactive (TTI)

noun | /taɪm tuː ɪntərˈæktɪv/

How long before users can interact with the page.

Comparison:

  • React SSR: 150-300ms (hydration)
  • Minimact: 2-3ms (no hydration)

Bundle Size

noun | /ˈbʌndəl saɪz/

Amount of JavaScript sent to the client.

Comparison:

  • React 18: 45KB gzipped
  • Vue 3: 34KB gzipped
  • Minimact: 13.33KB gzipped (70% smaller)

Component Patterns

MinimactComponent

class | /ˈmɪnɪmækt kəmˈpoʊnənt/

Base class for server-side Minimact components written in C#. Created by transpiling JSX/TSX or written directly.

Example:

csharp
public class Counter : MinimactComponent
{
    protected override VNode Render()
    {
        return new VNode("div", "Hello Minimalists!");
    }
}

State Sync

noun | /steɪt sɪŋk/

The process of synchronizing state between client and server via SignalR. Client-side hooks (like useDomElementState()) automatically sync their results to the server, where components read them during rendering.

Flow:

Client: useDomElementState() evaluates → Result
    ↓ SignalR
Server: State["domElementState_0"] = result
    ↓ Re-render
Server: Compute patches based on new state
    ↓ SignalR
Client: Apply patches

Hook Index

noun | /hʊk ˈɪndɛks/

Zero-based index used to track multiple instances of the same hook in a component. First useDomElementState()domElementState_0, second → domElementState_1, etc.

Why needed: Multiple hook calls must maintain stable identities across renders.


Philosophy Terms

Posthydrationism

noun | /poʊst-haɪˈdreɪʃənɪzm/

The architectural philosophy that rejects client-side hydration in favor of server-first rendering with predictive patches. Core principles:

  1. Server-first, always - Logic lives on the server
  2. Patches over reconciliation - Direct DOM updates
  3. Prediction over reaction - Pre-compute likely states
  4. Bundles over wrappers - Behavior without structure pollution
  5. Minimal over maximal - 13KB does what 45KB used to
  6. State sync over hydration - Real-time updates, zero bootup cost

See: Posthydrationist Manifesto

Minimal Code, Maximum Control

phrase | /ˈmɪnɪməl koʊd ˈmæksɪməm kənˈtroʊl/

The Minimact motto. Achieve more with less: less JavaScript, less complexity, less latency - but more power, more performance, more developer joy.

DOM Domination

phrase | /dɑːm dɑːmɪˈneɪʃən/

The Minimact approach to the DOM: not just rendering to it, but making it a first-class reactive data source, spatial database, and distributed system.

Structure ≠ Behavior

principle | /ˈstrʌktʃər ɪkwəlz bɪˈheɪvjər/

Core Minimact insight: HTML structure (elements, hierarchy) should be decoupled from behavior (styling, interactivity, state). Achieved through bundles and declarative primitives.


Abbreviations

TermFull NameDescription
TTITime to InteractiveHow long before page is interactive
SSRServer-Side RenderingRendering HTML on the server
VDOMVirtual DOMIn-memory representation of DOM (Minimact doesn't use this on client)
HQHintQueueClient-side cache for predicted patches
MESMinimact Extension StandardsCertification system for extensions
JSXJavaScript XMLDeclarative syntax for UI components
TSXTypeScript XMLTypeScript version of JSX

Common Phrases

"Never hydrate. Always Minimact."

The official Minimalist slogan. The battle cry of the Posthydrationist movement.

  • NEVER HYDRATE - Reject client-side hydration entirely
  • ALWAYS MINIMACT - Choose server-first architecture with predictive rendering

Used at conferences, on banners, in team spaces, and wherever Minimalists gather. This isn't just a tagline - it's a declaration of architectural intent.

"Never hydrate"

The core Minimact principle: eliminate hydration entirely by using patches and predictive rendering.

"The DOM is no longer a view layer"

Philosophical statement: The Quantum Stack transforms the DOM into a queryable, reactive, distributed database.

"Patches over reconciliation"

Technical principle: Send surgical DOM updates instead of reconciling Virtual DOMs.

"Server-first architecture"

Architectural pattern: Logic lives on the server, client is a thin patch applier.

"0-1ms on cache hit"

Performance claim: Predicted state changes apply instantly from HintQueue.

"13KB runtime"

Bundle size: Minimact client runtime is 70% smaller than React.

"Opening a portal" 🌌

What minimact-quantum does: Creates quantum entanglement between DOM elements across physical space.

"The viewport is a 2D database"

What minimact-spatial enables: Querying spatial regions as reactive data sources.


Anti-Patterns (What Minimalists Avoid)

Wrapper Div Hell

anti-pattern

Wrapping elements in unnecessary divs just to apply styles or behavior. Minimalists use bundles instead.

typescript
// ❌ Wrapper hell
<div className="fade-in">
  <h1>Title</h1>
</div>

// ✅ Minimalist approach
registerBundle("hero", "h1");
useBundle("hero", { class: "fade-in" });
<h1>Title</h1>

Client-Side State Duplication

anti-pattern

Maintaining the same state on both client and server. Minimalists use state sync - server is the source of truth.

Hydration Waterfalls

anti-pattern

Loading JavaScript → Parsing → Executing → Hydrating → Finally interactive (150-300ms).

Minimalists skip this entirely: Patches → Interactive (2-3ms).

Bundle Bloat

anti-pattern

Shipping 45KB+ of JavaScript for basic interactivity. Minimalists ship 13KB total.


Historical Context

Pre-Minimact Era

Before 2025, developers had to choose:

  • SSR frameworks (slow interactivity)
  • SPA frameworks (slow initial load)
  • "Islands architecture" (complexity)

Post-Minimact Era

After 2025, Minimalists have both:

  • ✅ Instant initial render (SSR)
  • ✅ Instant interactivity (patches + prediction)
  • ✅ Minimal complexity (13KB runtime)

Resources


Contributing to the Glossary

Found a term that should be added? Open an issue or PR on GitHub with:

  • Term - The word or phrase
  • Definition - Clear, concise explanation
  • Example - Code or usage example
  • Related terms - Cross-references

Welcome to the Minimalist community! 🌵✨

Released under the MIT License.