liquid

module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2026 License: Apache-2.0

README

A Golang front-end framework optimized for agentic delivery.

Server-driven UI in Go: an Angular-style component model, LiveView-style interactivity over fetch + SSE, and ahead-of-time template compilation that doubles as a guardrail for AI-generated code — structured build diagnostics feed straight back to the generating agent.

The example dashboard — a live market ticker, a server-rendered SVG chart, a click counter, an SSE-pushed metric, and a CSRF-protected form, all driven from Go over fetch + SSE.

Status: v1.0.0 — production-ready. The core runtime, the .lsx compiler, the dev server, and the liquidtest harness, plus production serving (graceful shutdown + SSE draining), health/metrics, forms & validation, in-place DOM morphing, and auth — with a full example app in examples/dashboard. Built on 30 settled design decisions (D1–D30) and 7 ADRs. The public API is committed — backward-compatibility guarantees begin at 1.0 (semver). Ships single-node; the durable/multi-node session store is additive on the roadmap. See the changelog, deployment guide, and limitations.

Quickstart

New to Liquid? The Getting-started guide takes you from an empty machine to a running, interactive component you built yourself — install the CLI, scaffold a component with liquid generate, wire a minimal app, then build a click counter and a value the server pushes live over SSE. No prior Liquid knowledge assumed; every command is copy-pasteable.

Limitations: Liquid is single-node (in-memory sessions; multi-node needs sticky sessions) and SSE-only; the durable/multi-node store and WebSocket transport stay additive on the roadmap. See what Liquid does not do yet before adopting.

Documentation

License

Apache-2.0 — see LICENSE.

Directories

Path Synopsis
cmd
liquid command
Command liquid is the Liquid CLI: the ahead-of-time (AOT) template compiler, the component scaffolder, the dev server, and the editor language server.
Command liquid is the Liquid CLI: the ahead-of-time (AOT) template compiler, the component scaffolder, the dev server, and the editor language server.
liquid/internal/compiler
Package compiler implements the Liquid AOT template compiler.
Package compiler implements the Liquid AOT template compiler.
liquid/internal/desktop
Package desktop embeds the Liquid desktop shell's source so that `liquid build --target=desktop` can compile it on any machine, without needing the Liquid repository checked out on disk.
Package desktop embeds the Liquid desktop shell's source so that `liquid build --target=desktop` can compile it on any machine, without needing the Liquid repository checked out on disk.
liquid/internal/ergobench
Package ergobench is the Tier B agent-ergonomics harness (ADR-0001, #71): it drives the generate → build → feed-diagnostics-back → repair loop against a task corpus and scores the result with the manifest structural oracle, with no human in the scoring loop.
Package ergobench is the Tier B agent-ergonomics harness (ADR-0001, #71): it drives the generate → build → feed-diagnostics-back → repair loop against a task corpus and scores the result with the manifest structural oracle, with no human in the scoring loop.
liquid/internal/lsp
Package lsp implements the liquid language server: a minimal Language Server Protocol implementation over a byte stream (liquid lsp serves stdio) giving editors live LSX diagnostics, hover, completion, go-to-definition, and document highlights for .lsx templates.
Package lsp implements the liquid language server: a minimal Language Server Protocol implementation over a byte stream (liquid lsp serves stdio) giving editors live LSX diagnostics, hover, completion, go-to-definition, and document highlights for .lsx templates.
Package liquid is the Liquid runtime: a server-driven UI framework with an Angular-style component model and LiveView-style interactivity.
Package liquid is the Liquid runtime: a server-driven UI framework with an Angular-style component model and LiveView-style interactivity.
examples
dashboard command
Command dashboard is the D17 example app: one page exercising every Liquid v0.1 subsystem — a (click) counter, an SSE-pushed live metric, a nested card fed by [input] bindings, a guarded route, and a CSRF-protected (submit) form — plus a live market ticker and a server-rendered SVG chart, both pushed over SSE from shared subjects.
Command dashboard is the D17 example app: one page exercising every Liquid v0.1 subsystem — a (click) counter, an SSE-pushed live metric, a nested card fed by [input] bindings, a guarded route, and a CSRF-protected (submit) form — plus a live market ticker and a server-rendered SVG chart, both pushed over SSE from shared subjects.
dashboard/ui
Package ui holds the dashboard's components — the directory liquid build compiles.
Package ui holds the dashboard's components — the directory liquid build compiles.
fantasy command
Command fantasy is a Liquid example: a live fantasy-football league dashboard.
Command fantasy is a Liquid example: a live fantasy-football league dashboard.
fantasy/ui
Package ui holds the fantasy-football example's components — the directory liquid build compiles.
Package ui holds the fantasy-football example's components — the directory liquid build compiles.
Package liquidtest is the Liquid component test harness (D23): render a component through a real App, query the resulting HTML, fire allowlisted actions, and assert on the returned patch or envelope.
Package liquidtest is the Liquid component test harness (D23): render a component through a real App, query the resulting HTML, fire allowlisted actions, and assert on the returned patch or envelope.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL