diff --git a/docs/deployment/vps.md b/docs/deployment/vps.md
index 71719e2..570e214 100644
--- a/docs/deployment/vps.md
+++ b/docs/deployment/vps.md
@@ -277,6 +277,31 @@ incremental sync from the same modal.
---
+## Reading user feedback
+
+Users can submit feedback from the **Feedback** link in the nav (visible when logged in).
+Submissions are stored as JSON on the server:
+
+```
+/var/bincio/data/_feedback/
+ {handle}.json ← one file per user, array of submissions
+ {handle}/ ← attached images
+```
+
+To read all feedback:
+
+```bash
+cat /var/bincio/data/_feedback/*.json | python3 -m json.tool
+```
+
+Per-user only:
+
+```bash
+cat /var/bincio/data/_feedback/pres.json | python3 -m json.tool
+```
+
+---
+
## Day-to-day operations
| Task | Command |
diff --git a/site/src/layouts/Base.astro b/site/src/layouts/Base.astro
index 7cc36f7..83c6dd3 100644
--- a/site/src/layouts/Base.astro
+++ b/site/src/layouts/Base.astro
@@ -176,6 +176,7 @@ try {
Convert
)}
About
+
>
)}
@@ -375,9 +376,11 @@ try {
el.href = baseUrl + 'u/' + user.handle + '/' + el.getAttribute('data-user-path');
});
- // Show logout button
+ // Show logout button and feedback link
const logoutEl = document.getElementById('nav-logout');
if (logoutEl) logoutEl.style.display = '';
+ const feedbackEl = document.getElementById('nav-feedback');
+ if (feedbackEl) feedbackEl.style.display = '';
// Pre-populate the "keep original" checkbox from the instance default
const chk = document.getElementById('upload-keep-original');
diff --git a/site/src/pages/feedback/index.astro b/site/src/pages/feedback/index.astro
new file mode 100644
index 0000000..df401b0
--- /dev/null
+++ b/site/src/pages/feedback/index.astro
@@ -0,0 +1,162 @@
+---
+import Base from '../../layouts/Base.astro';
+---
+
Report a bug, suggest a feature, or share anything useful. Plain text only — no account details needed.
+ + + +Thanks!
+Your feedback has been received.
+