diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..827ed82
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,97 @@
+Code-per-Node
+-------------
+This module allows arbitrary amounts of CSS or JS to be added to nodes and
+blocks.
+
+This version of the module only works with Drupal 7.15 and newer.
+
+
+Features
+------------------------------------------------------------------------------
+The primary features include:
+
+* CSS and JS may be added to any node.
+
+* CSS and JS may be added to any block.
+
+* The per-node and per-block CSS and JS may be given a wrapper, which allows the
+  CSS or JS to be made more simple.
+
+* Control over whether the CSS and JS output is aggregated with other files.
+
+* Optional CSS and JS maybe added globally.
+
+* Syntax highlighting for both CSS and JS using the CodeMirror library.
+
+* Optional support for Libraries API to control the location of the CodeMirror
+  library.
+
+
+Installation
+------------------------------------------------------------------------------
+The module should be installed and enabled in the usual way.
+
+If needed, the CodeMirror library (v2.1 or a newer v2.x release) should be
+downloaded from http://codemirror.net/, extracted and placed in:
+  sites/all/libraries/codemirror
+
+
+Configuration
+------------------------------------------------------------------------------
+ 1. On the People Permissions administration page ("Administer >> People
+    >> Permissions") you need to assign:
+
+    - The "Edit CSS per node" permission to the roles that are allowed to add
+      custom CSS for individual nodes.
+
+    - The "Edit JS per node" permission to the roles that are allowed to add
+      custom JavaScript for individual nodes.
+
+    - The "Edit CSS per block" permission to the roles that are allowed to add
+      custom CSS for individual blocks.
+
+    - The "Edit JS per block" permission to the roles that are allowed to add
+      custom JavaScript for individual blocks.
+
+ 2. The main admininistrative page controls the site-wide settings, including
+    the location of the custom files, whether aggregation is enabled, the code
+    wrappers and global CSS & JS:
+      admin/config/content/cpn
+
+ 3. Each content type can have the CSS & JS enabled on their respective edit
+    page, along with custom code that will be loaded on each node page of that
+    type.
+
+
+Troubleshooting / Tips
+------------------------------------------------------------------------------
+* The CSS and JS will automatically be loaded on the appropriate pages, however
+  nothing is added to make the CSS or JS only affect the elements of that node
+  or block, so the code should be handled accordingly.
+* The CSS and JS wrapper options can be used to simplify the code that is
+  necessary for each node or block, e.g. the following would allow all JS code
+  to be written to just use the simpler $() syntax for JS selection:
+    (function ($) {
+    [code]
+    })(jQuery);
+
+
+Credits / Contact
+------------------------------------------------------------------------------
+Originally build by joelstein [1], Rob Loach [2] contributed on the D7 port.
+
+Currently maintained by Damien McKenna [3].
+
+Continued development is sponsored Mediacurrent [4].
+
+The best way to contact the authors is to submit an issue, be it a support
+request, a feature request or a bug report, in the project issue queue:
+  http://drupal.org/project/issues/metatag
+
+
+References
+------------------------------------------------------------------------------
+1: http://drupal.org/user/61114
+2: http://drupal.org/user/36598
+3: http://drupal.org/user/108450
+4: http://www.mediacurrent.com/
