Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Fri Jun 05 02:30:38 -0700 2009 | |
| |
MIT-LICENSE | Thu May 28 03:07:15 -0700 2009 | |
| |
README.textile | Tue Jul 07 10:51:24 -0700 2009 | |
| |
client.rb | Tue Jun 02 02:35:52 -0700 2009 | |
| |
http/ | Sat Nov 14 05:24:49 -0800 2009 | |
| |
jschat.rb | Thu Nov 12 02:53:50 -0800 2009 | |
| |
lib/ | Mon Nov 09 04:52:50 -0800 2009 | |
| |
server.rb | Mon May 11 03:21:31 -0700 2009 | |
| |
test/ | Fri Nov 06 04:26:34 -0800 2009 |

JsChat is a chat system. It has an easy to learn JSON protocol, an ncurses client, a web app, and a server. You can try it right now on jschat.org.
JsChat is similar to IRC, but it’s a fundamentally simpler system.
The web app has lots of interesting features:
- IRC-like commands: /names, /name new_name (/nick works too), /clear, /lastlog
- It’s pretty tiny; it’s built with Sinatra and Prototype
- Auto-linking: pasting an image displays it inline, youtube and vimeo videos will appear as well
- Last messages are displayed on join: the last 100 messages are displayed, so you don’t feel lost when you join a room
- Tab completion!

Ruby Library Requirements
These gems are required by JsChat:
- eventmachine
- ncurses (for the client)
- json
Usage
- Run the server with ./server.rb
- Connect a client with ./client.rb
The web app must be run alongside the server. The web app must be started in production mode:
http/jschat.rb -e production
The web app currently has no database dependencies, it’s a wrapper that links cookies to JsChat server proxies. You can run it on port 80 by configuring Rack or an Apache proxy. I have Apache set up this way on jschat.org.
Client Commands
- Change name or identify:
/nick name - Join a room:
/join #room - Join a room (alias):
/j #room
Protocol Design
The protocol is designed to be as close to executable JSON as possible, so clients and servers are simple to implement.
Look at client.rb JsChat::Protocol to see what I mean.
The Future
Hugely scalable nanite clusters with redundancy and ridiculous uptime, and an uplink to the Millennium Falcon. Skynet will launch its tactical nukes and humanity will be all but wiped out. Woops…
Hey, this is like Campfire!
I love Campfire and I didn’t intend for JsChat to compete with it. JsChat is just a fun project, it doesn’t offer Campfire’s business-friendly interface, file hosting, transcripts and Basecamp integration.
Credits
JsChat was created by Alex Young for Helicoid. A growing group of friends are helping out:
- nickmartini
- gabrielg
- Kevin Ford
If you’d like to contribute, send alexyoung a message on GitHub.
I TYPE GREAT!







