diff --git a/Modules.md b/Modules.md
new file mode 100644
index 0000000..1925276
--- /dev/null
+++ b/Modules.md
@@ -0,0 +1,51 @@
+# Static Modules (How Melange Is Organized In Source Control Directories)
+
+## The "app" Top-Level Directory
+
+The "app" top-level directory contains all source control-based resources that will go into the code package that will be uploaded to App Engine as part of Melange's release. It contains several third-party code directories, the "soc" directory that contains Melange's first-party production code, and the configuration files and outermost scripts that mediate App Engine's interaction with Melange's code.
+
+## app/soc
+
+app/soc is the root of Melange's first-party (authored by Melange developers) code. It is divided into:
+  * **cache**
+    * Melange's code that interacts with the App Engine memcache.
+    * Primarily used for XSRF tokens and determining which projects, organizations, and tasks are randomly featured on the home page.
+  * **content**
+    * Melange's static content (mostly images).
+  * **logic** (described below)
+  * **mapreduce**
+    * Melange's code for making changes to all instances of a given type of data.
+  * **middleware**
+    * Melange's code for interacting with Django's Middleware and Blobstore systems.
+  * **models** (described below)
+  * **modules** (described below)
+  * **tasks**
+    * Melange's code for interacting with App Engine's tasks system.
+    * Email sending is handled by this code.
+  * **templates**
+    * Melange's HTML templates.
+    * As of March 2013 the elimination of a "v2" layer of indirection is in progress in this directory.
+  * **views** (described below)
+
+## Other Top-Level Directories
+
+  * **mockup**
+    * Design assets from past site redesigns (mostly images and HTML).
+  * **scripts**
+    * First-party Melange code not included in the web application image of Melange.
+  * **tests**
+    * Tests and test utilities in a directory structure mirroring that of the top-level "app" directory.
+  * **thirdparty**
+    * Third-party code such as the App Engine SDK.
+
+## "logic", "models", and "views"
+
+Melange code is in many places divided into three parallel packages named "logic", "models", and "views". At such places, (1) the "models" package will contain modules and classes making use of (and inheriting from) App Engine's db.Model class to describe how Melange data is persisted in App Engine's data store, (2) the "views" package will contain modules and classes making use of (and inheriting from) Melange's RequestHandler class to create views of web pages in response to user HTTP requests, and (3) the "logic" package will contain utility modules and functions.
+
+## "modules"
+
+Melange maintains an attempted-but-imperfect separation between the code foundational to Melange itself and the code only needed for its (currently two) programs Google Summer of Code and Google Code-in. The foundational code for Melange itself is kept in the "logic", "models", and "views" directories of app/soc, and the code required for each program is kept under app/soc/modules/_program\_name_.
+
+# Dynamic Modules (How Melange Is Organized During Execution)
+
+Melange certainly _should_ have some lines of internal segmentation, fault-tolerance, and protection when running, but this is an area for future development.
\ No newline at end of file
diff --git a/Modules.wiki b/Modules.wiki
deleted file mode 100644
index 96d1c02..0000000
--- a/Modules.wiki
+++ /dev/null
@@ -1,54 +0,0 @@
-#summary Melange Modules
-#labels 2013DeveloperDoc
-
-=Static Modules (How Melange Is Organized In Source Control Directories)=
-
-==The "app" Top-Level Directory==
-
-The "app" top-level directory contains all source control-based resources that will go into the code package that will be uploaded to App Engine as part of Melange's release. It contains several third-party code directories, the "soc" directory that contains Melange's first-party production code, and the configuration files and outermost scripts that mediate App Engine's interaction with Melange's code.
-
-==app/soc==
-
-app/soc is the root of Melange's first-party (authored by Melange developers) code. It is divided into:
-  * *cache*
-    ** Melange's code that interacts with the App Engine memcache.
-    ** Primarily used for XSRF tokens and determining which projects, organizations, and tasks are randomly featured on the home page.
-  * *content*
-    ** Melange's static content (mostly images).
-  * *logic* (described below)
-  * *mapreduce*
-    ** Melange's code for making changes to all instances of a given type of data.
-  * *middleware*
-    ** Melange's code for interacting with Django's Middleware and Blobstore systems.
-  * *models* (described below)
-  * *modules* (described below)
-  * *tasks*
-    ** Melange's code for interacting with App Engine's tasks system.
-    ** Email sending is handled by this code.
-  * *templates*
-    ** Melange's HTML templates.
-    ** As of March 2013 the elimination of a "v2" layer of indirection is in progress in this directory.
-  * *views* (described below)
-
-==Other Top-Level Directories==
-
-  * *mockup*
-    ** Design assets from past site redesigns (mostly images and HTML).
-  * *scripts*
-    ** First-party Melange code not included in the web application image of Melange.
-  * *tests*
-    ** Tests and test utilities in a directory structure mirroring that of the top-level "app" directory.
-  * *thirdparty*
-    ** Third-party code such as the App Engine SDK.
-
-=="logic", "models", and "views"==
-
-Melange code is in many places divided into three parallel packages named "logic", "models", and "views". At such places, (1) the "models" package will contain modules and classes making use of (and inheriting from) App Engine's db.Model class to describe how Melange data is persisted in App Engine's data store, (2) the "views" package will contain modules and classes making use of (and inheriting from) Melange's RequestHandler class to create views of web pages in response to user HTTP requests, and (3) the "logic" package will contain utility modules and functions.
-
-=="modules"==
-
-Melange maintains an attempted-but-imperfect separation between the code foundational to Melange itself and the code only needed for its (currently two) programs Google Summer of Code and Google Code-in. The foundational code for Melange itself is kept in the "logic", "models", and "views" directories of app/soc, and the code required for each program is kept under app/soc/modules/_program_name_.
-
-=Dynamic Modules (How Melange Is Organized During Execution)=
-
-Melange certainly _should_ have some lines of internal segmentation, fault-tolerance, and protection when running, but this is an area for future development.
\ No newline at end of file
