A small web chat demonstration with replikativ.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
resources/public
src
test/chat42
.gitignore
CHANGELOG.md
LICENSE
README.md
callback-hell.jpg
clojure_code_survival.jpeg
hickey_meme.jpg
presentation.html
presentation.org
project.clj
quick_demo.gif

README.md

chat42 Gitter

We have a demo deployed on IPFS. It uses a websocket connection to our test server on topiq.es. This is a simple web-chat application which leverages replikativ for its state management.

quick demo

chat42 consists of two parts, a client written with ClojureScript and om-next (react) that compiles into efficient Javascript, and a server written in Clojure that brokers communication between peers over a websocket. The server will be available for node.js soon and is only necessary to ensure a communication channel.

There is also a react native client.

It was initially created as a presentation for ClojureScript in our local JavaScript meetup.

Usage

You need to have Leiningen installed.

Client development

Just run figwheel and edit core.cljs as needed. If the replikativ parts are un clear, also have a look at the API walkthrough.

lein figwheel

This allows you to develop the client against our test server.

Server peer

If you want to persist and distribute your own state, run the server with:

lein run

The server will automatically connect to our new test net and dump potentially a few gigabytes to your disk. If you don't want this, comment out:

(connect! stage "ws://replikativ.io")

to

#_(connect! stage "ws://replikativ.io")

in core.clj

You also have to change the uri in core.cljs to make the client connect to your server and not the test server.

If you have any problems, questions or suggestions, please join our gitter chat.

License

Copyright © 2016-2017 Konrad Kühne, Christian Weilbach

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.