diff --git a/osgi-bundles/bundles/logger/html-sse-demo.md b/osgi-bundles/bundles/logger/html-sse-demo.md
new file mode 100644
index 000000000..a092ff575
--- /dev/null
+++ b/osgi-bundles/bundles/logger/html-sse-demo.md
@@ -0,0 +1,261 @@
+### HTML SSE Demo
+
+1. Build the project: `mvn clean install -pl osgi-bundles/bundles/logger`
+2. Copy the JAR to `platform` plugin directory
+3. Copy HTML content below to ``
+4. Run this using `python3 -m http.server 3000 -d ` or `npx serve -l 3000 `
+5. Open `http://localhost:3000`, fill in the Base URL and your Kill Bill username/password, then click **Connect**
+
+**Auth note:** this plugin's `/plugins/killbill-osgi-logger/**` endpoint now requires HTTP Basic Auth
+(see `BasicAuthFilter`, registered on this plugin's Jooby app only — other plugins are unaffected). The
+native browser `EventSource` API cannot set custom request headers (no way to send `Authorization: Basic
+...`), so this demo bundles [EventSource/eventsource](https://github.com/EventSource/eventsource) (MIT
+license, v5.1.2), a browser-compatible `EventSource` polyfill/replacement built on `fetch`, which supports
+a `fetch` override — used here to inject the Basic Auth header per request. It's bundled as a single
+minified IIFE (via `esbuild`, no build step required on your end) and pasted directly into the
+`
+
+