diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1b3acc78f32dd951272bab477e6bce050b3d0882..22da2dc63a95a23bce999df42e6637e33a4c4b7d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,26 @@
+# [1.0.0-beta.23](https://code.castopod.org/adaures/castopod/compare/v1.0.0-beta.22...v1.0.0-beta.23) (2022-09-29)
+
+### Bug Fixes
+
+- **premium-podcasts:** display unlock button in embed when premium episode
+  ([ca109ba](https://code.castopod.org/adaures/castopod/commit/ca109ba3a8a08e661fd2484454b1983c3418f15d))
+- **premium-podcasts:** remove cache in unlock form + redirect to podcast if
+  podcast is not premium
+  ([242352c](https://code.castopod.org/adaures/castopod/commit/242352c4d9cd936de14e8e8a5d78ebf1287b1f95))
+- **premium-podcasts:** return different cached page when podcast is unlocked
+  ([b1303c5](https://code.castopod.org/adaures/castopod/commit/b1303c525517498b0edfb9885ff36e08c72628b5))
+
+### Features
+
+- add instructions on production error page to ease Castopod debugging process
+  ([9eab54e](https://code.castopod.org/adaures/castopod/commit/9eab54e0853ccb8300d9f9b743cd84aefbf06549)),
+  closes [#224](https://code.castopod.org/adaures/castopod/issues/224)
+- add premium podcasts to manage subscriptions for premium episodes
+  ([3234500](https://code.castopod.org/adaures/castopod/commit/3234500e2d967438ad140f65da801a543f43775d)),
+  closes [#193](https://code.castopod.org/adaures/castopod/issues/193)
+- **gdpr:** add purpose for granting access to premium content
+  ([47d6d81](https://code.castopod.org/adaures/castopod/commit/47d6d81b798ec3ed467e0f4339c98c8a6b80cecd))
+
 # [1.0.0-beta.22](https://code.castopod.org/adaures/castopod/compare/v1.0.0-beta.21...v1.0.0-beta.22) (2022-09-23)
 
 ### Bug Fixes
diff --git a/app/Config/Constants.php b/app/Config/Constants.php
index 273b2a3049f882bb68ab27747d3eda4fd5409714..a01ad025b42b083bdad5736378ab78263c7a0706 100644
--- a/app/Config/Constants.php
+++ b/app/Config/Constants.php
@@ -11,7 +11,7 @@ declare(strict_types=1);
  |
  | NOTE: this constant is updated upon release with Continuous Integration.
  */
-defined('CP_VERSION') || define('CP_VERSION', '1.0.0-beta.22');
+defined('CP_VERSION') || define('CP_VERSION', '1.0.0-beta.23');
 
 /*
  | --------------------------------------------------------------------
diff --git a/composer.json b/composer.json
index 1b2e0ca3e6aaf709a39786826cec17225fc0b400..4952fafb2882f39feea349edc7dec5c61cf28dfb 100644
--- a/composer.json
+++ b/composer.json
@@ -1,6 +1,6 @@
 {
   "name": "podlibre/castopod-host",
-  "version": "1.0.0-beta22",
+  "version": "1.0.0-beta23",
   "type": "project",
   "description": "Castopod is an open-source hosting platform made for podcasters who want engage and interact with their audience.",
   "homepage": "https://castopod.org",
diff --git a/package-lock.json b/package-lock.json
index b054d4d4e342b03bf0b4f932de7643dc5280f35c..79ee918210b638f86a07e13e3c0750f78a67decf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "castopod-host",
-  "version": "1.0.0-beta.22",
+  "version": "1.0.0-beta.23",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
       "name": "castopod-host",
-      "version": "1.0.0-beta.22",
+      "version": "1.0.0-beta.23",
       "license": "AGPL-3.0-or-later",
       "dependencies": {
         "@amcharts/amcharts4": "^4.10.28",
diff --git a/package.json b/package.json
index 6d34954fddf3129010e0ff430a422c8b9a4324bd..82f11e15e34dc660cbe68d7f01aea498d63b8769 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "castopod-host",
-  "version": "1.0.0-beta.22",
+  "version": "1.0.0-beta.23",
   "description": "Castopod Host is an open-source hosting platform made for podcasters who want engage and interact with their audience.",
   "private": true,
   "license": "AGPL-3.0-or-later",