Real-time
Reactions, replies, typing, read-markers, multiline and chat-history replay, carried over standard IRCv3 caps rather than faked client-side.
Orbit gives IRC the interface you'd expect from a chat app today: reactions,
replies, typing, read-markers, history and push, all in the browser. Point it at your own
server and rebrand it from one config.json, with no rebuild.
// why orbit
config.json is read at runtime: server, channels, branding, themes and feature flags. One build serves any community.dist/ behind any web server. The project even runs its own git server with push-to-deploy.// features
Reactions, replies, typing, read-markers, multiline and chat-history replay, carried over standard IRCv3 caps rather than faked client-side.
Bold/italic/colour, an emoji picker, @nick and :emoji: tab-completion, slash commands, per-channel drafts and image upload.
SASL login and in-app account registration, with an optional Turnstile gate when you need one against bots.
VAPID / RFC-8291 notifications that reach you with the tab closed or the app shut.
A documented Orbit API with composer, topbar, sidebar and settings slots plus per-message actions. Each runs in its own error boundary and can be pinned with SRI.
A fully translated UI in ten languages, browser-detected and switchable; light, dark, Orbit and retro yomIRC skins.
// get started
Clone, install, point public/config.json at your IRC server and build a static
dist/. The full walkthrough is in the docs.
$ git clone https://git.devtronic.pro/orbit/orbit.git $ cd orbit $ npm install $ npm run dev # http://localhost:5173 $ npm run build # dist/ (serve behind /app/)
// changelog
Pulled straight from the repository. Every push to main updates this list.
fdadf19footer_item: render only in the visible footer copy (true singleton)Jean · il y a 38 minfec57afPlugins: add a footer_item UI slot for buttons in the app footer barJean · il y a 1 ha4eb1dbconfig.json: add defaults.lang; document every option in CONFIG.mdJean · il y a 6 h764f37dWire config.branding.icon/name into the real browser surfacesJean · il y a 7 h8d604b8features.register also hides Forgot password + its FAQ; gate push auto-refreshJean · il y a 7 h4182269Localise the bundled plugins and PWA manifest (all 10 languages)Jean · il y a 7 hce36366Localise the login-screen ambient chatter (all 10 languages)Jean · il y a 8 hb4fdc17i18n the last hardcoded French: away/reconnect messages, Rooms tabJean · il y a 8 hec3ce4fComplete i18n across all 10 languages; kill hardcoded FrenchJean · il y a 8 h6484aabHonour features.register and turnstile.enabled from configJean · il y a 9 h34f0ef0Merge pull request 'Update dependency i18next to v26.3.4' (#6) from renovate/i18next-26.x-lockfile into mainJean Chevronnet · il y a 1 j16e4a15Update dependency i18next to v26.3.4Renovate Bot · il y a 1 jf370849Default startup channel #taverne -> #accueilJean · il y a 1 jde62d3aMake guestIdent explicit in config.jsonJean · il y a 1 j159d68aSilence plugin console logs in productionJean · il y a 1 j// community
Or pull from the project's own git server over HTTPS:
git clone https://orbit.tchatou.fr/orbit.gitA live channel, running on Orbit itself, with a bot that posts every commit.
Open #orbit in Orbit