v1.0.0 · 138 commits · updated il y a 38 min

Modern chat for IRC.

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.

#orbit+TPnrtCH6 users
14:02 *** now talking in #orbit 14:02 --- topic: a self-hostable IRCv3 web client 14:03 <reverse> pushed the chathistory dedup, reconnect catches up clean now 14:03 <orbit> [orbit] reverse pushed 1 commit to main +0/-0/±7 14:05 <nova> does it do read-markers and reactions? 14:05 <reverse> yep, 25 caps. read-marker, multiline, redaction, web push 14:06 <kell> and i just point it at my own ircd? 14:06 <reverse> one config.json. no rebuild. 14:07 *** kell has joined #orbit
[14:07] [reverse(+i)] [2:#orbit(+TPnrtCH)]

// why orbit

Built on IRC, run on your own server.

Full IRCv325 capabilities negotiated: reactions, typing, read-markers, multiline, server-side history, account registration and Web Push, not just the basics.
One file re-points itconfig.json is read at runtime: server, channels, branding, themes and feature flags. One build serves any community.
A real PWAInstalls to the home screen, keeps an offline shell, and reaches you with the tab closed. Mobile-first, not a desktop app squeezed onto a phone.
Host it yourselfA static dist/ behind any web server. The project even runs its own git server with push-to-deploy.
Make it yoursSix themes including a retro yomIRC skin, full mIRC formatting, and a plugin API with real extension points and SRI.
Free softwareAGPL-3.0. React, TypeScript, Vite and zustand, tested and linted. Read every line.

// features

What's included.

Real-time

Reactions, replies, typing, read-markers, multiline and chat-history replay, carried over standard IRCv3 caps rather than faked client-side.

Composer

Bold/italic/colour, an emoji picker, @nick and :emoji: tab-completion, slash commands, per-channel drafts and image upload.

Accounts & SASL

SASL login and in-app account registration, with an optional Turnstile gate when you need one against bots.

Web Push

VAPID / RFC-8291 notifications that reach you with the tab closed or the app shut.

Plugins

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.

10 languages, 6 themes

A fully translated UI in ten languages, browser-detected and switchable; light, dark, Orbit and retro yomIRC skins.

// get started

Self-host it in five commands.

Clone, install, point public/config.json at your IRC server and build a static dist/. The full walkthrough is in the docs.

shellcopy
$ 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

Latest changes.

Pulled straight from the repository. Every push to main updates this list.

138commits
v1.0.0version
4contributors
AGPL-3.0licence
fdadf19footer_item: render only in the visible footer copy (true singleton)Jean · il y a 38 min
fec57afPlugins: add a footer_item UI slot for buttons in the app footer barJean · il y a 1 h
a4eb1dbconfig.json: add defaults.lang; document every option in CONFIG.mdJean · il y a 6 h
764f37dWire config.branding.icon/name into the real browser surfacesJean · il y a 7 h
8d604b8features.register also hides Forgot password + its FAQ; gate push auto-refreshJean · il y a 7 h
4182269Localise the bundled plugins and PWA manifest (all 10 languages)Jean · il y a 7 h
ce36366Localise the login-screen ambient chatter (all 10 languages)Jean · il y a 8 h
b4fdc17i18n the last hardcoded French: away/reconnect messages, Rooms tabJean · il y a 8 h
ec3ce4fComplete i18n across all 10 languages; kill hardcoded FrenchJean · il y a 8 h
6484aabHonour features.register and turnstile.enabled from configJean · il y a 9 h
34f0ef0Merge pull request 'Update dependency i18next to v26.3.4' (#6) from renovate/i18next-26.x-lockfile into mainJean Chevronnet · il y a 1 j
16e4a15Update dependency i18next to v26.3.4Renovate Bot · il y a 1 j
f370849Default startup channel #taverne -> #accueilJean · il y a 1 j
de62d3aMake guestIdent explicit in config.jsonJean · il y a 1 j
159d68aSilence plugin console logs in productionJean · il y a 1 j

// community

Get involved.

Source & issues

Developed in the open. Issues and patches welcome.

git.devtronic.pro/orbit/orbit

Clone it

Or pull from the project's own git server over HTTPS:

git clone https://orbit.tchatou.fr/orbit.git

Chat in #orbit

A live channel, running on Orbit itself, with a bot that posts every commit.

Open #orbit in Orbit