diff --git a/docs/INSTALL.rst b/docs/INSTALL.rst
new file mode 100644
index 0000000..00ee757
--- /dev/null
+++ b/docs/INSTALL.rst
@@ -0,0 +1,179 @@
+Getting started with ndn-cxx
+============================
+
+Supported platforms
+-------------------
+
+ndn-cxx uses continuous integration and has been tested on the following
+platforms:
+
+-  Ubuntu 12.04 (64-bit and 32-bit)
+-  Ubuntu 13.10 (64-bit and 32-bit)
+-  OS X 10.8
+-  OS X 10.9
+
+ndn-cxx is known to work on the following platforms, although they are not officially
+supported:
+
+-  Ubuntu 14.04
+-  Fedora >= 20
+-  FreeBSD >= 10.0
+-  Raspberry Pi
+
+Prerequisites
+-------------
+
+Required:
+~~~~~~~~~
+
+-  ``python`` >= 2.6
+-  ``libcrypto``
+-  ``libsqlite3``
+-  ``libcrypto++``
+-  ``pkg-config``
+-  Boost libraries >= 1.48
+-  OSX Security framework (on OSX platform only)
+
+Following are the detailed steps for each platform to install the compiler, all necessary
+development tools and libraries, and ndn-cxx prerequisites.
+
+-  OS X
+
+   Install Xcode. In Xcode Preferences > Downloads, install "Command
+   Line Tools".
+
+   If using MacPorts, dependencies can be installed using the following
+   commands::
+
+       sudo port install pkgconfig boost sqlite3 libcryptopp
+
+-  Ubuntu 12.04, Ubuntu 13.10
+
+   In a terminal, enter::
+
+       sudo apt-get install build-essential
+       sudo apt-get install libssl-dev libsqlite3-dev libcrypto++-dev
+
+       # For Ubuntu 12.04
+       sudo apt-get install libboost1.48-all-dev
+
+       # For Ubuntu 13.10
+       sudo apt-get install libboost-all-dev
+
+- Fedora >=20
+
+   In a terminal, enter::
+
+       sudo yum install gcc-g++ git
+       sudo yum install openssl-devel sqlite-devel cryptopp-devel boost-devel
+
+Optional:
+~~~~~~~~~
+
+To build tutorials, manpages, and API documentation the following
+dependencies need to be installed:
+
+-  ``doxygen``
+-  ``graphviz``
+-  ``python-sphinx``
+
+The following lists steps for common platforms to install these
+prerequisites:
+
+-  On OS X 10.8 and 10.9 with MacPorts::
+
+       sudo port install doxygen graphviz py27-sphinx sphinx_select
+       sudo port select sphinx py27-sphinx
+
+-  On Ubuntu >= 12.04::
+
+       sudo apt-get install doxygen graphviz python-sphinx
+
+-  On Fedora >= 20::
+
+       sudp yum install doxygen graphviz python-sphinx
+
+Build
+-----
+
+(These are instructions to build ndn-cxx. To do development of ndn-cxx
+code and update the build system, see Development.)
+
+To build in a terminal, change directory to the ndn-cxx root. Enter:
+
+::
+
+    ./waf configure
+    ./waf
+    sudo ./waf install
+
+This builds and installs the following items:
+
+-  ``<LIBPATH>/libndn-cxx.a``: static NDN C++ library
+-  ``<LIBPATH>/pkgconfig/libndn-cxx.pc``: pkgconfig file storing all
+   neccessary flags to build against the library. For example, if
+   pkgconfig or pkgconf package is installed and ``PKG_CONFIG_PATH`` is
+   configured properly (or ``<LIBPATH>/pkgconfig`` is a default path),
+   ``pkgconfig --libs --clflags libndn-cxx`` will return all necessary
+   compile and link flags for the library.
+-  ``<BINPATH>/tlvdump``: a simple tool to dump contents of
+   TLV-formatted data
+-  ``<BINPATH>/ndncatchunks3``: a simplified equivalent to ndncatchunks2
+   in NDNx package
+-  ``<BINPATH>/ndnputchunks3``: a simplified equivalent to ndnputchunks2
+   in NDNx package
+-  ``<BINPATH>/ndnsec``: tool to manage NDN keys and certificates
+-  ``<BINPATH>/ndnsec-*``: convenience scripts for ``ndnsec`` tools
+
+If configured with tests: ``./waf configure --with-tests``), the above
+commands will also produce:
+
+-  ``build/unit-tests``: A unit test binary for the library
+
+Documentation
+-------------
+
+ndn-cxx tutorials and API documentation can be built using the following
+commands:
+
+::
+
+    # Full set of documentation (tutorials + API) in build/docs
+    ./waf docs
+
+    # Only tutorials in `build/docs`
+    ./waf sphinx
+
+    # Only API docs in `build/docs/doxygen`
+    ./waf doxgyen
+
+Manpages are automatically created and installed during the normal build
+process (e.g., during ``./waf`` and ``./waf install``), if
+``python-sphinx`` module is detected during ``./waf configure`` stage.
+By default, manpages are installed into ``${PREFIX}/share/man`` (where
+default value for ``PREFIX`` is ``/usr/local``). This location can be
+changed during ``./waf configure`` stage using ``--prefix``,
+``--datarootdir``, or ``--mandir`` options.
+
+For more details, refer to ``./waf --help``.
+
+Development Build
+-----------------
+
+The following is the suggested configure commands for development build.
+
+::
+
+    ./waf configure --debug --with-tests
+    ./waf
+    sudo ./waf install
+
+In the development build all compiler optimizations are disabled by
+default and all warnings are treated as error. The default behavior can
+be overridden by setting ``CXXFLAGS`` environment variable before
+running ``./waf configure``:
+
+::
+
+    CXXFLAGS="-O1 -g3" ./waf configure --debug --with-tests
+    ...
diff --git a/docs/RELEASE_NOTES.rst b/docs/RELEASE_NOTES.rst
new file mode 100644
index 0000000..56548a7
--- /dev/null
+++ b/docs/RELEASE_NOTES.rst
@@ -0,0 +1,87 @@
+ndn-cxx v0.1.0 Release Notes
+============================
+
+Version 0.1.0 is the initial release of ndn-cxx, an NDN C++ library with eXperimental
+eXtensions.
+
+Originally based on `ndn-cpp library <https://github.com/named-data/ndn-cpp>`_ the ndn-cxx
+library adopts a slightly different design philosophy (extensive use of Boost libraries,
+use of Crypto++ library to support cryptographic operations) and includes a number of
+various extensions that can simplify writing NDN applications.
+
+The current features include:
+
+- **Base**
+
+  + Fully asynchronous, event-driven communication model implemented using `Boost.Asio
+    <http://www.boost.org/doc/libs/1_48_0/doc/html/boost_asio.html>`_
+  + Single-threaded, but thread-safe Face operations
+
+      A single Face object can be safely used in multiple threads to express Interests and
+      publish Data packets
+
+  + Explicit time management for NDN operations using `Boost.Chrono
+    <http://www.boost.org/doc/libs/1_48_0/doc/html/chrono.html>`_
+  + Simplified and extended `NDN API <doxygen/annotated.html>`_
+  + Extensive set of unit-tests based on `Boost.Test framework
+    <http://www.boost.org/doc/libs/1_48_0/libs/test/doc/html/index.html>`_
+
+    - Continuous integration using an in-house installation of Jenkins build bots and the
+      hosted `travis-ci <https://travis-ci.org/named-data/ndn-cxx>`_ continuous
+      integration service compiles and verifies correctness of the library for each commit
+
+- **Wire format**
+
+  + Full support of `NDN-TLV packet format v0.1 <http://named-data.net/doc/NDN-TLV/0.1/>`_
+  + Pure C++ implementation of wire encoding/decoding with simple access to wire format
+    of all NDN packet abstractions via ``wireEncode`` and ``wireDecode`` methods
+
+      In many cases, NDN packet abstractions are just "indices" to the wire format
+
+  + Optimized wire format encoding/decoding
+
+- **Communication with the forwarder**
+
+  + Enable connecting to local forwarder via UNIX and TCP transports and to remote
+    forwarders using TCP transport
+  + Full support for communication with `Named Data Networking Forwarding Daemon (NFD)
+    <https://github.com/named-data/NFD>`_
+
+    - Full support for `NFD management protocols
+      <http://redmine.named-data.net/projects/nfd/wiki/Management>`_ to NFD status
+      information, create and manage NFD Faces, receive NFD Face status change
+      notifications, update StrategyChoice for namespaces, and manage routes in RIB
+    - Support for `LocalControlHeader
+      <http://redmine.named-data.net/projects/nfd/wiki/LocalControlHeader>`_ to implement
+      special NDN applications that need low-level control of NDN packet forwarding
+
+- **Security**
+
+  + Extensive set of security primitives, allowing implementation of truly secure NDN
+    applications in a simplified manner
+
+    - **KeyChain**: provides simple interfaces of packet signing, and key and certificate
+      management
+    - **ValidatorConfig**: validator that implements trust model defined in a configuration
+      file
+    - **CommandInterestGenerator** and **CommandInterestValidator**: convenient helpers to produce
+      and validate command interests, while preventing potential replay attacks
+
+  + Several implementations of trusted platform modules to securely manage private keys
+
+    - **SecTpmOsx**: TPM based on OSX KeyChain (OSX-specific)
+    - **SecTpmFile**: TPM that uses file-based access control to protect keys (cross-platform)
+
+  + Extensive set of security command-line tools to manage security identities and certificates
+
+    - Generating private/public keys
+    - Issuing certificates
+    - Exporting/importing identities
+    - Managing default security settings
+
+- **Miscellaneous tools**
+
+  + Scheduler to support delayed time operations
+  + NDN regular expressions
+  + Simple config file to alter various aspects of the library
+  + **tlvdump**: a simple tool to visualize TLV-encoded blocks
diff --git a/docs/index.rst b/docs/index.rst
index 1e73bdf..2c611c9 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,13 +1,50 @@
-NDN C++ library with eXperimental eXtensions
-============================================
+ndn-cxx: NDN C++ library with eXperimental eXtensions
+=====================================================
 
-`API documentation (doxygen) <doxygen/annotated.html>`_
+ndn-cxx is a C++ library, implementing Named Data Networking (NDN) primitives that can be
+used to implement various NDN applications. The library is currently being used as part of
+the following projects:
+
+-  `NFD - NDN Forwarding Daemon <https://github.com/named-data/NFD>`__
+-  `NLSR - Named-data Link-State Routing
+   protocol <https://github.com/named-data/NLSR>`__
+-  `repo-ng - Next generation of NDN
+   repository <https://github.com/named-data/repo-ng>`__
+-  `ChronoChat - Multi-user NDN chat
+   application <https://github.com/named-data/ChronoChat>`__
+-  `ChronoSync - Sync library for multiuser realtime applications for
+   NDN <https://github.com/named-data/ChronoSync>`__
+-  `ndn-tlv-ping - Ping Application For
+   NDN <https://github.com/named-data/ndn-tlv-ping>`__
+-  `ndn-traffic - Traffic Generator For
+   NDN <https://github.com/named-data/ndn-traffic>`__
+
+Please submit any bugs or issues to the `ndn-cxx issue tracker
+<http://redmine.named-data.net/projects/ndn-cxx/issues>`__.
+
+ndn-cxx Documentation
+---------------------
+
+- `API documentation (doxygen) <doxygen/annotated.html>`_
 
 .. toctree::
-   code-style
+   RELEASE_NOTES
+   INSTALL
    examples
    tutorials/security-library
    tutorials/utils-ndn-regex
    tutorials/security-validator-config
    manpages
-   :maxdepth: 2
+   code-style
+   :maxdepth: 1
+
+License
+-------
+
+ndn-cxx is an open source project licensed under BSD license. For more
+information about the license, refer to
+`COPYING <https://github.com/named-data/ndn-cxx/blob/master/COPYING>`_.
+
+While the license does not require it, we really would appreciate it if
+others would share their contributions to the library if they are
+willing to do so under the same license.
