diff --git a/docs/forge-support.yml b/docs/forge-support.yml
index 2d37870cd0904ce5dd5e14e3a376553288b7c4c7..bca2acddfd3a7399b68a633b4325552edbc87df2 100644
--- a/docs/forge-support.yml
+++ b/docs/forge-support.yml
@@ -38,7 +38,8 @@ forges:
       status: N/A
     loader:
       status: prod
-      source: https://forge.softwareheritage.org/source/swh-loader-bzr/
+      source: https://gitlab.softwareheritage.org/swh/devel/swh-loader-bzr/
+      package_name: swh.loader.bzr
       grant: sloan-octobus-2021
       developer: octobus
 
@@ -115,6 +116,7 @@ forges:
     loader:
       status: prod
       source: https://gitlab.softwareheritage.org/swh/devel/swh-loader-cvs/
+      package_name: swh.loader.cvs
       grant: sloan-stsp-cvs
       developer: stsp
 
@@ -146,7 +148,8 @@ forges:
       status: N/A
     loader:
       status: prod
-      source: https://forge.softwareheritage.org/source/swh-loader-git/
+      source: https://gitlab.softwareheritage.org/swh/devel/swh-loader-git/
+      package_name: swh.loader.git
 
   github:
     name: GitHub
@@ -226,7 +229,8 @@ forges:
       status: N/A
     loader:
       status: prod
-      source: https://forge.softwareheritage.org/source/swh-loader-mercurial/
+      source: https://gitlab.softwareheritage.org/swh/devel/swh-loader-mercurial/
+      package_name: swh.loader.mercurial
       grant: sloan-2020
       developer: octobus
 
@@ -329,7 +333,8 @@ forges:
       status: N/A
     loader:
       status: prod
-      source: https://forge.softwareheritage.org/source/swh-loader-svn/
+      source: https://gitlab.softwareheritage.org/swh/devel/swh-loader-svn/
+      package_name: swh.loader.svn
 
   tuleap:
     name: Tuleap
diff --git a/swh/docs/generate_forge_list.py b/swh/docs/generate_forge_list.py
index 3bc31493236b4c79cb420159be1a6bcaa2cc19a6..8df35f1d121d093cc5d3b0baffbd11b75a419e32 100644
--- a/swh/docs/generate_forge_list.py
+++ b/swh/docs/generate_forge_list.py
@@ -52,11 +52,14 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
                 f"https://gitlab.softwareheritage.org/swh/devel/swh-loader-core/-/"
                 f"tree/master/swh/loader/package/{forge_id}"
             )
+            default_package_name = f"swh.loader.package.{forge_id}"
         else:
             default_source = (
                 f"https://gitlab.softwareheritage.org/swh/devel/swh-lister/-/"
                 f"tree/master/swh/lister/{forge_id}"
             )
+            default_package_name = f"swh.lister.{forge_id}"
+        package_name = forge[lister_or_loader].get("package_name", default_package_name)
         links.append(
             (
                 f"{forge_id}-source",
@@ -78,7 +81,10 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
             continue
         elif status == "dev":
             status_cell = "In development"
-            links_cell = f"* `Source Code <{forge_id}-source_>`__"
+            links_cell = (
+                f"* `Source Code <{forge_id}-source_>`__\n"
+                f"* :mod:`Developer documentation <{package_name}>`"
+            )
         elif status == "staging":
             status_cell = "In staging"
             if lister_or_loader == "loader":
@@ -92,6 +98,7 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
 
                 links_cell = (
                     f"* `Source Code <{forge_id}-source_>`__\n"
+                    f"* :mod:`Developer documentation <{package_name}>`\n"
                     f"* `Browse origins <{forge_id}-origins_>`__"
                 )
             else:
@@ -104,6 +111,7 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
                 )
                 links_cell = (
                     f"* `Source Code <{forge_id}-source_>`__\n"
+                    f"* :mod:`Developer documentation <{package_name}>`\n"
                     f"* `See coverage <{forge_id}-coverage_>`__"
                 )
         elif status == "prod":
@@ -118,6 +126,7 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
                 )
                 links_cell = (
                     f"* `Source Code <{forge_id}-source_>`__\n"
+                    f"* :mod:`Developer documentation <{package_name}>`\n"
                     f"* `Browse origins <{forge_id}-origins_>`__"
                 )
             else:
@@ -130,6 +139,7 @@ def write_table(data, lister_or_loader: Literal["lister", "loader"], file) -> No
                 )
                 links_cell = (
                     f"* `Source Code <{forge_id}-source_>`__\n"
+                    f"* :mod:`Developer documentation <{package_name}>`\n"
                     f"* `See coverage <{forge_id}-coverage_>`__"
                 )
         else: