The other collaborator here. I started with a similar client called web-irc, to make a better open source web IRC client. I combined forced with thedjpetersen because his tech stack was almost identical. And it looked better, to boot :-)
Tech used: Node.js, node-irc, socket.io, Backbone.js, and MongoDB for optional message logging on persistent connections.
Feedback and contributions welcome.
This article is linked to the github repo, but you can use the client directly here: http://ridezap.com:3000/
One of the collaborators here. Subway came to me as an idea a few months ago when I heard one of my co-workers trying to explain how to set up screen and IRSSI. The project has taken about 3 months to complete. There is still things to add like better IRC support and search.
A quick disclaimer the logo right now is a Gowalla Icon, this is only a placeholder I am working on designing a new logo.
To me it looks like a G train - which is notorious in NYC for running behind an already crappy schedule. (The local nickname is the Ghost train, though it's apparently gotten better recently.)
Not to be negative, but what does this have that couldn't be done better with ZNC and a proper IRC client? I get a persistent connection to the IRC server, logs and push notifications to my phone when I'm not connected or paying attention, and I can connect from as any IRC client I want to, or connect from multiple clients simultaneously. [1] Granted, the web client does look really really nice, but as a whole it seems like an inferior solution to me.
I would really love to see that web client made so that it could connect to any server or bouncer, and not just your own proprietary backend.
1. Accessible to those who don't have expertise or interest in setting up their own IRC bouncer
2. Usable from any web browser
3. More friendly UI
4. Usable by sites that want a chat room for their users (look at twit.tv -- embedded IRC client front and center).
There is no proprietary backend; the whole client, and the library powering it (node-irc), are open source.
Sorry, perhaps "proprietary" was a bad choice. What I meant was that I would appreciate if the web client itself didn't require or rely on the nodejs/mongodb backend, and could instead operate directly on top of an IRC server or bouncer.
Ie, I would like to run your web client on my machine, have it connect directly to my IRC bouncer (or directly to a remote IRC server), and not require a local database to use it. I'm interested in using it as just another IRC client that connects to my IRC bouncer, rather than it being my primary IRC client. From what I see, this isn't possible.
My point is there are already plenty of pure web IRC clients that don't rely on a local database; none of them (that I've seen) have any sort of nice interface like this does. There are also plenty of applications that will proxy non-HTTP connections over HTTP proxies. Corkscrew [1] also allows you to tunnel SSH connections over HTTP proxy, and you can use SSH to tunnel just about anything else you need.
I'm aware there are other solutions. Compared to all the work I did to properly tunnel SSH over HTTPS (it was a pretty good firewall, apparently), deploying a node app is trivial.
I actually looked into Quassel a while back, and although it looks interesting, the biggest issue I had with it was the apparent inability to mix existing IRC clients into a Quassel setup, not to mention it lacks a unified set of notifications.
With ZNC on my server, I can connect any standard IRC client to it, whether its Irssi or Weechat running in screen on my server, Xchat on my desktop machines, or AndChat on my phone. I also receive only a single push notification to my phone when I get mentioned or PMed, and can literally connect from anywhere to respond.
YES. This is exactly what I've been planning in my head since IRCCloud doesn't seem to be handing out invites. Too bad this is in node/mongo otherwise I would love to contribute.
It has less to do with technical reasons and more that node (and javascript in general) rubs me the wrong way. If the tech works for you then roll with it. Personally I think go works where node is often used, but fits my style of development better.
Not to throw more feature work on you guys, but I always thought it would be neat to have an IRC client email you if someone mentions you while you were away...
The majority of the code is in the front end... so even if you go with a different backend, you have to learn to love JavaScript when doing a project like this ;-)
JS used to really irritate me, but I've grown to appreciate it quite a bit after learning its idioms and getting more practice.
I'm thinking more of a notification. Imagine monitoring a product support channel: if someone mentions you you want to know about it so you can pop into the channel if needed. I don't want to stare at a chat screen all the time.
Alternately, if you don't like Colloquy or don't have an iPhone, I wrote a module called ZNC Push that works with multiple push notification providers, including Boxcar, Prowl, and Notify My Android. I'm also happy to integrate more providers if someone has any requests.
This same idea was my excuse to learn javascript/node :) I went the "re-invent the wheel" route and skipped node-irc and Backbone for extra javascript fun.
The interface looks good from the screenshots but how well does it work on a phone? For that reason I went with a minimal terminal-like interface to make it possible.
Haven't done any work (yet) on a mobile interface. I think it would scale down pretty well by simply cutting out the sidebars past a certain screen size threshhold (via media queries), and making them dropdowns or something at the top. I'm not a designer though, so making that look good is the challenge.
I tried it. Could not get authenticated by nickserv on Freenode, got no replies. If you enter a wrong server (i.e., freenode.net, instead of chat.freenode.net) it continuously tells me the server is wrong, there seems not to be a give up time.
I like the interface, and I want to use it, but a lot of stuff seems to be missing, like I'd expect to double click on a user and open a private windows with him. Also most of the commands don't seem to work either.
Yeah, we realize that a lot of functionality and IRC commands are still missing, beyond the basics. It's still under active development, we just decided that it's in good enough shape now to post on HN.
It would help a lot if you could post issues on github for missing features.
For those of you like me who are completely unfamiliar with node, in addition to the instructions on the README, you must also run `npm install` in the subway directory.
I've tried deployment on Nodester, which is running node 0.4.9. It had issues, though not caused by node-irc, as far as I could tell. Best to run it on 0.6 in any event; that's what we're using in development.
Actually, my work on web-irc started originally as an attempt to improve qwebirc. I found the code difficult to reason about, and thought we could do better with a clean start and socket.io-based messaging. So I started my own thing.
Tech used: Node.js, node-irc, socket.io, Backbone.js, and MongoDB for optional message logging on persistent connections.
Feedback and contributions welcome.
This article is linked to the github repo, but you can use the client directly here: http://ridezap.com:3000/