diff --git a/Notedb.wiki b/Notedb.wiki
index 0f1177f..0b9a87e 100644
--- a/Notedb.wiki
+++ b/Notedb.wiki
@@ -1,53 +1 @@
-#summary Notedb Migration Tasks and Challenges
-
-=== What is notedb? ===
-
-Notedb is the successor to !ReviewDb: a replacement database backend for Gerrit. The goal is to read code review metadata from the same set of repositories that store the data. This allows for improved atomicity, consistency of replication, and the creation of new features like federated review and offline review.
-
-This document describes the state of migration (not necessarily completely up to date), the tasks that remain, and notes on some of the challenges we've encountered along the way. This document is *not* a full design document for notedb; if you're that curious, bug dborowitz and he will help you out.
-
-Finally, this document is for core developers. If you are a casual user of Gerrit looking for documentation, you've come to the wrong place.
-
-== Root Tables ==
-
-While !ReviewDb has a lot of tables, there are relatively few "root" tables, that is, tables whose primary key's `get!ParentKey()` method returns null:
- * *Change*: subtables !ChangeMessage, !PatchSet, !PatchSetApproval, !PatchSetAncestor, !PatchLineComment, !TrackingId
- * *Account*: subtables !AccountExternalId, !AccountProjectWatch, !AccountSshKey, !AccountDiffPreference, !StarredChange
- * *!AccountGroup*: subtables !AccountGroupMember
-
-TODO(dborowitz): Document other minor tables, audits, etc.
-
-For each root entity in each of these tables, there is one DAG describing all modifications that have been applied to the change over time. Entities DAGs are stored in a repository corresponding to their function:
- * *Change*: stored in `refs/changes/YZ/XYZ/meta` in the destination repository
- * *Account*: stored in `refs/accounts/YZ/XYZ/meta` (TBD) in `All-Users`
- * *!AccountGroup*: stored in `TBD` in `All-Projects`
-
-Most of this document focuses on Change entities, partly because it's the most complex, but also because that's where most effort to date has been focused.
-
-== Changes: What's Done ==
-
-Current progress, along with some possibly-interesting implementation notes.
-
- * !ChangeMessages: Stored in commit message body. Currently the subject of the commit message contains a machine-generated-but-readable summary like "Updated patch set 3"; we might decide to eliminate this and just use the !ChangeMessage.
- * !PatchSetApprovals: Stored as a footer "Label: Label-Name=Foo". Instead of storing an implicit 0 review for reviewers, include them explicitly in a separate Reviewer footer. Freeze labels at submit time along with the full submit rule evaluator results using "Submitted-with".
- * !PatchLineComments: The only thing thus far actually stored in a note, on the commit to which it applies. Drafts are stored in a per-user ref in All-Users.
- * !TrackingId: Killed this long ago and use the secondary index. (Just reminded myself I need to rip out the gwtorm entity.)
- * Change: Started storing obvious fields: owner, project, branch, topic.
- * !PatchSet: Storing IDs and created on timestamps right now, not reading from it yet.
-
-== Changes: What Needs to Be Done ==
-
- * !PatchSetAncestors: Replace with a persistent cache, which should probably be rebuilt in !RebuildNotedb.
- * !PatchSet: Draft field. (Someday I think we should replace Draft with WIP, but I digress.)
- * Change: Kill more fields. Actually implement reading from changes; see challenges section.
- * Some sort of batch parser. If we get 100 changes back from a search, sequentially reading the DAG for each of those might take a while.
- * Benchmark and optimize the heck out of the parsers. Let's say a target is 1ms per change DAG. Related, we may also need to disable (eager) parsing of certain fields, if we can prove with benchmarks that they are problematic. (We already do this for !PatchLineComments, to avoid having to read anything but commits in the common case.)
-
-== JGit Changes ==
-
- * Teach JGit to pack notedb refs in a separate pack file from everything else. We don't want to hurt locality within the main pack by interleaving metadata commits.
- * Teach JGit to better handle many small, separate commit graphs in the packer. Ordered chronologically, notedb metadata will be spread across a large number of separate DAGs. We will get better kernel buffer cache locality by clustering all commits in each disconnect DAG together. (But this may also hurt batch parsing; see above.)
-
-== Challenges ==
-
-TODO
\ No newline at end of file
+[https://gerrit.googlesource.com/homepage/+/md-pages/docs/Notedb.md moved]
\ No newline at end of file
