NullVoxPopuli Merge branch 'bugfix-for-invitations' into 'master'
Resolves #46

Closes #46

See merge request NullVoxPopuli/emberclear!57
Latest commit ed13782 Nov 20, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
images add comparison link Oct 31, 2018
packages Resolves #46 Nov 20, 2018
scripts split out tests Sep 23, 2018
.editorconfig Initial Commit from Ember CLI v3.1.2 Apr 19, 2018
.gitignore silly fastboot Jun 21, 2018
.gitlab-ci.yml Additional enhancements Nov 18, 2018
.gitmodules maybe now... spelling Jul 7, 2018
.travis.yml Refactoring + Tests Nov 11, 2018
LICENSE use more popular copyleft license Jun 7, 2018 add codeclimate badge Nov 18, 2018
renovate.json Configure Renovate Nov 16, 2018
run Try to upgrade things Sep 21, 2018


pipeline status coverage report Maintainability

An implementation of the mesh-chat protocol.

emberclear is published at:

Another Chat App?

Yes, there is a lack of trust that manifests when existing chat apps are closed source and centralized. Emberclear, by design, is trustless -- meaning that, while there is a server component, the server knows nothing more than your "public key". The server(s) are also meant to be a hot-swappable member of a mesh network, so no one implementation matters, as long as the same protcol is used.

Here is a table of detailing out some differences between emberclear and other chat apps:


Note: the frontend code is in packages/frontend. This is to separate the over-arching repo files from the individual project(s).

git submodule update --init --recursive
./run yarn start:dev

Question: should the relay finally become part of the same project?

Written in ember for demonstration of

  • progressive web apps
  • server side rendering (via prember, since this is statically hosted)
  • service workers
  • websockets
  • typescript
  • all the modern features / best practices of ember


  • implement WebRTC for messaging/audio/video and use websockets as a fallback
    • ensure that WebRTC messages can be manually encrypted (otherwise, it's not worth it)
  • websocket via WebWorker for disconnecting the UI App from the data management so that the UI App can update independently from the WebWorker Socket Connection
  • WASM / ASM.js Renderer


Module Resolution:

// shows all detected services
Object.keys(window.requirejs.entries).filter(b => b.includes("service"))

File Watch Problems?

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p


GNU General Public License version 3