Index: package.json
===================================================================
--- package.json	(revision c9d48fc06842234564e4c67828b31129053ee62c)
+++ package.json	(revision 3bb871963d2470873ff771401fe536511e8ab995)
@@ -1,5 +1,5 @@
 {
   "name": "klonkt",
-  "version": "1.0.0-beta.2",
+  "version": "1.0.0-beta.3",
   "description": "Klonkt — zelf-gehost multi-site muziek- & blogplatform met community, realtime en (later) E2EE DMs. Node + SQLite + htmx.",
   "type": "module",
Index: src/middleware/render.js
===================================================================
--- src/middleware/render.js	(revision c9d48fc06842234564e4c67828b31129053ee62c)
+++ src/middleware/render.js	(revision 3bb871963d2470873ff771401fe536511e8ab995)
@@ -26,8 +26,14 @@
 const VIEWS_DIR = path.join(__dirname, '..', 'views');
 
-// App-versie (uit package.json) — getoond in de footer naast "Klonkt Beta".
+// App-versie (uit package.json) + korte commit-hash (uit .klonkt-version, door de
+// deploy geschreven) — getoond in de footer naast "Klonkt Beta". De hash loopt
+// automatisch mee bij élke deploy, dus de versie is nooit meer stale.
 let APP_VERSION = '';
 try {
   APP_VERSION = JSON.parse(fs.readFileSync(path.join(__dirname, '..', '..', 'package.json'), 'utf8')).version || '';
+  try {
+    const sha = fs.readFileSync(path.join(__dirname, '..', '..', '.klonkt-version'), 'utf8').trim().slice(0, 7);
+    if (sha) APP_VERSION += ' · ' + sha;
+  } catch { /* geen .klonkt-version (lokale dev) */ }
 } catch { /* geen versie beschikbaar */ }
 
