diff --git a/.docker/release/files/usr/local/include/application.ini b/.docker/release/files/usr/local/include/application.ini
index 26a267aa18..f4bb30b778 100644
--- a/.docker/release/files/usr/local/include/application.ini
+++ b/.docker/release/files/usr/local/include/application.ini
@@ -316,5 +316,5 @@ dev_email = ""
dev_password = ""
[version]
-current = "2.28.3"
+current = "2.28.4"
saved = "Sun, 18 Dec 2022 22:10:48 +0000"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 52600deb7f..c655d05bdf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,33 @@
+## 2.28.4 – 2023-07-10
+
+## Added
+- application.ini msg_default_action by @SergeyMosin
+ [#1204](https://github.com/the-djmaze/snappymail/pull/1204)
+- application.ini view_show_next_message by @SergeyMosin
+ [#1204](https://github.com/the-djmaze/snappymail/pull/1204)
+- application.ini view_images by @SergeyMosin
+ [#1204](https://github.com/the-djmaze/snappymail/pull/1204)
+- nextcloud add ability to include custom php file in InstallStep migration by @SergeyMosin
+ [#1197](https://github.com/the-djmaze/snappymail/pull/1197)
+- Support plugin for Squire editor
+ [#1192](https://github.com/the-djmaze/snappymail/pull/1192)
+
+## Changed
+- only show 'Add "domain.tld" as an application for mailto links?' message after login (firefox shows the message on every reload otherwise).
+ [#1204](https://github.com/the-djmaze/snappymail/pull/1204)
+- Convert getPdoAccessData() : array to a RainLoop\Pdo\Settings object instance
+- New bidi buttons to Squire editor by @rezaei92
+ [#1200](https://github.com/the-djmaze/snappymail/pull/1200)
+
+## Fixed
+- Undefined constant PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT
+ [#1205](https://github.com/the-djmaze/snappymail/pull/1205)
+- 'reloadTime' function result is passed into 'setInterval' instead of the function by @SergeyMosin
+ [#1204](https://github.com/the-djmaze/snappymail/pull/1204)
+- UNKNOWN-CTE Invalid data in MIME part
+ [#1186](https://github.com/the-djmaze/snappymail/pull/1186)
+
+
## 2.28.3 – 2023-06-22
## Added
diff --git a/README.md b/README.md
index 9caad6e1ea..a38de8de73 100644
--- a/README.md
+++ b/README.md
@@ -141,26 +141,26 @@ RainLoop 1.17 vs SnappyMail
|js/* |RainLoop |Snappy |
|--------------- |--------: |--------: |
-|admin.js |2.170.153 | 80.019 |
-|app.js |4.207.787 | 407.675 |
+|admin.js |2.170.153 | 80.102 |
+|app.js |4.207.787 | 407.874 |
|boot.js | 868.735 | 4.142 |
-|libs.js | 658.812 | 186.360 |
+|libs.js | 658.812 | 187.076 |
|sieve.js | 0 | 85.141 |
|polyfills.js | 334.608 | 0 |
|serviceworker.js | 0 | 285 |
-|TOTAL |8.240.095 | 763.622 |
+|TOTAL |8.240.095 | 764.620 |
|js/min/* |RainLoop |Snappy |RL gzip |SM gzip |RL brotli |SM brotli |
|--------------- |--------: |--------: |------: |------: |--------: |--------: |
-|admin.min.js | 256.831 | 39.288 | 73.606 | 13.149 | 60.877 | 11.797 |
-|app.min.js | 515.367 | 186.141 |139.456 | 62.886 |110.485 | 54.077 |
+|admin.min.js | 256.831 | 39.350 | 73.606 | 13.163 | 60.877 | 11.805 |
+|app.min.js | 515.367 | 186.311 |139.456 | 62.929 |110.485 | 54.076 |
|boot.min.js | 84.659 | 2.084 | 26.998 | 1.202 | 23.643 | 1.003 |
-|libs.min.js | 584.772 | 90.581 |180.901 | 33.692 |155.182 | 30.254 |
+|libs.min.js | 584.772 | 90.808 |180.901 | 33.754 |155.182 | 30.224 |
|sieve.min.js | 0 | 41.399 | 0 | 10.394 | 0 | 9.356 |
|polyfills.min.js | 32.837 | 0 | 11.406 | 0 | 10.175 | 0 |
-|TOTAL user |1.217.635 | 278.806 |358.761 | 97.780 |299.485 | 85.334 |
-|TOTAL user+sieve |1.217.635 | 320.205 |358.761 |108.174 |299.485 | 94.690 |
-|TOTAL admin | 959.099 | 131.953 |292.911 | 48.043 |249.877 | 43.054 |
+|TOTAL user |1.217.635 | 279.203 |358.761 | 97.885 |299.485 | 85.303 |
+|TOTAL user+sieve |1.217.635 | 320.602 |358.761 |108.279 |299.485 | 94.659 |
+|TOTAL admin | 959.099 | 132.242 |292.911 | 48.119 |249.877 | 43.032 |
For a user it is around 72% smaller and faster than traditional RainLoop.
diff --git a/integrations/cloudron/DESCRIPTION.md b/integrations/cloudron/DESCRIPTION.md
index d12fb23aaa..417438dca9 100644
--- a/integrations/cloudron/DESCRIPTION.md
+++ b/integrations/cloudron/DESCRIPTION.md
@@ -1,4 +1,4 @@
-This app packages SnappyMail 2.28.3.
+This app packages SnappyMail 2.28.4.
SnappyMail is a simple, modern, lightweight & fast web-based email client.
diff --git a/integrations/cloudron/Dockerfile b/integrations/cloudron/Dockerfile
index b824dde1ea..d9ed736d98 100644
--- a/integrations/cloudron/Dockerfile
+++ b/integrations/cloudron/Dockerfile
@@ -4,7 +4,7 @@ RUN mkdir -p /app/code
WORKDIR /app/code
# If you change the extraction below, be sure to test on scaleway
-VERSION=2.28.3
+VERSION=2.28.4
RUN wget https://github.com/the-djmaze/snappymail/releases/download/v${VERSION}/snappymail-${VERSION}.zip -O /tmp/snappymail.zip && \
unzip /tmp/snappymail.zip -d /app/code && \
rm /tmp/snappymail.zip && \
diff --git a/integrations/nextcloud/snappymail/appinfo/info.xml b/integrations/nextcloud/snappymail/appinfo/info.xml
index 81c1ae7b3f..a7834e5d3b 100644
--- a/integrations/nextcloud/snappymail/appinfo/info.xml
+++ b/integrations/nextcloud/snappymail/appinfo/info.xml
@@ -3,7 +3,7 @@
snappymail
SnappyMail
SnappyMail Webmail
- 2.28.3
+ 2.28.4
agpl
SnappyMail, RainLoop Team, Nextgen-Networks, Tab Fitts, Nathan Kinkade, Pierre-Alain Bandinelli