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.
a51c50dfix yomirc hover-toolbar clipping (compact toolbar); channel switch always jumps to the newest messageJean · il y a 23 jdc6ced4fix hover toolbar clipping at the top of the message listJean · il y a 23 j5a9bb3dlobby: config-gate intent buttons, drop gaming, route intents to #accueil, set channel suggestionsJean · il y a 23 jffaca4cmonospace UI across all themes, connect-screen language switcher, es dating labelJean · il y a 23 jc54fa07i18n: translate the 9 keys missing from the 8 non-fr/en locales; default tchatou to FrenchJean · il y a 23 j997ea67profile metadata: fetch via GET, handle 766, mute benign METADATA FAILJean · il y a 24 j2086fe4account profiles via draft/metadata-2 (avatar/bio/pronouns/timezone/url)Jean · il y a 24 jaed817aCBAN window: the join button switches the active view to the suggested channelJean · il y a 28 j431432fShow a window when a JOIN is refused by a network CBAN (926)Jean · il y a 28 j2eab043Point games plugin at GamesServ (live service nick; GameServ is reserved)Jean · 21/07/20265d90c54Externalize theme-init so the app CSP needs no inline-script hashJean · 21/07/2026f9a1ac0Don't re-negotiate caps or SASL on a post-registration CAP NEWJean · 21/07/20269b2b66fsurface +draft/reply and +draft/channel-context on service noticesJean · 21/07/2026d567627show +draft/channel-context on service noticesJean · 21/07/2026b31aceayomirc: show sender channel-status prefix in message linesJean · 18/07/2026// community
Or pull from the project's own git server over HTTPS:
git clone https://git.devtronic.pro/orbit/orbit.gitA live channel, running on Orbit itself, with a bot that posts every commit.
Open #orbit in Orbit