diff --git a/docs/source/conf.py b/docs/source/conf.py
index 4b4687e1dd3894197ea5d1ffd4ea8ea3eea8f029..7126a483de6d439e044f42153ee3af80afe710af 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -1,12 +1,3 @@
-import os
-import sys
-
-sys.path.insert(0, os.path.abspath(
-    os.path.join(
-        os.path.dirname(__file__),
-        '..', 'gso')))
-
-
 # -- Project information -----------------------------------------------------
 project = 'GÉANT Service Orchestrator'
 copyright = '2023, GÉANT Vereniging'
diff --git a/docs/source/module/api/index.rst b/docs/source/module/api/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c1e75155b0e7ffcfb829f6b42ef8e72eb62fed62
--- /dev/null
+++ b/docs/source/module/api/index.rst
@@ -0,0 +1,15 @@
+``gso.api``
+===========
+
+.. automodule:: gso.api
+   :members:
+   :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   v1/index
diff --git a/docs/source/module/api/v1/imports.rst b/docs/source/module/api/v1/imports.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b40e8edaed706c8656407fa1fc8d1b3d9bc060be
--- /dev/null
+++ b/docs/source/module/api/v1/imports.rst
@@ -0,0 +1,6 @@
+``gso.api.v1.imports``
+======================
+
+.. automodule:: gso.api.v1.imports
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/api/v1/index.rst b/docs/source/module/api/v1/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c5a4a0c55a90ccc798d55190e87c52336c56f1c4
--- /dev/null
+++ b/docs/source/module/api/v1/index.rst
@@ -0,0 +1,15 @@
+``gso.api.v1``
+==============
+
+.. automodule:: gso.api.v1
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   imports
diff --git a/docs/source/module/cli/import_sites.rst b/docs/source/module/cli/import_sites.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f7e19edef1744d40c3fddacf60efb6f48417aa54
--- /dev/null
+++ b/docs/source/module/cli/import_sites.rst
@@ -0,0 +1,6 @@
+``gso.cli.import_sites``
+========================
+
+.. automodule:: gso.cli.import_sites
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/cli/index.rst b/docs/source/module/cli/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..02bb0773058c3fb779f121c483a87fec5e56b0fa
--- /dev/null
+++ b/docs/source/module/cli/index.rst
@@ -0,0 +1,16 @@
+``gso.cli``
+===========
+
+.. automodule:: gso.cli
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   import_sites
+   netbox
diff --git a/docs/source/module/cli/netbox.rst b/docs/source/module/cli/netbox.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8d379335ee1211f930d76d79a576bafe16a2fe68
--- /dev/null
+++ b/docs/source/module/cli/netbox.rst
@@ -0,0 +1,6 @@
+``gso.cli.netbox``
+==================
+
+.. automodule:: gso.cli.netbox
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/products/index.rst b/docs/source/module/products/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c68072cc071e570f268408b67e656b63a1ed4bf6
--- /dev/null
+++ b/docs/source/module/products/index.rst
@@ -0,0 +1,21 @@
+``gso.products``
+================
+
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 1
+
+   product_blocks/index
+   product_types/index
+
+Submodules
+----------
+
+``gso.products.shared`` module
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. automodule:: gso.products.shared
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/products/product_blocks/index.rst b/docs/source/module/products/product_blocks/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..309e18b62f81f25b4cfffe6c60fd77b46bd07d06
--- /dev/null
+++ b/docs/source/module/products/product_blocks/index.rst
@@ -0,0 +1,19 @@
+``gso.products.product_blocks``
+===============================
+
+``gso.products.product_blocks`` package
+---------------------------------------
+
+.. automodule:: gso.products.product_blocks
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 1
+
+   iptrunk
+   router
+   site
diff --git a/docs/source/module/products/product_blocks/iptrunk.rst b/docs/source/module/products/product_blocks/iptrunk.rst
new file mode 100644
index 0000000000000000000000000000000000000000..150b7cbad3da767e202598bb803a6680651494dc
--- /dev/null
+++ b/docs/source/module/products/product_blocks/iptrunk.rst
@@ -0,0 +1,6 @@
+``gso.products.product_blocks.iptrunk``
+=======================================
+
+.. automodule:: gso.products.product_blocks.iptrunk
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/products/product_blocks/router.rst b/docs/source/module/products/product_blocks/router.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4ef96d9cbf0e5cf64345113f1fd91da8a063b1e3
--- /dev/null
+++ b/docs/source/module/products/product_blocks/router.rst
@@ -0,0 +1,6 @@
+``gso.products.product_blocks.router``
+======================================
+
+.. automodule:: gso.products.product_blocks.router
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/products/product_blocks/site.rst b/docs/source/module/products/product_blocks/site.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4b1415f44545d3944eae88c29cb3390e5a5b4007
--- /dev/null
+++ b/docs/source/module/products/product_blocks/site.rst
@@ -0,0 +1,6 @@
+``gso.products.product_blocks.site``
+====================================
+
+.. automodule:: gso.products.product_blocks.site
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/products/product_types/index.rst b/docs/source/module/products/product_types/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..80b73721a04437a9b4e54060927bd6de6ef4dc31
--- /dev/null
+++ b/docs/source/module/products/product_types/index.rst
@@ -0,0 +1,9 @@
+``gso.products.product_types``
+==============================
+
+``gso.products.product_types`` package
+--------------------------------------
+
+.. automodule:: gso.products.product_types
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/schemas/enums.rst b/docs/source/module/schemas/enums.rst
new file mode 100644
index 0000000000000000000000000000000000000000..54dc21f967c8a02160ff4c1413d13719b5ad8be9
--- /dev/null
+++ b/docs/source/module/schemas/enums.rst
@@ -0,0 +1,6 @@
+``gso.schemas.enums``
+=====================
+
+.. automodule:: gso.schemas.enums
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/schemas/imports.rst b/docs/source/module/schemas/imports.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2015ea3efeb9a85beb62b83753455bcdabcc39aa
--- /dev/null
+++ b/docs/source/module/schemas/imports.rst
@@ -0,0 +1,6 @@
+``gso.schemas.imports``
+=======================
+
+.. automodule:: gso.schemas.imports
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/schemas/index.rst b/docs/source/module/schemas/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a56c90903015287946b1d7d9da853537c6a8523f
--- /dev/null
+++ b/docs/source/module/schemas/index.rst
@@ -0,0 +1,17 @@
+``gso.schemas``
+===============
+
+.. automodule:: gso.schemas
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   enums
+   imports
+   types
diff --git a/docs/source/module/schemas/types.rst b/docs/source/module/schemas/types.rst
new file mode 100644
index 0000000000000000000000000000000000000000..58b064999b4d89c88794dede5ba7eb1f065e1f1d
--- /dev/null
+++ b/docs/source/module/schemas/types.rst
@@ -0,0 +1,6 @@
+``gso.schemas.types``
+=====================
+
+.. automodule:: gso.schemas.types
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/services/crm.rst b/docs/source/module/services/crm.rst
new file mode 100644
index 0000000000000000000000000000000000000000..cee4e5018343626463809b6a9cb7a4bb499937ff
--- /dev/null
+++ b/docs/source/module/services/crm.rst
@@ -0,0 +1,6 @@
+``gso.services.crm``
+====================
+
+.. automodule:: gso.services.crm
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/services/index.rst b/docs/source/module/services/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..26190e2968a848d3fb06e491b52572dd4fca8faa
--- /dev/null
+++ b/docs/source/module/services/index.rst
@@ -0,0 +1,19 @@
+``gso.services``
+================
+
+.. automodule:: gso.services
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   crm
+   infoblox
+   netbox_client
+   provisioning_proxy
+   subscriptions
diff --git a/docs/source/module/services/infoblox.rst b/docs/source/module/services/infoblox.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d05316c9a246659376d301cbfb657ce3ac558aaa
--- /dev/null
+++ b/docs/source/module/services/infoblox.rst
@@ -0,0 +1,6 @@
+``gso.services.infoblox``
+=========================
+
+.. automodule:: gso.services.infoblox
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/services/netbox_client.rst b/docs/source/module/services/netbox_client.rst
new file mode 100644
index 0000000000000000000000000000000000000000..26891ede7814fe84c2f0c39031367cf9d7679e45
--- /dev/null
+++ b/docs/source/module/services/netbox_client.rst
@@ -0,0 +1,6 @@
+``gso.services.netbox_client``
+==============================
+
+.. automodule:: gso.services.netbox_client
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/services/provisioning_proxy.rst b/docs/source/module/services/provisioning_proxy.rst
new file mode 100644
index 0000000000000000000000000000000000000000..756edf2642d865e3104af928fbddd047c3d4ed32
--- /dev/null
+++ b/docs/source/module/services/provisioning_proxy.rst
@@ -0,0 +1,6 @@
+``gso.services.provisioning_proxy``
+===================================
+
+.. automodule:: gso.services.provisioning_proxy
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/services/subscriptions.rst b/docs/source/module/services/subscriptions.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8b2bfbed50c0f873814049cfd3a6aed3409500a9
--- /dev/null
+++ b/docs/source/module/services/subscriptions.rst
@@ -0,0 +1,6 @@
+``gso.services.subscriptions``
+==============================
+
+.. automodule:: gso.services.subscriptions
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/utils/device_info.rst b/docs/source/module/utils/device_info.rst
new file mode 100644
index 0000000000000000000000000000000000000000..4a332bd7d9caab2d64555fed4f9efab4ddb8d272
--- /dev/null
+++ b/docs/source/module/utils/device_info.rst
@@ -0,0 +1,6 @@
+``gso.utils.device_info``
+=========================
+
+.. automodule:: gso.utils.device_info
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/utils/exceptions.rst b/docs/source/module/utils/exceptions.rst
new file mode 100644
index 0000000000000000000000000000000000000000..98414a525231a1488358aeaeed8cb4aea4025729
--- /dev/null
+++ b/docs/source/module/utils/exceptions.rst
@@ -0,0 +1,6 @@
+``gso.utils.exceptions``
+========================
+
+.. automodule:: gso.utils.exceptions
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/utils/index.rst b/docs/source/module/utils/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1b0b55295fbef85d1eb3fb539efc7a48b96dbd9c
--- /dev/null
+++ b/docs/source/module/utils/index.rst
@@ -0,0 +1,16 @@
+``gso.utils``
+=============
+
+.. automodule:: gso.utils
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   device_info
+   exceptions
diff --git a/docs/source/module/workflows/index.rst b/docs/source/module/workflows/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b89cf2bce0132dda7478def4ff5a55f6b18a4096
--- /dev/null
+++ b/docs/source/module/workflows/index.rst
@@ -0,0 +1,27 @@
+``gso.workflows``
+=================
+
+.. automodule:: gso.workflows
+   :members:
+   :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   iptrunk/index
+   router/index
+   site/index
+   tasks/index
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   utils
diff --git a/docs/source/module/workflows/iptrunk/create_iptrunk.rst b/docs/source/module/workflows/iptrunk/create_iptrunk.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3105f051175521d0c7dd7f40fdc51902b83ccc89
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/create_iptrunk.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.create_iptrunk``
+========================================
+
+.. automodule:: gso.workflows.iptrunk.create_iptrunk
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/iptrunk/index.rst b/docs/source/module/workflows/iptrunk/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3bfaec18bfb011680bf0ef5b902b587aeb6b3e6c
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/index.rst
@@ -0,0 +1,20 @@
+``gso.workflows.iptrunk``
+=========================
+
+.. automodule:: gso.workflows.iptrunk
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   create_iptrunk
+   migrate_iptrunk
+   modify_isis_metric
+   modify_trunk_interface
+   terminate_iptrunk
+   utils
diff --git a/docs/source/module/workflows/iptrunk/migrate_iptrunk.rst b/docs/source/module/workflows/iptrunk/migrate_iptrunk.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3ae52e5f71428e25c1281f8e35b8d2f4eb0adc90
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/migrate_iptrunk.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.migrate_iptrunk``
+=========================================
+
+.. automodule:: gso.workflows.iptrunk.migrate_iptrunk
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/iptrunk/modify_isis_metric.rst b/docs/source/module/workflows/iptrunk/modify_isis_metric.rst
new file mode 100644
index 0000000000000000000000000000000000000000..3f3a17deb07f87911a507f256e25bfcbba46cadf
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/modify_isis_metric.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.modify_isis_metric``
+============================================
+
+.. automodule:: gso.workflows.iptrunk.modify_isis_metric
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/iptrunk/modify_trunk_interface.rst b/docs/source/module/workflows/iptrunk/modify_trunk_interface.rst
new file mode 100644
index 0000000000000000000000000000000000000000..aad531eadc83b6c78c0e744931c41fa0502aa138
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/modify_trunk_interface.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.modify_trunk_interface``
+================================================
+
+.. automodule:: gso.workflows.iptrunk.modify_trunk_interface
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/iptrunk/terminate_iptrunk.rst b/docs/source/module/workflows/iptrunk/terminate_iptrunk.rst
new file mode 100644
index 0000000000000000000000000000000000000000..9a11c0c4bb82ddadd68f5e96ba8821fd9c91f91b
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/terminate_iptrunk.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.terminate_iptrunk``
+===========================================
+
+.. automodule:: gso.workflows.iptrunk.terminate_iptrunk
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/iptrunk/utils.rst b/docs/source/module/workflows/iptrunk/utils.rst
new file mode 100644
index 0000000000000000000000000000000000000000..96f665efadcf6e1286eef83b061ee27e574898e4
--- /dev/null
+++ b/docs/source/module/workflows/iptrunk/utils.rst
@@ -0,0 +1,6 @@
+``gso.workflows.iptrunk.utils``
+===============================
+
+.. automodule:: gso.workflows.iptrunk.utils
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/router/create_router.rst b/docs/source/module/workflows/router/create_router.rst
new file mode 100644
index 0000000000000000000000000000000000000000..e30abc03c292c14d9420bc7d0eef0da07e68eca6
--- /dev/null
+++ b/docs/source/module/workflows/router/create_router.rst
@@ -0,0 +1,6 @@
+``gso.workflows.router.create_router``
+======================================
+
+.. automodule:: gso.workflows.router.create_router
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/router/index.rst b/docs/source/module/workflows/router/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..11c3f71c734ac62f2e3ea194222eb6478816b335
--- /dev/null
+++ b/docs/source/module/workflows/router/index.rst
@@ -0,0 +1,16 @@
+``gso.workflows.router``
+========================
+
+.. automodule:: gso.workflows.router
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   create_router
+   terminate_router
diff --git a/docs/source/module/workflows/router/terminate_router.rst b/docs/source/module/workflows/router/terminate_router.rst
new file mode 100644
index 0000000000000000000000000000000000000000..0ac1ec450f4c88d79150227f4d7f4f08c25404ac
--- /dev/null
+++ b/docs/source/module/workflows/router/terminate_router.rst
@@ -0,0 +1,6 @@
+``gso.workflows.router.terminate_router``
+=========================================
+
+.. automodule:: gso.workflows.router.terminate_router
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/site/create_site.rst b/docs/source/module/workflows/site/create_site.rst
new file mode 100644
index 0000000000000000000000000000000000000000..45a9ef49d0d8bbc38a8ead230288330dc67e081f
--- /dev/null
+++ b/docs/source/module/workflows/site/create_site.rst
@@ -0,0 +1,6 @@
+``gso.workflows.site.create_site``
+==================================
+
+.. automodule:: gso.workflows.site.create_site
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/site/index.rst b/docs/source/module/workflows/site/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..396ddca109acad7044fb5e5fb05bc7d02608de5c
--- /dev/null
+++ b/docs/source/module/workflows/site/index.rst
@@ -0,0 +1,15 @@
+``gso.workflows.site``
+======================
+
+.. automodule:: gso.workflows.site
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   create_site
diff --git a/docs/source/module/workflows/tasks/import_iptrunk.rst b/docs/source/module/workflows/tasks/import_iptrunk.rst
new file mode 100644
index 0000000000000000000000000000000000000000..24a4be08f99a22f03e107ebef8d1cb58e5d0815b
--- /dev/null
+++ b/docs/source/module/workflows/tasks/import_iptrunk.rst
@@ -0,0 +1,6 @@
+``gso.workflows.tasks.import_iptrunk``
+======================================
+
+.. automodule:: gso.workflows.tasks.import_iptrunk
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/tasks/import_router.rst b/docs/source/module/workflows/tasks/import_router.rst
new file mode 100644
index 0000000000000000000000000000000000000000..65a6e60741a9d13b4dd3fc2dc3d796550b12b22e
--- /dev/null
+++ b/docs/source/module/workflows/tasks/import_router.rst
@@ -0,0 +1,6 @@
+``gso.workflows.tasks.import_router``
+=====================================
+
+.. automodule:: gso.workflows.tasks.import_router
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/tasks/import_site.rst b/docs/source/module/workflows/tasks/import_site.rst
new file mode 100644
index 0000000000000000000000000000000000000000..eb9280dff87c304ac2d7853931ce64203929851e
--- /dev/null
+++ b/docs/source/module/workflows/tasks/import_site.rst
@@ -0,0 +1,6 @@
+``gso.workflows.tasks.import_site``
+===================================
+
+.. automodule:: gso.workflows.tasks.import_site
+   :members:
+   :show-inheritance:
diff --git a/docs/source/module/workflows/tasks/index.rst b/docs/source/module/workflows/tasks/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..8feb3de360ac547ed291e2dfceb07d84e5724c75
--- /dev/null
+++ b/docs/source/module/workflows/tasks/index.rst
@@ -0,0 +1,17 @@
+``gso.workflows.tasks``
+=======================
+
+.. automodule:: gso.workflows.tasks
+   :members:
+   :show-inheritance:
+
+Submodules
+----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   import_iptrunk
+   import_router
+   import_site
diff --git a/docs/source/module/workflows/utils.rst b/docs/source/module/workflows/utils.rst
new file mode 100644
index 0000000000000000000000000000000000000000..85c007f728710bf73912dc96609e6d63084a945a
--- /dev/null
+++ b/docs/source/module/workflows/utils.rst
@@ -0,0 +1,6 @@
+``gso.workflows.utils``
+=======================
+
+.. automodule:: gso.workflows.utils
+   :members:
+   :show-inheritance:
diff --git a/docs/source/modules.rst b/docs/source/modules.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2a4c409bd19b1175b67bf0d7023eeaff19e1f6b2
--- /dev/null
+++ b/docs/source/modules.rst
@@ -0,0 +1,31 @@
+=========================
+Sub-packages and -modules
+=========================
+
+This page contains references to the documentation of all sub-packages and -modules that make up :term:`GSO`.
+
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 2
+   :titlesonly:
+
+   module/api/index
+   module/cli/index
+   module/products/index
+   module/schemas/index
+   module/services/index
+   module/utils/index
+   module/workflows/index
+
+Submodules
+----------
+
+``gso.settings`` module
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. automodule:: gso.settings
+   :members:
+   :undoc-members:
+   :show-inheritance: