diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
new file mode 100644
index 0000000..554ed5c
--- /dev/null
+++ b/.github/workflows/pages.yml
@@ -0,0 +1,18 @@
+# The suite's site at https://d-modem.github.io/, built with brand's shared
+# theme and workflow (brand's docs/sites.md).
+name: Pages
+on:
+ push:
+ branches: [main]
+ pull_request:
+ workflow_dispatch:
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+concurrency:
+ group: pages-${{ github.ref }}
+ cancel-in-progress: true
+jobs:
+ site:
+ uses: D-Modem/brand/.github/workflows/site.yml@main
diff --git a/README.md b/README.md
index 4c59b43..c9d14bd 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
The D-Modem suite's website, : what the
suite is and where each of its repositories' sites lives.
-The pages are under `docs/`. They're built with MkDocs and the shared
+The pages are under `docs/`. They're built with Zensical and the shared
theme from [brand](https://github.com/D-Modem/brand) (its
[docs/sites.md](https://github.com/D-Modem/brand/blob/main/docs/sites.md)),
and deployed by `.github/workflows/pages.yml` on every push to main.
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..46142cd
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,90 @@
+---
+title: D-Modem
+hide:
+ - navigation
+ - toc
+---
+
+
+

+
+
+# D-Modem
+
+**An open V.92 softmodem, and the app, boards and servers built around it.**
+
+Dial a BBS, a fax machine or an ISP from a SIP call, a phone, or a real
+phone line, with no modem hardware. Or run the other end: answer modem
+callers on a PBX and give them a login, a menu and a bulletin board.
+
+
+
+
+## The suite
+
+
+
+- **[D-Modem](https://github.com/D-Modem/D-Modem)**
+
+ ---
+
+ The softmodem: V.92 down to Bell 103, class 1, 2 and 2.0 fax, V.42 and
+ V.44. `dmodemd` puts it on a SIP line; modules put it in Asterisk,
+ FreeSWITCH and FreePBX. Linux, Windows, macOS and Haiku.
+
+- **[app](https://github.com/D-Modem/app)**
+
+ ---
+
+ The D-Modem app for Android and iOS: a modem whose phone line is a SIP
+ call, with a terminal, a dialling directory, fax and dial-up internet.
+
+- **[hardware](https://github.com/D-Modem/hardware)**
+
+ ---
+
+ pico-serial: open RP2040 boards that connect D-Modem to vintage serial
+ ports and to real telephone lines.
+
+- **[menu](https://github.com/D-Modem/menu)**
+
+ ---
+
+ modemmenu: the login and menu dial-up callers see first, with PPP, a
+ shell, the BBS or any program behind it.
+
+- **[bbs](https://github.com/D-Modem/bbs)**
+
+ ---
+
+ A bulletin board in Go for telnet, SSH, TN3270 and modem callers, with
+ message areas, FidoNet, doors and file transfers.
+
+- **[go3270](https://github.com/D-Modem/go3270)**
+
+ ---
+
+ A Go library for TN3270 servers, the suite's fork of
+ racingmars/go3270. bbs draws its 3270 screens with it.
+
+- **[brand](https://github.com/D-Modem/brand)**
+
+ ---
+
+ The mark, the Rainbow Book colours, type, the naming guide, and the
+ theme every D-Modem site shares.
+
+
+
+## Start here
+
+- **Dial out from a computer:** build [D-Modem](https://github.com/D-Modem/D-Modem)
+ and run `dmodemd` with a SIP account, then dial from any terminal program.
+- **Dial out from a phone:** install the [D-Modem app](https://github.com/D-Modem/app).
+- **Use a real phone line or serial port:** see the
+ [pico-serial boards](https://github.com/D-Modem/hardware).
+- **Answer callers:** put D-Modem in Asterisk, then
+ [modemmenu](https://github.com/D-Modem/menu) and the
+ [bbs](https://github.com/D-Modem/bbs) behind it.
+
+[How the pieces fit together](suite.md){ .md-button }
diff --git a/docs/suite.md b/docs/suite.md
new file mode 100644
index 0000000..2eefd6b
--- /dev/null
+++ b/docs/suite.md
@@ -0,0 +1,48 @@
+# How the pieces fit together
+
+D-Modem's modem core is the centre of the suite. Everything else either
+carries it somewhere or answers the calls it makes.
+
+```
+ caller's side answering side
+ ───────────── ──────────────
+ terminal, fax, PPP Asterisk / FreeSWITCH / FreePBX
+ │ │
+ dmodemd (D-Modem) ── SIP call ──▶ PBX ──▶ app_dmodem (D-Modem)
+ or the app │
+ or a pico-serial stick on a phone line modemmenu (menu)
+ │
+ bbs, PPP, a shell
+```
+
+## Calling out
+
+- **On a computer**, [D-Modem](https://github.com/D-Modem/D-Modem)'s
+ `dmodemd` places a SIP call and gives the computer a serial port (a pty,
+ a COM port or a socket). Terminal programs, fax software and `pppd` dial
+ from it with AT commands, as they would a hardware modem.
+- **On a phone**, the [D-Modem app](https://github.com/D-Modem/app) runs
+ the same core on Android or iOS, with its own terminal, fax and dial-up
+ internet.
+- **On a real phone line**, a [pico-serial](https://github.com/D-Modem/hardware)
+ Line stick is the line's interface, and D-Modem is the modem behind it.
+ The serial adapters connect vintage computers to D-Modem as if it were
+ a modem on their serial port.
+
+## Answering
+
+- **D-Modem's PBX modules** (`app_dmodem` for Asterisk and FreePBX,
+ `mod_dmodem` for FreeSWITCH, `dmodem-ari`) answer a modem call on a
+ phone number.
+- **[modemmenu](https://github.com/D-Modem/menu)** is what the caller
+ meets once the modems connect: a login, the message of the day and a
+ menu of what they may do.
+- **[bbs](https://github.com/D-Modem/bbs)** is one of those things: a
+ bulletin board that also takes telnet, SSH and TN3270 callers, with
+ [go3270](https://github.com/D-Modem/go3270) drawing its 3270 screens.
+
+## Licences
+
+D-Modem, the app, menu, bbs and brand are under the GNU AGPL 3.0; go3270
+keeps its upstream MIT licence. Each repository's README says which
+licence it has and whether a commercial licence is available.
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..7c3469d
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,12 @@
+INHERIT: .site/mkdocs-base.yml
+site_name: D-Modem
+site_description: An open V.92 softmodem and the apps, boards and servers built around it
+site_url: https://d-modem.github.io/
+repo_url: https://github.com/D-Modem
+repo_name: D-Modem
+edit_uri: https://github.com/D-Modem/D-Modem.github.io/edit/main/docs/
+extra:
+ repo: D-Modem.github.io
+nav:
+ - Home: index.md
+ - How it fits together: suite.md