diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..22992cbbc236d5395d59023ec44ab3a4d9412aac
--- /dev/null
+++ b/README.md
@@ -0,0 +1,24 @@
+# TAPIR
+
+This repository includes code implementing several replicated and
+transactional key-value stores.
+
+The repo is structured as follows:
+
+- /lib - the transport library for communication between nodes. This
+  includes UDP based network communcation as well as the ability to
+  simulate network conditions on a local machine, including packet
+  delays and reorderings.
+
+- /replication
+  - /vr - implementation of viewstamped replication protocol
+  - /ir - implementation of inconsistent replication protocol
+
+- /store
+  - /tapir - implementation of TAPIR designed to work with IR
+  - /occstore - implementation of an OCC-based 2PC transactional
+  storage system, designed to work with VR
+  - /lockstore - implementation of a strict two-phase locking 2PC
+  transactional storage system, designed to work with VR
+  - /qwstore - implementation of an eventually consistent storage
+    system, using quorum writes for replication