diff --git a/README.md b/README.md
index bde28f40..a00ae9c5 100644
--- a/README.md
+++ b/README.md
@@ -53,6 +53,9 @@ sources from master branch with `openaddr-enqueue-sources`:
Development
-----------
+[Documentation for machine internals](docs/README.md) can help point you in the
+right direction for development.
+
Test the OpenAddresses machine with `test.py`:
python test.py
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 00000000..9de0bb18
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,18 @@
+Machine Internals
+=================
+
+This documentation is current as-of [Machine 2.1.8](https://github.com/openaddresses/machine/releases/tag/2.1.8).
+
+* **[Components](components.md)**
+
+ Basic moving parts including web application, worker pool, and scheduled
+ tasks.
+
+* **[Persistent Data](persistence.md)**
+
+ Locations where we store data.
+
+* **[Processes](processes.md)**
+
+ Periodic and event-driven processes paths through components and persistent
+ data stores.
diff --git a/docs/components.md b/docs/components.md
index df002880..91eac97a 100644
--- a/docs/components.md
+++ b/docs/components.md
@@ -1,6 +1,8 @@
Components
==========
+Basic moving parts including web application, worker pool, and scheduled tasks.
+
Webhook
-------
diff --git a/docs/persistence.md b/docs/persistence.md
index bb9d9b85..1762d840 100644
--- a/docs/persistence.md
+++ b/docs/persistence.md
@@ -1,7 +1,7 @@
Persistent Data
===============
-We store persistent data in two locations: a PostgreSQL database and Amazon S3.
+Locations where we store data.
Database
--------
diff --git a/docs/processes.md b/docs/processes.md
index 2196b76e..0dd6dff5 100644
--- a/docs/processes.md
+++ b/docs/processes.md
@@ -1,6 +1,8 @@
Processes
=========
+Periodic and event-driven processes paths through components and persistent data stores.
+
Batch Set
---------