Shore is a static, dependency-free client. No bundler, no build step, no npm install. It's served directly by the Keel backend, or by any static host pointed at a Keel instance.
Point a Keel instance's config.toml at this checkout:
[frontend]
hosted=true
frontend_directory="../Shore"Keel will then serve Shore directly. Just edit the files and reload.
| Path | Purpose |
|---|---|
index.html |
HTML shell, dialogs |
media/main.js |
UI logic: message rendering, channels/members, mentions, calls, embeds/diagrams |
media/utility.js |
Shared helpers (sanitizeHTML, backendfetch, notice, affirm, etc.) |
media/calls.js |
WebRTC call handling |
media/login.js |
Auth/signup flow |
media/style.css |
All styling, themed via CSS variables (--accent, --bg-*, --text-*, --roundness-*) |
media/langs/*.json |
i18n strings |
external/ |
Vendored third-party libs (markdown parser, Mermaid) |
Add a new file under media/langs/ (copy en-US.json as a starting point) and add every key present in the other locale files. Placeholders like {} must be preserved.
Current translations:
| Locale | Contributor |
|---|---|
| en-US, es-ES, tok, uwu | Inventionpro |
| fa | FrenchToblerone54 |
| nl-NL | MrLarso2002 |
MIT, see LICENSE.md.
