diff --git a/README.rst b/README.rst
index 68cfdb2e5c5957b2e51905c51aa15d7a6418ac9d..e4197b6f372af8408a53ae0cca502d538416d045 100644
--- a/README.rst
+++ b/README.rst
@@ -15,9 +15,8 @@ To add a new package:
 * Make sure the package is in https://gitlab.idiap.ch/bob/bob first.
 * The list of packages here should be in sync with `bob/bob`.
 * Remove packages which are here but no longer are in `bob/bob`.
-* Add it in ``conda/meta.yaml`` and ``packages.txt``.
-* Add it in ``doc/packages.rst`` (you need to add it in several places in this file).
-* Add it in ``doc/readme_index.rst``.
+* Add it in ``conda/meta.yaml``, ``packages.txt``, ``doc/index.rst``, ``doc/readme_index.rst``, and ``doc/packages.rst``.
+* You may repeat a package under several categories in ``doc/packages.rst``.
 * If it plots something using matplotlib during its documentation generation,
   make sure you add a symlink for it in the docs folder.
 
diff --git a/doc/index.rst b/doc/index.rst
index 3b7e40b059fcfdb44bc6e43bdceb716c099a13b5..b2d9e15107f7dc2cc7537ff6af8ea68316adbbb5 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -24,190 +24,10 @@ packages.
    example
    install
    help
+   packages
 
-.. _bob.packages:
 
-Packages
-========
-
-Bob is organized in several independent python packages.
-You may `search PyPI <https://pypi.org/search/?o=-created&c=Framework+%3A%3A+Bob>`_
-for a comprehensive list of packages that either **use Bob** or **are part of Bob**.
-Moreover, you may find the list of Bob packages that we maintain below.
-
-
-Basic Functionality
--------------------
-
-* :ref:`bob.core`
-* :ref:`bob.math`
-
-Data Input and Output
----------------------
-
-* :ref:`bob.io.base`
-* :ref:`bob.io.image`
-* :ref:`bob.io.video`
-* :ref:`bob.io.audio`
-* :ref:`bob.io.matlab`
-
-Signal, Audio, Image and Video Processing
------------------------------------------
-
-* :ref:`bob.sp`
-* :ref:`bob.ap`
-* :ref:`bob.ip.base`
-* :ref:`bob.ip.color`
-* :ref:`bob.ip.draw`
-* :ref:`bob.ip.gabor`
-* :ref:`bob.ip.facedetect`
-* :ref:`bob.ip.facelandmarks`
-* :ref:`bob.ip.optflow.liu`
-* :ref:`bob.ip.optflow.hornschunck`
-* :ref:`bob.ip.flandmark`
-* :ref:`bob.ip.dlib`
-* :ref:`bob.ip.qualitymeasure`
-* :ref:`bob.ip.skincolorfilter`
-* :ref:`bob.ip.tensorflow_extractor`
-* :ref:`bob.ip.binseg`
-
-
-Machine Learning
-----------------
-
-* :ref:`bob.measure`
-* :ref:`bob.learn.linear`
-* :ref:`bob.learn.mlp`
-* :ref:`bob.learn.activation`
-* :ref:`bob.learn.libsvm`
-* :ref:`bob.learn.em`
-* :ref:`bob.learn.boosting`
-* :ref:`bob.learn.tensorflow`
-* :ref:`bob.learn.pytorch`
-
-Modules for Developers
-----------------------
-
-* :ref:`bob.devtools`
-* :ref:`bob.extension`
-* :ref:`bob.blitz`
-* :ref:`bob.buildout`
-
-Parallel Execution
-------------------
-
-* :ref:`gridtk`
-
-Biometric Recognition
----------------------
-
-* :ref:`bob.bio.base`
-* :ref:`bob.bio.face`
-* :ref:`bob.bio.spear`
-* :ref:`bob.bio.vein`
-* :ref:`bob.bio.video`
-* :ref:`bob.bio.gmm`
-* :ref:`bob.bio.face_ongoing`
-* :ref:`bob.bio.htface`
-* :ref:`bob.ip.tensorflow_extractor`
-* :ref:`bob.fusion.base`
-
-
-Presentation Attack Detection (anti-spoofing)
----------------------------------------------
-
-* :ref:`bob.pad.base`
-* :ref:`bob.pad.face`
-* :ref:`bob.pad.vein`
-* :ref:`bob.pad.voice`
-* :ref:`bob.fusion.base`
-
-
-Remote Heart Rate Measurement
------------------------------
-
-* :ref:`bob.rppg.base`
-
-
-Database Interfaces
--------------------
-
-Base Database Packages
-^^^^^^^^^^^^^^^^^^^^^^
-
-* :ref:`bob.db.base`
-* :ref:`bob.bio.base`
-* :ref:`bob.pad.base`
-
-Interfaces
-^^^^^^^^^^
-
-* :ref:`bob.db.arface`
-* :ref:`bob.db.asvspoof2017`
-* :ref:`bob.db.asvspoof`
-* :ref:`bob.db.atnt`
-* :ref:`bob.db.atvskeystroke`
-* :ref:`bob.db.avspoof`
-* :ref:`bob.db.banca`
-* :ref:`bob.db.biosecure`
-* :ref:`bob.db.biosecurid.face`
-* :ref:`bob.db.casia_fasd`
-* :ref:`bob.db.casiasurf`
-* :ref:`bob.db.casme2`
-* :ref:`bob.db.caspeal`
-* :ref:`bob.db.cbsr_nir_vis_2`
-* :ref:`bob.db.chasedb1`
-* :ref:`bob.db.cohface`
-* :ref:`bob.db.cuhk_cufs`
-* :ref:`bob.db.cuhk_cufsf`
-* :ref:`bob.db.drionsdb`
-* :ref:`bob.db.drishtigs1`
-* :ref:`bob.db.drive`
-* :ref:`bob.db.fargo`
-* :ref:`bob.db.frgc`
-* :ref:`bob.db.fv3d`
-* :ref:`bob.db.gbu`
-* :ref:`bob.db.hci_tagging`
-* :ref:`bob.db.hrf`
-* :ref:`bob.db.ijba`
-* :ref:`bob.db.ijbc`
-* :ref:`bob.db.iostar`
-* :ref:`bob.db.iris`
-* :ref:`bob.db.kboc16`
-* :ref:`bob.db.ldhf`
-* :ref:`bob.db.lfw`
-* :ref:`bob.db.livdet2013`
-* :ref:`bob.db.maskattack`
-* :ref:`bob.db.mnist`
-* :ref:`bob.db.mobio`
-* :ref:`bob.db.msu_mfsd_mod`
-* :ref:`bob.db.multipie`
-* :ref:`bob.db.nist_sre12`
-* :ref:`bob.db.nivl`
-* :ref:`bob.db.oulunpu`
-* :ref:`bob.db.pericrosseye`
-* :ref:`bob.db.pola_thermal`
-* :ref:`bob.db.putvein`
-* :ref:`bob.db.refuge`
-* :ref:`bob.db.replay`
-* :ref:`bob.db.replaymobile`
-* :ref:`bob.db.rimoner3`
-* :ref:`bob.db.scface`
-* :ref:`bob.db.siw`
-* :ref:`bob.db.stare`
-* :ref:`bob.db.swan`
-* :ref:`bob.db.utfvp`
-* :ref:`bob.db.uvad`
-* :ref:`bob.db.verafinger`
-* :ref:`bob.db.voicepa`
-* :ref:`bob.db.voxforge`
-* :ref:`bob.db.wine`
-* :ref:`bob.db.xm2vts`
-* :ref:`bob.db.youtube`
-
-
-
-Index of all Packages
+Index of all packages
 ---------------------
 
 .. toctree::
diff --git a/doc/packages.rst b/doc/packages.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4f285cacc7209aa891f355525b74a66d977398ca
--- /dev/null
+++ b/doc/packages.rst
@@ -0,0 +1,182 @@
+.. _bob.packages:
+
+Packages
+========
+
+Bob is organized in several independent python packages.
+You may `search PyPI <https://pypi.org/search/?o=-created&c=Framework+%3A%3A+Bob>`_
+for a comprehensive list of packages that either **use Bob** or **are part of Bob**.
+Moreover, you may find the list of Bob packages that we maintain below.
+
+
+Basic Functionality
+-------------------
+
+* :ref:`bob.core`
+* :ref:`bob.math`
+
+Data Input and Output
+---------------------
+
+* :ref:`bob.io.base`
+* :ref:`bob.io.image`
+* :ref:`bob.io.video`
+* :ref:`bob.io.audio`
+* :ref:`bob.io.matlab`
+
+Signal, Audio, Image and Video Processing
+-----------------------------------------
+
+* :ref:`bob.sp`
+* :ref:`bob.ap`
+* :ref:`bob.ip.base`
+* :ref:`bob.ip.color`
+* :ref:`bob.ip.draw`
+* :ref:`bob.ip.gabor`
+* :ref:`bob.ip.facedetect`
+* :ref:`bob.ip.facelandmarks`
+* :ref:`bob.ip.optflow.liu`
+* :ref:`bob.ip.optflow.hornschunck`
+* :ref:`bob.ip.flandmark`
+* :ref:`bob.ip.dlib`
+* :ref:`bob.ip.qualitymeasure`
+* :ref:`bob.ip.skincolorfilter`
+* :ref:`bob.ip.tensorflow_extractor`
+* :ref:`bob.ip.binseg`
+
+
+Machine Learning
+----------------
+
+* :ref:`bob.measure`
+* :ref:`bob.learn.linear`
+* :ref:`bob.learn.mlp`
+* :ref:`bob.learn.activation`
+* :ref:`bob.learn.libsvm`
+* :ref:`bob.learn.em`
+* :ref:`bob.learn.boosting`
+* :ref:`bob.learn.tensorflow`
+* :ref:`bob.learn.pytorch`
+
+Modules for Developers
+----------------------
+
+* :ref:`bob.devtools`
+* :ref:`bob.extension`
+* :ref:`bob.blitz`
+* :ref:`bob.buildout`
+
+Parallel Execution
+------------------
+
+* :ref:`gridtk`
+
+Biometric Recognition
+---------------------
+
+* :ref:`bob.bio.base`
+* :ref:`bob.bio.face`
+* :ref:`bob.bio.spear`
+* :ref:`bob.bio.vein`
+* :ref:`bob.bio.video`
+* :ref:`bob.bio.gmm`
+* :ref:`bob.bio.face_ongoing`
+* :ref:`bob.bio.htface`
+* :ref:`bob.ip.tensorflow_extractor`
+* :ref:`bob.fusion.base`
+
+
+Presentation Attack Detection (anti-spoofing)
+---------------------------------------------
+
+* :ref:`bob.pad.base`
+* :ref:`bob.pad.face`
+* :ref:`bob.pad.vein`
+* :ref:`bob.pad.voice`
+* :ref:`bob.fusion.base`
+
+
+Remote Heart Rate Measurement
+-----------------------------
+
+* :ref:`bob.rppg.base`
+
+
+Database Interfaces
+-------------------
+
+Base Database Packages
+^^^^^^^^^^^^^^^^^^^^^^
+
+* :ref:`bob.db.base`
+* :ref:`bob.bio.base`
+* :ref:`bob.pad.base`
+
+Interfaces
+^^^^^^^^^^
+
+* :ref:`bob.db.arface`
+* :ref:`bob.db.asvspoof2017`
+* :ref:`bob.db.asvspoof`
+* :ref:`bob.db.atnt`
+* :ref:`bob.db.atvskeystroke`
+* :ref:`bob.db.avspoof`
+* :ref:`bob.db.banca`
+* :ref:`bob.db.biosecure`
+* :ref:`bob.db.biosecurid.face`
+* :ref:`bob.db.casia_fasd`
+* :ref:`bob.db.casiasurf`
+* :ref:`bob.db.casme2`
+* :ref:`bob.db.caspeal`
+* :ref:`bob.db.cbsr_nir_vis_2`
+* :ref:`bob.db.chasedb1`
+* :ref:`bob.db.cohface`
+* :ref:`bob.db.cuhk_cufs`
+* :ref:`bob.db.cuhk_cufsf`
+* :ref:`bob.db.drionsdb`
+* :ref:`bob.db.drishtigs1`
+* :ref:`bob.db.drive`
+* :ref:`bob.db.fargo`
+* :ref:`bob.db.frgc`
+* :ref:`bob.db.fv3d`
+* :ref:`bob.db.gbu`
+* :ref:`bob.db.hci_tagging`
+* :ref:`bob.db.hrf`
+* :ref:`bob.db.ijba`
+* :ref:`bob.db.ijbc`
+* :ref:`bob.db.iostar`
+* :ref:`bob.db.iris`
+* :ref:`bob.db.kboc16`
+* :ref:`bob.db.ldhf`
+* :ref:`bob.db.lfw`
+* :ref:`bob.db.livdet2013`
+* :ref:`bob.db.maskattack`
+* :ref:`bob.db.mnist`
+* :ref:`bob.db.mobio`
+* :ref:`bob.db.msu_mfsd_mod`
+* :ref:`bob.db.multipie`
+* :ref:`bob.db.nist_sre12`
+* :ref:`bob.db.nivl`
+* :ref:`bob.db.oulunpu`
+* :ref:`bob.db.pericrosseye`
+* :ref:`bob.db.pola_thermal`
+* :ref:`bob.db.putvein`
+* :ref:`bob.db.refuge`
+* :ref:`bob.db.replay`
+* :ref:`bob.db.replaymobile`
+* :ref:`bob.db.rimoner3`
+* :ref:`bob.db.scface`
+* :ref:`bob.db.siw`
+* :ref:`bob.db.stare`
+* :ref:`bob.db.swan`
+* :ref:`bob.db.utfvp`
+* :ref:`bob.db.uvad`
+* :ref:`bob.db.verafinger`
+* :ref:`bob.db.voicepa`
+* :ref:`bob.db.voxforge`
+* :ref:`bob.db.wine`
+* :ref:`bob.db.xm2vts`
+* :ref:`bob.db.youtube`
+
+
+