diff --git a/docs/conf.py b/docs/conf.py
index a300ad9..69a4d2a 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -37,6 +37,7 @@
     'sphinx.ext.intersphinx',
     'sphinx.ext.inheritance_diagram',
     'sphinx_autodoc_typehints',
+    'sphinx.ext.autosectionlabel',
 ]
 
 # Add any paths that contain templates here, relative to this directory.
@@ -196,43 +197,3 @@
     'penwidth': 1.2,
     'arrowsize': 0.8,
 }
-
-
-###################################################################################################
-
-
-from sphinx.ext.autosummary import Autosummary
-from sphinx.ext.autosummary import get_documenter
-from sphinx.util.inspect import safe_getattr
-
-
-class AutoAutoSummary(Autosummary):
-    option_spec = {}
-
-    required_arguments = 1
-
-    @staticmethod
-    def get_members(obj):
-        for name in dir(obj):
-            try:
-                documenter = get_documenter(safe_getattr(obj, name), obj)
-            except AttributeError:
-                continue
-
-            if documenter.objtype in ('function',):
-                yield name
-
-    def run(self):
-        module = str(self.arguments[0])
-        try:
-            m = __import__(module, globals(), locals(), [])
-            self.content = sorted(
-                ('~%s.%s' % (module, member) for member in self.get_members(m)),
-                key=str.lower,
-            )
-        finally:
-            return super().run()
-
-
-def setup(app):
-    app.add_directive('autoautosummary', AutoAutoSummary)
diff --git a/docs/decoder.rst b/docs/decoder.rst
new file mode 100644
index 0000000..3cda80f
--- /dev/null
+++ b/docs/decoder.rst
@@ -0,0 +1,81 @@
+Parser / Decoder
+================
+
+All valid `JSON5 1.0.0 <https://spec.json5.org/>`_ and
+`JSON <https://tools.ietf.org/html/rfc8259>`_ data can be read,
+unless the nesting level is absurdly high.
+
+
+Quick Decoder Summary
+---------------------
+
+.. autosummary::
+
+    ~pyjson5.decode
+    ~pyjson5.decode_buffer
+    ~pyjson5.decode_callback
+    ~pyjson5.decode_io
+    ~pyjson5.load
+    ~pyjson5.loads
+    ~pyjson5.Json5DecoderException
+    ~pyjson5.Json5NestingTooDeep
+    ~pyjson5.Json5EOF
+    ~pyjson5.Json5IllegalCharacter
+    ~pyjson5.Json5ExtraData
+    ~pyjson5.Json5IllegalType
+
+
+Full Decoder Description
+------------------------
+
+.. autofunction:: pyjson5.decode
+
+.. autofunction:: pyjson5.decode_buffer
+
+.. autofunction:: pyjson5.decode_callback
+
+.. autofunction:: pyjson5.decode_io
+
+
+Decoder Compatibility Functions
+-------------------------------
+
+.. autofunction:: pyjson5.load
+
+.. autofunction:: pyjson5.loads
+
+
+Decoder Exceptions
+------------------
+
+.. inheritance-diagram::
+    pyjson5.Json5DecoderException
+    pyjson5.Json5NestingTooDeep
+    pyjson5.Json5EOF
+    pyjson5.Json5IllegalCharacter
+    pyjson5.Json5ExtraData
+    pyjson5.Json5IllegalType
+
+.. autoclass:: pyjson5.Json5DecoderException
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5NestingTooDeep
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5EOF
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5IllegalCharacter
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5ExtraData
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5IllegalType
+    :members:
+    :inherited-members:
diff --git a/docs/encoder.rst b/docs/encoder.rst
new file mode 100644
index 0000000..4ca15a3
--- /dev/null
+++ b/docs/encoder.rst
@@ -0,0 +1,73 @@
+Serializer / Encoder
+====================
+
+The serializer returns ASCII data that can safely be used in an HTML template.
+Apostrophes, ampersands, greater-than, and less-then signs are encoded as
+unicode escaped sequences. E.g. this snippet is safe for any and all input:
+
+.. code:: html
+
+    "<a onclick='alert(" + encode(data) + ")'>show message</a>"
+
+Unless the input contains infinite or NaN values, the result will be valid
+`JSON <https://tools.ietf.org/html/rfc8259>`_ data.
+
+
+Quick Encoder Summary
+---------------------
+
+.. autosummary::
+
+    ~pyjson5.encode
+    ~pyjson5.encode_bytes
+    ~pyjson5.encode_callback
+    ~pyjson5.encode_io
+    ~pyjson5.encode_noop
+    ~pyjson5.dump
+    ~pyjson5.dumps
+    ~pyjson5.Options
+    ~pyjson5.Json5EncoderException
+    ~pyjson5.Json5UnstringifiableType
+
+
+Full Encoder Description
+------------------------
+
+.. autofunction:: pyjson5.encode
+
+.. autofunction:: pyjson5.encode_bytes
+
+.. autofunction:: pyjson5.encode_callback
+
+.. autofunction:: pyjson5.encode_io
+
+.. autofunction:: pyjson5.encode_noop
+
+.. autoclass:: pyjson5.Options
+    :members:
+    :inherited-members:
+
+
+Encoder Compatibility Functions
+-------------------------------
+
+.. autofunction:: pyjson5.dump
+
+.. autofunction:: pyjson5.dumps
+
+
+Encoder Exceptions
+------------------
+
+.. inheritance-diagram::
+    pyjson5.Json5Exception
+    pyjson5.Json5EncoderException
+    pyjson5.Json5UnstringifiableType
+
+.. autoclass:: pyjson5.Json5EncoderException
+    :members:
+    :inherited-members:
+
+.. autoclass:: pyjson5.Json5UnstringifiableType
+    :members:
+    :inherited-members:
diff --git a/docs/exceptions.rst b/docs/exceptions.rst
new file mode 100644
index 0000000..21b9f34
--- /dev/null
+++ b/docs/exceptions.rst
@@ -0,0 +1,17 @@
+Exceptions
+==========
+
+.. inheritance-diagram::
+    pyjson5.Json5Exception
+    pyjson5.Json5EncoderException
+    pyjson5.Json5UnstringifiableType
+    pyjson5.Json5DecoderException
+    pyjson5.Json5NestingTooDeep
+    pyjson5.Json5EOF
+    pyjson5.Json5IllegalCharacter
+    pyjson5.Json5ExtraData
+    pyjson5.Json5IllegalType
+
+.. autoclass:: pyjson5.Json5Exception
+    :members:
+    :inherited-members:
diff --git a/docs/index.rst b/docs/index.rst
index 91472f0..6f09e82 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,21 +1,76 @@
-.. currentmodule:: pyjson5
+PyJSON5
+=======
 
-.. automodule:: pyjson5
-    :members:
-    :inherited-members:
+A JSON5 serializer and parser library for Python 3.4 and later.
 
 
-    → :ref:`Glossary / Index <genindex>`
+The serializer returns ASCII data that can safely be used in an HTML template.
+Apostrophes, ampersands, greater-than, and less-then signs are encoded as
+unicode escaped sequences. E.g. this snippet is safe for any and all input:
 
-    Function summary
-    ----------------
+.. code:: html
 
-    .. autoautosummary:: pyjson5
+    "<a onclick='alert(" + encode(data) + ")'>show message</a>"
 
-    Class / exception summary
-    -------------------------
+Unless the input contains infinite or NaN values, the result will be valid
+`JSON <https://tools.ietf.org/html/rfc8259>`_ data.
 
-    .. inheritance-diagram:: pyjson5
 
-    Full description
-    ----------------
+All valid `JSON5 1.0.0 <https://spec.json5.org/>`_ and
+`JSON <https://tools.ietf.org/html/rfc8259>`_ data can be read,
+unless the nesting level is absurdly high.
+
+
+Installation
+------------
+
+.. code:: bash
+
+    $ pip install pyjson5
+
+
+Table of Contents
+-----------------
+
+.. toctree::
+    :maxdepth: 3
+
+    encoder.rst
+    decoder.rst
+    exceptions.rst
+
+
+Quick Summary
+-------------
+
+.. autosummary::
+
+    ~pyjson5.decode
+    ~pyjson5.decode_buffer
+    ~pyjson5.decode_callback
+    ~pyjson5.decode_io
+    ~pyjson5.load
+    ~pyjson5.loads
+    ~pyjson5.encode
+    ~pyjson5.encode_bytes
+    ~pyjson5.encode_callback
+    ~pyjson5.encode_io
+    ~pyjson5.encode_noop
+    ~pyjson5.dump
+    ~pyjson5.dumps
+    ~pyjson5.Options
+    ~pyjson5.Json5EncoderException
+    ~pyjson5.Json5DecoderException
+
+
+Compatibility
+-------------
+
+At least CPython 3.4, and a C++14 compatible compiler (such as GCC 5.2+) is needed.
+
+Other interpreters such as Pypy and older CPython versions are not supported.
+
+
+-------------------------------------------------------------------------------
+
+:ref:`Glossary / Index <genindex>`
diff --git a/src/DESCRIPTION b/src/DESCRIPTION
index 43f722d..266d20f 100644
--- a/src/DESCRIPTION
+++ b/src/DESCRIPTION
@@ -1,6 +1,6 @@
 '''\
 PyJSON5
--------
+=======
 
 A `JSON5 <https://spec.json5.org/>`_ serializer and parser library for Python 3 written in Cython.
 
