diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3dfa76fe52208b0fc7bde8e30e8b64120a41daf2..de66a52bf256afb98c58ab6e6b3483872c63eb51 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,10 @@ If a change only affects particular applications, they are listed in parentheses
 
 ## Unreleased
 
+Nothing at the moment.
+
+## 3.1.0 (2024-04-10)
+
 - feat(buffyboard): Handle input device connection/disconnection at runtime; adds new dependency libudev
 - feat(buffyboard): Allow choosing theme via config and add all themes from unl0kr
 - feat(buffyboard): Add fbdev force-refresh quirk via config
diff --git a/buffyboard/meson.build b/buffyboard/meson.build
index 246bced9d691014cb19720b887ebb5375ba307fd..5f5f49a48802cac155a1e8312155112c32a220f6 100644
--- a/buffyboard/meson.build
+++ b/buffyboard/meson.build
@@ -5,7 +5,7 @@
 project(
   'buffyboard',
   'c',
-  version: '3.0.0',
+  version: '3.1.0',
   default_options: 'warning_level=1',
   meson_version: '>=0.53.0'
 )
diff --git a/unl0kr/meson.build b/unl0kr/meson.build
index b6b3b80c4f4c5ad3f6771c80bfccbbbee0bfb3c3..925d7377ff3ecdc5ce94623c8f93d02e4d7c9eca 100644
--- a/unl0kr/meson.build
+++ b/unl0kr/meson.build
@@ -5,7 +5,7 @@
 project(
   'unl0kr',
   'c',
-  version: '3.0.0',
+  version: '3.1.0',
   default_options: 'warning_level=3',
   meson_version: '>=0.53.0'
 )