diff --git a/docs/requirements.txt b/docs/requirements.txt
index 577cdaf17d1184a225d0d95595b4eebde6c4386f..6b7abcb3a3045e19923b8273bd4f40760600dfab 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,3 +1,4 @@
 numpydoc>=1.3.1
 aliby>=0.1.26
 myst-parser
+sphinx-autodoc-hints
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 3458311795e6b138e9c86c388659fda4c637c53a..ba132177235c523dbf937a8528e4b69c17cdb8d3 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -35,10 +35,23 @@ release = "0.1.26"
 extensions = [
     "sphinx.ext.autodoc",  # Core library for html generation from docstrings
     "sphinx.ext.autosummary",  # Create neat summary tables
+    "sphinx.ext.intersphinx",  # Link to other project's documentation (see mapping below)
+    "sphinx.ext.viewcode",  # Add a link to the Python source code for classes, functions etc.
+    "sphinx_autodoc_typehints",  # Automatically document param types (less noise in class signature)
     "numpydoc",  # Play along with numpydoc format
     "myst_parser",  # Include markdown in rst files.
 ]
+
 autosummary_generate = True  # Turn on sphinx.ext.autosummary
+autoclass_content = "both"  # Add __init__ doc (ie. params) to class summaries
+html_show_sourcelink = (
+    False  # Remove 'view source code' from top of page (for html, not python)
+)
+autodoc_inherit_docstrings = True  # If no docstring, inherit from base class
+set_type_checking_flag = True  # Enable 'expensive' imports for sphinx_autodoc_typehints
+nbsphinx_allow_errors = True  # Continue through Jupyter errors
+# autodoc_typehints = "description" # Sphinx-native method. Not as good as sphinx_autodoc_typehints
+add_module_names = False  # Remove namespaces from class/method signatures
 
 # Add any paths that contain templates here, relative to this directory.
 
diff --git a/docs/source/index.rst b/docs/source/index.rst
index b612c9c47d80f7fc54b44a6fca5aded5dcbf67bd..560b15f7ce3e5cce7c2926909a4e08ff0c278ccf 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -3,30 +3,15 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-ALIBY's guides and documentation
-=================================
 .. toctree::
-   :maxdepth: 3
+   :hidden:
+
+   Home page <self>
+   ALIBY reference <aliby>
+   extraction reference <extraction>
 
 .. include:: ../../README.md
    :parser: myst_parser.sphinx_
 
-
-Contributing
-============
-.. toctree::
-   :maxdepth: 2
-
 .. include:: ../../CONTRIBUTING.md
    :parser: myst_parser.sphinx_
-
-
-API Reference
-============
-.. toctree::
-.. autosummary::
-   :template: custom-module-template.rst
-   :recursive:
-
-   aliby
-   extraction
diff --git a/pyproject.toml b/pyproject.toml
index 943828b4e9788a13282cb87da5e7dde857398498..8721f4fc7b1da88cfc81045af2e099f5c50c0390 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "aliby"
-version = "0.1.28"
+version = "0.1.29"
 description = "Process and analyse live-cell imaging data"
 authors = ["Alan Munoz <alan.munoz@ed.ac.uk>"]
 packages = [