5 ms·
Show HN: Subway, a persistent web client for IRC
- thedjpetersen 15y agoOne 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.
- pavel_lishin 15y agoTo 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.)
- akavlie 15y agoThe 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/ http://ridezap.com:3000/
- patrickod 15y agoThe screenshots looks really beautiful. Unfortunately the demo link seems to be down at the moment
- thedjpetersen 15y agoShould be back up.
- Arelius 15y agoI had tried to setup web-irc previously. It was just so sensitive to particular library versions, I never got around to getting it working.
- davidcollantes 15y agoI 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. Other than that, it looks good.
- ds206 15y agoThis 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. I will check this out tonight. Good job.
- akavlie 15y agoHaven'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.
- daleharvey 15y agoLooks nice, I couldnt install the irc module on node 0.4.10 though, if I get time later I will try to get that fixed
- akavlie 15y agoI'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.
- nuclear_eclipse 15y agoNot 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: http://noswap.com/articles/irc/ http://noswap.com/articles/irc/
- akavlie 15y agoMain advantages are: 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.
- nuclear_eclipse 15y agoSorry, 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.
- jroll 15y agoI would have loved to have this when I worked at a company that only allowed HTTP(S) through the firewall.
- nuclear_eclipse 15y ago
- wickedchicken 15y agoYES. 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.
- akavlie 15y agoWhat tech stack would you use, if you built a client like this?
- wickedchicken 15y agoIt 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...
- akavlie 15y agoThe 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.
- mattdeboard 15y agoUse a bouncer like znc (or this) and you don't have to get emails, it'll just be there when you get back
- wickedchicken 15y agoI'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.
- hikkymemo 15y agoWhy not http://qwebirc.org/ http://qwebirc.org/ ?
- akavlie 15y agoActually, 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. See the discussion that spawned the whole thing here: https://github.com/paulirish/lazyweb-requests/issues/31 https://github.com/paulirish/lazyweb-requests/issues/31
- mattdeboard 15y agoFor 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.
- deleted 15y ago[deleted]
- nextparadigms 15y agoI 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.
- thedjpetersen 15y agoThere is a lot still missing. Mostly there is just basic command support. Messaging a user with /msg should work.
- akavlie 15y agoYeah, 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.
- methoddk 15y agoAs soon as I fix the issues plaguing me from installing the dependencies for this, it's replacing Colloquy. Thanks!
- akavlie 15y agoIf you have any questions about the installation, email me -- akavlie at gmail.
- switz 15y agoWow, this is great! I had to `npm install` the following modules in the lib directory: connect-assets irc bcrypt socket.io I'd love to be able to connect to multiple servers and auto-signin with NickServ and such.
- clintecker 15y agoLooks a lot like Alice: https://github.com/leedo/alice https://github.com/leedo/alice which powers http://usealice.org http://usealice.org