diff --git a/pages/site/releases/3.10.md b/pages/site/releases/3.10.md
index 338c7f6..5c6ad47 100644
--- a/pages/site/releases/3.10.md
+++ b/pages/site/releases/3.10.md
@@ -598,4 +598,146 @@
 Fix vertical alignment of header icon and text
 
 * [Change 425577](https://gerrit-review.googlesource.com/425577):
-Fix bogus account labels
\ No newline at end of file
+Fix bogus account labels
+
+## Bugfix releases
+
+### 3.10.1 (In Development)
+
+* Enhancements
+
+  * [Change 429477](https://gerrit-review.googlesource.com/429477):
+  Update Material Icons, as they were last updated in 2022 and some icons were missing,
+  like the `expand_circle_up`.
+
+* Bug Fixes
+
+  * [Issue 346618790](https://issues.gerritcodereview.com/issues/346618790):
+  Fix reload of plugins causing incorrect deregistration of dynamic items.
+
+  * [Issue 346350837](https://issues.gerritcodereview.com/issues/346350837):
+  Fix binding of ApiModule bindings upon plugin reload.
+
+  * [Issue 344608194](https://issues.gerritcodereview.com/issues/344608194):
+  Only suggest hashtags for those matching the input, including also regular
+  expressions.
+
+  * [Issue 343218480](https://issues.gerritcodereview.com/issues/343218480):
+  Fix translation of custom Prolog rules SubmitRecord to SubmitRequirement(s).
+
+* Security Fixes
+
+  * [Change 431217](https://gerrit-review.googlesource.com/431217):
+  Use constant-time comparison for hashed password validation, for increased security.
+
+* Performance fixes
+
+  * [Change 431497](https://gerrit-review.googlesource.com/431497):
+  Improved offline reindex performance when disk caches have many hits.
+
+  * [Change 430777](https://gerrit-review.googlesource.com/431017):
+  Re-use revwalk for loading ChangeKindCache.
+
+  * [Change 431037](https://gerrit-review.googlesource.com/431037):
+  Stop calling `addPatchSets()` twice call when populating change query result.
+
+  * [Change 431039](https://gerrit-review.googlesource.com/431039):
+  Lazy load labelTypes when populating change query result.
+
+  * [Change 431040](https://gerrit-review.googlesource.com/431040):
+  Reduce duplicate work when a caller uses both `--patch-sets` and  `--current-patch-set`
+  in change query.
+
+  * [Change 431018](https://gerrit-review.googlesource.com/431018):
+  Clone `PatchSetAttribute` for `currentPatchSet` when populating change query result.
+
+    if both `--patch-sets` and `--current-patch-set` are given, populate the
+    `patchSetAttribute` for `currentPatchSet` using the fields already populated
+    or all patch sets.
+
+* Documentation Fixes
+
+  * [Issue 352081004](https://issues.gerritcodereview.com/issues/352081004):
+  Clarify that comment links work on html-escaped text.
+
+  * [Change 432157](https://gerrit-review.googlesource.com/432157):
+  HttpPasswordUpdateEmailDecorator: Fix link to http credentials.
+
+* UI Fixes
+
+  * [Change 431878](https://gerrit-review.googlesource.com/c/gerrit/+/431878):
+  gr-rest-api-impl: Remove duplicate base url from _fetchB64File
+
+  * [Change 431657](https://gerrit-review.googlesource.com/431657):
+  Fix code commenting popup position under Firefox.
+
+  * [Change 431417](https://gerrit-review.googlesource.com/431417):
+  Add support for using `diff3` for rebasing and cherry-pick with conflicts.
+
+    `change.diff3ConflictView` setting is now honoured also for rebase
+    and cherry-pick with conflicts
+
+  * [Change 429857](https://gerrit-review.googlesource.com/429857):
+  Use h2 header for `Run GC` command.
+
+  * [Change 429822](https://gerrit-review.googlesource.com/429822):
+  Relative comment links without `/` prefix are converted to absolute links.
+
+    Any link not starting with `/` is automatically prefixed `https://`.
+
+* Plugin changes
+
+  * `replication` updated to 445cd03
+
+    You can retrieve the full list of changes with:
+
+    ```shell
+    git log --no-merges --format=oneline 56b8ffb..445cd03
+    ```
+
+    notable changes are:
+
+    * [Change 384754](https://gerrit-review.googlesource.com/c/plugins/replication/+/384754):
+    Avoid opportunity to inadvertently block the distributor.
+
+    * [Change 383694](https://gerrit-review.googlesource.com/c/plugins/replication/+/383694):
+    Reduced log level for Task deletion errors in MP setups.
+
+    * [Change 352174](https://gerrit-review.googlesource.com/c/plugins/replication/+/352174):
+    Reduced log level for no-op distributor push consolidations.
+
+  * `delete-project` updated to bd49c1bf
+
+    You can retrieve the full list of changes with:
+
+    ```shell
+    git log --no-merges --format=oneline ea78b4b..bd49c1bf
+    ```
+
+* JGit changes
+
+  * [Change 433257](https://gerrit-review.googlesource.com/c/gerrit/+/433257) and
+    [Change 432237](https://gerrit-review.googlesource.com/c/gerrit/+/432237):
+    Update JGit to cfdfb01f4
+
+    You can retrieve the full list of changes with:
+
+    ```shell
+    git log --no-merges --format=oneline c0b415fb0..cfdfb01f4
+    ```
+
+    notable changes are:
+
+    * cfdfb01f4 RepoProject: read the 'dest-branch' attribute of a project
+    * 4bc6eb8a7 RepoCommand: Add error to ManifestErrorException
+    * 784f0baec RepoCommand: Copy manifest upstream into .gitmodules ref field
+    * e55341115 RepoProject: read the "upstream" attribute of a project
+    * c0c59ccf2 PatchApplier: Set a boolean on the result if conflict markers were added
+    * cac835835 WalkFetchConnection: Remove marked packs on all function exits
+    * 6e9a17036 Allow applying a patch with conflicts
+    * 28c3ae172 sshd: fix IdentiesOnly if SSH agent is enabled and has keys
+    * c1f95130c Check an execution bit by reading it from the file system
+    * 567315af5 ResolveMerger: Fix the issue with binary modify-modify conflicts
+    * e4b4f063b MergeAlgorithm: Fix diff3 conflict hunk computation
+    * d24eee7d5 [gpg] Correct finding public keys from pubring.gpg
+    * ed8c394eb [gpg] Fix reading ed25519 GPG keys
