Carbon: The Matrix client for Discord refugees.
Find a file
Cadence Ember 34af1be7d1
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
Use dependencies instead of devDependencies
2020-11-05 18:14:17 +13:00
src Use JSDelivr CDN for highlight.js 2020-11-05 18:03:25 +13:00
.drone.yml Push build artifacts to dev.carbon.chat 2020-10-30 23:00:49 +01:00
.gitignore Emacs files to gitignore 2020-10-29 17:27:38 +13:00
.npmrc dotfiles 2020-10-12 02:25:53 +13:00
build.js Only hint modules once 2020-11-05 17:48:13 +13:00
jsconfig.json Revert "Add prettier" 2020-10-20 00:43:33 +13:00
LICENSE Add AGPL-3.0-only license 2020-10-21 00:30:35 +13:00
package-lock.json Use dependencies instead of devDependencies 2020-11-05 18:14:17 +13:00
package.json Use dependencies instead of devDependencies 2020-11-05 18:14:17 +13:00
README.md Update readme - add bug report instructions 2020-10-21 22:53:47 +13:00
spec.js Use JSDelivr CDN for highlight.js 2020-11-05 18:03:25 +13:00

Carbon Chat

Carbon is the Matrix client for Discord and Guilded refugees.

Visit the hosted instance on https://carbon.chat.

Report bugs and suggest features

Please briefly check this README and the issues page first to make sure that the issue/feature is not already known!

  • If you already have an account on Gitdab, use the issues page.
  • If you don't have an account, and don't wish to create one, you can send an email to the mailing list.

If something in the interface isn't working as you think it should, please provide a screenshot of any messages from the browser devtools console. If using the mailing list, attachments aren't supported, so you'll have to upload to some image host and post the link.

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:

  • Unreads
  • Chat history
  • Typing indicators
  • Formatting
  • Emojis
  • Reactions
  • Encryption
  • Groups v2
  • Group management
  • Pinned channels
  • Mumble integration

The code

Downloading a CI build

Visit drone CI, select the branch you want to use, select b2 on the left, scroll down, and open the URL on the last line to download the build.

Building yourself

npm install -D
npm run rebuild

Hosting

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.

Developing

npm run watch

Files will be rebuilt as you save them.

Use python3 -m http.server -d build to serve the build on http://localhost:8000.

(Avoid npx http-server, since this applies too much caching.)