back to novastorm
[DOCUMENT_CLASS: MANIFESTO]

Ambient Development

A manifesto for a new approach to building software

[ Development that happens around you while you use your app. ]
PART I

The problem everyone is solving from the wrong end

We live in an era where AI can write code. GPT, Claude, Gemini, dozens of models — all generating functions, components, entire applications. Every month a new tool appears: Cursor, Claude Code, Codex, Windsurf, Bolt, Lovable, Devin. Each one promises a revolution. Each one does the same thing — helps turn text into code faster.

And here's the paradox: code was never the real bottleneck.

[RESEARCH] Bain 2025 — Where time actually goes
Writing & testing code
25-35%
Everything else
65-75%
Understanding, formulation, review, integration, deploy

By speeding up code generation 10x, we only sped up the entire process by 20-30%.

[RESEARCH] Faros/DORA 2025 — The AI Paradox
+21%
tasks/day
+98%
PRs merged
+91%
review time
~0%
delivery speed
Individual productivity ↑ — Team delivery speed unchanged. Bottleneck moved.

Every tool optimizes the same step: "I have a description → I need code". But nobody touches the step before it: "I have a feeling → I need to turn it into a description".

[ANALYSIS] Every approach requires: stop → switch → formulate
Traditional write code
Vibe coding write prompt
Spec-driven write spec
TDD write test
Visual-first click in special editor
Ambient just use your app

But there is a way of communicating that requires no translation. It is older than any programming language. Older than writing itself.

Show.

PART II

What is Ambient Development

Ambient Development — an approach to building software where the system continuously observes the application in use and builds it out across every level of the stack based on user behavior, voice commands, and visual cues.
[ETYMOLOGY] ambient = surrounding, background, creating environment
Ambient Music
Creates atmosphere. Doesn't demand attention.
Ambient Lighting
Creates space. You don't think about bulbs.
Ambient Computing
Smart home, sensors. You live, it adapts.
Ambient Development
You use the product. Development happens around you.

You stop switching between the role of user and the role of developer. You are always the user. Development is ambient.

PART III

Five principles

01

Usage as specification

The best specification is not one written in a document. The best specification is a person's behavior inside the product.

[behavior] click on empty space → expects something there
[behavior] repeat action 5x → needs automation
[behavior] open page, leave in 1s → page doesn't deliver
[behavior] form error → retype → bad form design
[ambient] behavior never lies. behavior is the spec.
02

Full stack vertical

When you say "add a customers table with search," you don't mean "create a React component." You mean: I want to see my customers, and I want it to work.

[DEPTH] One action → changes at every level
UI Component
API Endpoint
Database Query
Migration
Existing browser-aware tools stop at UI. Ambient goes through.
03

Three simultaneous modes

PASSIVE
👁
Silently observes. Which pages are visited most. Where you linger. Where you leave. Which queries are slow. Forms suggestions.
[passive] "You filter by date every time on /reports. Add default filter?"
VOICE
🎤
Say what you need without interrupting your workflow. No switching. Just speak out loud.
[voice] "Add email validation to the registration form."
VISUAL
👆
Click, circle, drag. Speak or type what to change.
[visual] "Make this button bigger and add an icon."
All three work simultaneously. Not switches — layers.
04

Speed lanes

LANE 1
<2s — CSS, texts, configs, colors
No neural network. AST parsing + pattern matching. 40-50% of all tweaks.
LANE 2
10-30s — Single-file changes
New component, form field, API endpoint by analogy. Fast model (Haiku, Flash).
LANE 3
1-5min — Multi-file features
New page, service, integration. Strong model (Opus, GPT-5). Full project context.
LANE 4
min-hrs — Background
Refactoring, migrations, optimization. Async. You sleep, system works.
05

Stack-agnostic

[scan] package.json → Next.js + TypeScript
[scan] .csproj → C# backend
[scan] docker-compose.yml → PostgreSQL
[ready] Stack detected. Building project graph...
[ready] Routes: 12 | Components: 47 | APIs: 23 | Models: 8
[ready] Ambient mode activated.

Next.js + C#? Django + Vue? Rails + React? Go + Svelte? Works.

PART IV

What it looks like in practice

MORNING
[you] open SaaS. check dashboard. open /customers.
[you] "this table is slow."
[ambient] found: SELECT * without pagination in /api/customers
[lane 3] generating optimized query + pagination + server search
[done] hot reload. table loads instantly. 2 minutes.
DAY
[you] "Save button too small on mobile"
[lane 1] CSS injection. done. instant.
[you] "Add timezone picker to project form"
[lane 2] component + API field. 20 seconds.
[you] "Settings page needs a notifications section"
[lane 3] new page + endpoints + DB table. 3 minutes.
EVENING
[summary] 4 instant fixes | 2 fast changes | 1 feature
[passive] 3 suggestions waiting:
1. "You always go to /analytics first. Make it default?"
2. "5x sorted by date this week. Make it default sort?"
3. "/api/projects avg 1.2s. Found N+1 query. Optimize?"
[you] approve 1, 3. decline 2.
[result] zero IDE. zero prompts. zero context switches.
NIGHT
[you] from phone: "Refactor auth module — split into services"
[lane 4] background. agent running...
... you sleep ...
[morning] PR ready. detailed description. all tests green.
PART V

Comparing approaches

[BENCHMARK] Task: Add CSV export button to /customers
Traditional
30-60 min
Vibe Coding
10-20 min
Visual-First
15-25 min
Spec-Driven
10-15 min
Ambient
1 min
Difference isn't in code generation speed. It's in zero context switching.
TRADITIONAL VIBE CODING VISUAL-FIRST SPEC-DRIVEN AMBIENT
Interface IDE + terminal Chat / prompt Visual editor Document The app itself
What you do Write code Describe in text Click & drag Write behavior Use, speak, show
Depth Fullstack Depends Frontend only Fullstack UI → DB
Context switch Full Medium Medium High Zero
PART VI

How it differs from everything else

01

Fullstack, not just frontend

Onlook, Inspector, DevLensPro — all stop at UI. Ambient goes all the way through: component + API + DB + migration.

02

Passive mode

No other tool observes usage and suggests improvements. They all wait for commands. Ambient observes on its own.

03

Speed lanes

Everyone handles every task the same way. Ambient: instant things — instantly. Complex things — thoroughly. Massive things — in the background.

04

Stack-agnostic

Onlook = React + Tailwind. Tidewave = Phoenix. Ambient plugs into any project via multimodal models.

05

CLI-first

One command. npm install -g. One word in the terminal. The browser opens on its own. No new UI.

PART VII

Who it's for

>_

Indie hackers

You're on your own. You're the designer, the developer, and the product manager. Every tweak is a context switch. With Ambient — noticed → said → fixed. 10x faster.

Technical founders

You can only code in stolen moments. With Ambient — you make improvements between meetings. Morning: "Need a chart by week." After a call: "Add a Company field."

◆◆

Small teams (2-5)

The designer clicks and adjusts visually. The backend dev says "optimize the query." The founder describes a feature by voice. Everyone is in the product.

Product engineers

You think through usage. Ambient works exactly the same way: through usage, not through abstractions.

PART VIII

Technical foundations

How the system understands the project

[index] scanning project structure...
[graph] file dependencies mapped
[graph] routes & pages identified
[graph] API endpoints ↔ frontend linked
[graph] data models & DB schema parsed
[graph] component hierarchy built
[distill] context distillation: 2,847 tokens. project DNA ready.

Three sources of information

Screenshots
Periodic snapshots. Multimodal model sees what's on screen.
DOM
Injected overlay: CSS selectors, React components, source files.
Runtime
Console errors, network requests, performance metrics (LCP, CLS, FID).

Change pipeline

Observe
Classify
Context
Generate
Apply
Verify

Data storage

.ambient/
├── config.toml
├── graph.json
├── context.md
├── recipes/
├── history/
├── suggestions/
└── cache/
[storage] all local. all files. rm -rf .ambient → gone.
PART IX

What Ambient Development does not do

Does not replace architectural decisions.

Microservices vs monolith, DB schema, security — that's up to the human.

Not suited for critical code.

Fintech, encryption, healthcare — manual review required. Ambient is for routine work (80% of the job).

Does not work magically on the first try.

Models make mistakes. Every change is in a branch, with rollback; serious ones require approval.

Does not make you obsolete.

Shifts your role from "writing code" to "making decisions." The decisions are yours.

PART X

Long-term vision

If you look five years ahead, Ambient Development blurs the line between user and developer.

Imagine: your customer opens the SaaS. Uses it. The system observes: the customer tried to find a feature that doesn't exist three times. The system creates a suggestion: "7 users this week searched for PDF export. Add it?" You approve. The feature appears. The customer didn't even know they "ordered" it.

This is no longer development. This is product evolution through usage.

[EVOLUTION] Abstraction layers removed over time
1960s
Keyboard → Machine code
2000s
Keyboard → High-level code
2023
Prompt → Code
2026
Usage → Product
EPILOGUE

Every big idea started with a simple shift in perspective.

[agile] don't plan everything upfront — adapt
[devops] don't separate builders and deployers
[tdd] define "correct" first, then write code
[vibe] describe in words, not code
[ambient] don't describe. don't plan. don't switch. just use. the system builds around you.

Nothing remains between you and the product.
You are in the product. The product grows around you.
Ambient.