Carbon: The Matrix client for Discord refugees.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cadence b83cede3ec Merge pull request 'Update readme' (#7) from erkinalp/carbon:princess into princess 17 minutes ago
src Adjust group list internal sizing 2 hours ago
.drone.yml Fix drone failing on pr 22 hours ago
.gitignore Add login pug file 1 day ago
.npmrc dotfiles 1 week ago
LICENSE Add AGPL-3.0-only license 20 hours ago Requested fixes — take two 20 minutes ago
build.js Fix all relative paths in built output 20 hours ago
jsconfig.json Revert "Add prettier" 1 day ago
package-lock.json Revert "Add prettier" 1 day ago
package.json Add AGPL-3.0-only license 20 hours ago
spec.js Member data and message dates 1 day ago

Carbon Chat

Carbon is the Matrix client for Discord and Guilded refugees.

The dream

Carbon’s planned features, compared to Discord and Guilded:

  • End to end encryption
  • Free of charge per-account custom emojis and custom emoji packs
  • No limit to number of groups you can join at a time
  • Uses the open Matrix and Mumble systems
  • Much better IRC layout
  • Probably more

Carbon’s planned features, compared to Element:

  • Get rid of the unmanageable combined rooms list
  • Groups like Discord/Guilded guilds
    • Always have one group selected at a time
    • Synchronised membership, moderators, power levels and bans
    • Ordered channel list
    • Unread indicators
  • Add existing channels to groups
  • Pin any channel to the groups bar
  • Tidy Mumble integration to add voice channels
  • More reliable unreads
  • Per-account custom emojis (Ponies+FluffyChat integration) and custom emoji packs
  • Slightly better IRC layout
  • Probably more

The reality

Carbon is currently technically usable as a chat app, but is very early in development. These important features still need to be implemented:

  • Login GUI
  • Unreads
  • Chat history
  • Formatting
  • Emojis
  • Reactions
  • Groups v2
  • Group management
  • Pinned channels
  • Mumble integration

The code


npm install -D
npm run rebuild


Send the files from the build folder to a static file server. Apply a long cache-control header to everything served under /static, and no cache-control header to everything else.


npm run watch

Files will be rebuilt as you save them.