diff --git a/CHANGELOG.md b/CHANGELOG.md
index 85d76ab3974e5d28b71cddef5fbb37edc38d7c6e..bf8e8b5b579fe94da77e66a2d126c35257f42fdc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@ Note that since we don't clearly distinguish between a public and private interf
 
 ## [Unreleased]
 
+## [v3.23.0] - 2022-10-19
+
 - Add `PluginContext.initContainer/mount/unmount` methods; these should make it easier to reuse a plugin context with both custom and built-in UI
 - Add `PluginContext.canvas3dInitialized`
 - `createPluginUI` now resolves after the 3d canvas has been initialized