diff --git a/README.md b/README.md
index b2729ec..bc4fbe6 100644
--- a/README.md
+++ b/README.md
@@ -1,46 +1,49 @@
# schema-apps
-Single-page HTML apps for [schema.org](https://schema.org) types. Each app is a
-**self-contained `.html` file** holding a **JSON-LD data island** plus an
-auto-generated **read view** and **edit form** on top of it. No build, no
-dependencies, no framework — open the file and it works. Served straight from
-the `gh-pages` branch (this branch is the site).
+Single-page apps for [schema.org](https://schema.org) types. Each app is a
+JSON-LD **data island** plus an auto-generated **render + edit UI**. All styling
+lives in one shared **`app.css`** and all behaviour in one shared **`app.js`**,
+so every app stays tiny — just its data and a small config — and the whole
+collection is restyled by editing a single file. Served straight from the
+`gh-pages` branch (this branch is the site).
-Live: `https://solid-apps.github.io/schema-apps/person.html`
+Live:
-## The app contract
+## Anatomy of an app
-Every `.html` (the reference is [`person.html`](./person.html)) must:
+`person.html` is the reference. Each `.html` contains only:
-1. Contain **exactly one** JSON-LD island:
- `` that `JSON.parse`s,
- with `"@context": "https://schema.org"` and `"@type"` equal to the type.
-2. Declare its config in the page script: `const TYPE = "Person"` and a
- `FIELDS` array (`{prop, label, type}` per property), and a `TITLE_PROP`.
-3. Be named the **kebab-case** of the type — `Person` → `person.html`,
- `JobPosting` → `job-posting.html`.
-4. Include the contract elements: `#data` (island), `#view` (render target),
- and `