---
title: editor
layout: home
description: Edit a working web app the way you edit a shared document. Everyone on the link changes the same page at once, its words, styles, layout and components, while its buttons and forms keep working.
---

# Edit the app, together

Everyone on a page edits the same working page at once: its words, its
styles, where things sit, its components. The buttons keep working,
nothing you change can run code, and the page never leaves your browser.
It starts with tabs in one browser; your devices come with your.os.
[Try it](/edit/): open the page, then open it again in a second tab.

<Status />

## What you can do

- **Edit together.** Every tab on a page, live, cut off then merged, each
  undoing only its own edits; comment on anything; ask an AI, whose
  edits arrive as suggestions. [Editing together](/features#editing-together)
- **Change anything.** Point at it with the pencil to restyle it, drag it
  somewhere else, add components from a library or make new ones, and flip
  to the source to see what you changed. [Changing the page](/features#changing-the-page)
- **Keep a real app.** Components with behaviour come from your source, and
  keep working while you edit. [A real app](/features#a-real-app)
- **Keep it yours.** No server ever sees the page; it lives in your
  browser, saves to a file, and is text in git. [Yours](/features#yours)
- **Check every claim.** Each promise has a test that runs in Docker, and
  Status shows which pass. [How we know](/features#how-we-know)

## Why it's needed

Changing a page today means waiting on a developer, moving it into a site
builder that reads everything and limits what it can do, or letting an AI
edit the code, where one bad edit breaks the page. Shared documents fixed
this for words years ago. Nothing does it for a working app.

## How it differs

Builder.io is the nearest product, and its edits become code on its
servers; Puck has the same model, for one editor at a time; Webflow and
Framer are polished, and closed. [Compare](/compare) has each, dated.

## How it works

A page is a tree of your components in a CRDT (Loro), typed into through
ProseMirror, kept in your browser and synced between its tabs, and
published as static HTML, like this page. [How it works](/how-it-works)
