System Architecture
Colophon
This digital interface is a high-performance, static-rendered research hub designed for maximum information density and visual comfort.
The typography uses JetBrains Mono, a typeface specifically designed for developers and deep reading comfort. The color scheme is based on Gruvbox, a retro-groove palette known for its exceptional balance between high contrast and eye comfort during long operational sessions.
Infrastructure is deployed on GitLab Pages with global CDN edge-cache delivery. The site maintains a 100/100 Lighthouse performance score through optimized asset delivery and minimal runtime dependencies.
Optional WebDAV sync
The Silver chat can optionally sync its history across devices to a WebDAV endpoint that you own (Nextcloud, or any server that sends CORS headers). Sync is off by default — it only activates after you enter an endpoint in the chat panel’s sync settings, and the conversation file (silver-chat.json) lives entirely on your server. No third-party cloud is involved.
Need a minimal, CORS-enabled WebDAV server? Any nginx with the webdav module works — here’s a containerized example:
docker run -d --name dav -p 8080:80 \
-e USERNAME=alice -e PASSWORD='change-me' \
-v $(pwd)/dav-data:/var/lib/dav \
--restart unless-stopped \
bytemark/webdav
Then allow cross-origin requests from this site by adding these headers to the proxy (nginx example):
add_header Access-Control-Allow-Origin https://wmouton.gitlab.io;
add_header Access-Control-Allow-Methods 'GET, PUT, OPTIONS';
add_header Access-Control-Allow-Headers 'Authorization, Content-Type';
In the chat panel, set the WebDAV URL to the full file path (e.g. https://dav.example.com/silver-chat.json) plus the username and password for the server, then hit Save & sync.
Core Stack
- Engine: Hugo Static Site Generator
- Logic: Vanilla JavaScript (ES6+)
- Assistant: Silver — on-device site knowledge chatbot (retrieval over a build-time snapshot of all site content; zero data leaves the browser)
- Sync (optional): WebDAV — cross-device chat history sync to a server you own, OFF by default; enabled from the chat panel's sync settings (endpoint must send CORS headers)
- Motion: GSAP (GreenSock)
- Styling: Semantic CSS3 (No Frameworks)
Visual Identity
- Palette: Gruvbox Dark/Light Medium
- Typography: JetBrains Mono
- Icons: Custom SVG / Lucide
- UX: Privacy-Respecting Analytics / Cookie-Less