Showcase · MADE:Explorations

Universal App

A personal operating environment you can have a conversation with.
Describe what you want. Get a working app. Modify everything with natural language.

Active Development · LLM-Native
May 2026 · samschillace/universal-app
The Problem

The intent gap

🚫

Users Can't Build

Non-technical people have clear ideas for tools they need — project trackers, CRMs, expense trackers — but no way to create them without developers.

🧩

Low-Code Is Still Code

Low-code platforms trade text for UI but still expose programming concepts: variables, conditionals, loops, API wiring. Complexity shifts, it doesn't disappear.

💬

AI Generators Are One-Shot

Current AI app builders generate artifacts on demand. "Make me a chart" → here's a chart. That's generation, not an environment you live in and evolve.

The boundary between "using an app" and "building an app" should dissolve. Users should start with something that works — and evolve it by talking to it.

The Insight

Worse is better
for LLMs

Every successful universal platform won by being simpler than the thing it replaced:

The Historical Pattern

  • Unix beat complex OSes with "everything is a file"
  • HTML beat rich formats with angle brackets
  • Spreadsheets beat custom software with a grid
  • SQLite beat client-server DBs with a single file
  • Markdown beat word processors with plain text

The Litmus Test

"If an LLM can't reliably read it, modify it, and explain what it did in one turn, it's too complex."

The representation must be so simple that modification is boring. YAML files. Flat lists. Spreadsheet formulas. No ASTs. No component trees.

The Solution

Intent → App

Universal App is a designed application — opinionated, polished, immediately useful — that happens to be infinitely malleable through conversation.

Rich By Default

Users never see an empty canvas. They start with complete, designed experiences — a Command Center, Project Space, Research Notebook — that work out of the box.

🗣️

Conversationally Addressable

Every element — every block, behavior, design token, layout decision — can be referenced, modified, and explained through natural language.

🔄

Behaviors Are First-Class

Automations aren't hidden scripts. A morning briefing, an alert rule, a reactive binding — all visible, inspectable, conversationally modifiable.

The user opens it and sees a beautifully designed command center for their day. They use it. It works. Then they say "move my calendar to the left" and it just... changes. The boundary between using and building dissolves.

— ARCHITECTURE.md, Core Vision
Architecture

Five layers, one substrate

The AI and the user interact with the same YAML substrate through different interfaces. Both are first-class citizens.

5

Design System

Tokens, constraints, themes, UX analyzer — "Everything looks good, even after the AI changes it"

4

Conversation Layer

Amplifier integration, tools, contextual focus — "The AI reads, understands, and modifies YAML"

3

Experience Runtime

Tauri + Svelte, rendering, transitions — "Rich designed experiences from simple definitions"

2

Reactive Engine

Expression evaluation, dependency graph — "Spreadsheet formulas for app behavior"

1

Substrate

YAML on disk, flat block lists, schema — "The simplest possible thing that works"

User sees

Rendered experiences — beautiful, interactive, responsive. No YAML, no code, no configuration panels.

AI sees

YAML files — flat, readable, modifiable. The reactive engine and design system handle everything else.

How It Works

Natural language, live modification

Every change follows the same pattern — and the user sees the experience evolve, not reload:

1

"Add a weather widget to my dashboard"

User speaks intent. The AI reads the current page YAML to understand context, layout, and existing blocks.

2

AI writes YAML

Adds a data-source block and a metric-card block to the page. Flat list insertion — no tree navigation, no nesting complexity.

3

File watcher detects change

Rust notify crate picks up the YAML change. Diff engine identifies new blocks. Reactive engine evaluates expressions.

4

Experience transitions live

New blocks fade in. Layout smoothly reflows. Design system validates visual coherence. The user sees a weather widget appear — no page reload.

The Substrate

What LLMs actually read and write

Flat block lists, not nested trees. Reactive expressions like spreadsheet formulas. Simple enough to be boring.

# A page is a flat list of blocks with reactive expressions page: id: main title: "Today" layout: dashboard-3col blocks: - id: calendar-data type: api-fetch source: calendar-api endpoint: /today - id: next-event type: metric-card position: primary label: "Next Up" value: ={calendar-data.result[0].title} detail: ={calendar-data.result[0].time} - id: unread-count type: metric-card position: sidebar value: ={email-summary.result.count} variant: ={if(count > 20, "alert", "normal")}
Design Intelligence

Still beautiful after
50 AI modifications

The design system is the quality floor that prevents conversational modification from producing visual chaos.

Token Cascade

Design tokens resolve through a 5-level hierarchy: block → page → experience → theme → global. The AI says style: body, the system handles the rest.

Semantic, Not Pixel

No font-size: 17px. No color: #FF0000. The AI uses semantic tokens — variant: "alert", position: sidebar — and the theme resolves them.

UX Analyzer

Post-modification validation checks contrast ratios (WCAG AA), touch targets (44×44px), information density, visual balance, and typography hierarchy.

Not a Dashboard Builder

Dashboard builders start with empty canvases and widget palettes. Universal App starts with designed experiences that already work. Customization is evolution, not construction.

Not HyperCard

HyperCard was a construction kit. Universal App is a thing you use that happens to be modifiable. The construction capability is a property of the experience, not the point of it.

Development Velocity

Built by an autonomous dev machine

2,338
Total commits
121
Features completed
170
Source files
~32K
Lines of code

Tech Stack

  • Svelte 5 + TypeScript frontend
  • Tauri 2 (Rust) shell
  • YAML substrate on disk
  • 9 approved module specs

Architecture

  • 57 Svelte components
  • 108 TypeScript modules
  • 111 test files

Timeline

  • First commit: Feb 19, 2026
  • 1,941 commits in 60 days
  • Autonomous dev-machine recipes
  • 19 modules in src/lib
Sources & Methodology

How this deck was built

All data in this presentation is drawn from the live repository and verified via git history. No metrics are fabricated or estimated.

Key design concepts — "worse is better," the litmus test, five-layer architecture, flat block lists, reactive expressions, token cascade — are quoted or paraphrased directly from the project's ARCHITECTURE.md and PROJECT-INTENT.md.

More Amplifier Stories