7 ms·
Show HN: A browser-based IRC client built on Node.js – first Node project
- euank 12y agoOther browser-based irc clients written in nodejs: KiwiIRC - Probably the most used of them. https://github.com/prawnsalad/KiwiIRC https://github.com/prawnsalad/KiwiIRC Subway - I've been following this one for a bit because it look promising. It's nice. https://github.com/thedjpetersen/subway https://github.com/thedjpetersen/subway nirc - This one is pretty simple and I'd say a little less polished than yours, but still does a lot of things right. https://github.com/cjstewart88/nirc https://github.com/cjstewart88/nirc If anyone knows of others, I'm interested. I'd also like to plug glowing-bear (https://glowing-bear.github.io/glowing-bear/ https://glowing-bear.github.io/glowing-bear/) since it's a rather cool project. It's an entirely static html5 frontend to weechat.
- RKoutnik 12y agorelay.js is also nice: https://github.com/Fauntleroy/relay.js https://github.com/Fauntleroy/relay.js
- deleted 12y ago[deleted]
- cjbprime 12y agoHi, some more: Waartaa - new, written in Meteor, part of Google Summer of Code - https://github.com/waartaa/waartaa https://github.com/waartaa/waartaa gnotty - https://github.com/stephenmcd/gnotty https://github.com/stephenmcd/gnotty ircanywhere - https://github.com/ircanywhere/ircanywhere https://github.com/ircanywhere/ircanywhere WebIRC - https://github.com/pavben/WebIRC https://github.com/pavben/WebIRC
- deleted 12y ago[deleted]
- tjohns 12y agoIt's not based on Node.js, but CIRC is worth mentioning because it's pure JS IRC client that doesn't need a relay server: http://flackr.github.io/circ/ http://flackr.github.io/circ/ https://github.com/flackr/circ https://github.com/flackr/circ It uses the chrome.socket APIs to connect directly to the IRC network.
- icebraining 12y agoAnd about a decade before that we had Chatzilla: http://en.wikipedia.org/wiki/ChatZilla http://en.wikipedia.org/wiki/ChatZilla
- yaddayadda 12y ago@ _redwire It'd be nice to see a functional demo site. It'd also be nice to have a direct link to the github repository - https://github.com/redwire/aIRChat https://github.com/redwire/aIRChat Why zip instead of npm distribution?
- aroch 12y agoLooks like they do have a link in the footer (`Github` is linked): All of the source material is hosted on Github, and contributions of all kinds are welcome!
- _redwire 12y agoThanks for the suggestions! I used to have aIRChat running as a web service straight off the VPS hosting its official website, but I encountered a lot of trouble when people started connecting over it, as many IRC networks apparently limit the number of connections allowed from a single source. Having exceptions made for each network would have been a considerable challenge. There is a link to the repository under the "contributing" section of the main site, but you're definitely right that I should have something more obvious. I'll do that! I'm really not familiar with how NPM works, and I wanted to try to make the distribution as simple as possible for all users on all OSs, so I figured distributing everything the user needs in one package and providing an install script was the best I could do with my limited knowledge of package distribution. I'm definitely open to ideas about more convenient methods!
- nawitus 12y agoIt's easy to publish a NPM package. First, create package.json by googling "package.json cheatsheet". Then type npm publish and you're done.
- staller 12y agoIt might be a stretch to call it "world's most modern" IRC client when it looks like a pretty generic client. I really think at some point the word modern just won't make sense in the same sentence as "IRC". I think as your first node project it looks pretty cool though.
- _redwire 12y ago> It might be a stretch to call it "world's most modern" IRC client when it looks like a pretty generic client. Haha, I definitely agree. I'm just trying hard to pitch it to people who might be less familiar with other clients. The word "modern" means a lot to people, it turns out. > I think as your first node project it looks pretty cool though. Thanks so much!
- owenversteeg 12y agoYou might want to add two newlines instead of one for better readability in your comment.
- aroch 12y agoAny reason why airchatter.net and www.airchatter.net point to different IP's. Also, your SSL is a little messy and you're vulnerable to Heartbleed: https://www.ssllabs.com/ssltest/analyze.html?d=airchatter.net https://www.ssllabs.com/ssltest/analyze.html?d=airchatter.ne...
- iancarroll 12y agoCCS != Heartbleed
- BorisMelnik 12y agosweet, this is really clean and runs really well. - my Mom is 67 and has been on IRC for 20+ years using mIRC for most of those. I bet if this got packaged so that users like her could one click "install" it they could grab a huge portion of the user base.
- _redwire 12y agoI really want to make the installation and usage as simple as possible- simplicity is my #1 priority! If you ever get her to try it out, I'd love if you'd email me to tell me how it went! You can find my email on my github profile.
- nawitus 12y agoThe problem with most IRC software is that they're not always online. The usual solution is irssi, which is what I've used for the last 6 years.
- hsx 12y agoIf you mean not always connected to IRC and that your solution is to run Irssi in a screen/tmux session on a server somewhere, it's considerably easier to use ZNC. http://wiki.znc.in/ZNC http://wiki.znc.in/ZNC
- nawitus 12y agoI don't remember trying ZNC, but the problem with all the irc bouncers I've used before was that it wasn't neatly integrated to the irc client. If you're using screen+irssi, everything works exactly like you would expect. With irc bouncers you have various issues, e.g. when you connect all the channels need to send 2000+ rows of backlog for every channel, which is pretty inefficient.
- hsx 12y agoWhat!? That's completely the opposite to my experience! Essentially, after setting up ZNC to your liking, all you have to do in your client is change the irc server from say, irc.freenode.net to znc.yourserver.com:port and add a password for the server, username/freenode:password, done! I thought it'd be annoying having to add servers through the ZNC interface (either web or SSH) but it automatically adds/removes them when you join/leave. In terms of buffers, I generally don't have it set to 2000+, normally around 100 max. I'll just go through the logs if I really need to catch up.
- redwall_hp 12y agoThe clients I use have ZNC integration. I use Textual on OS X and Colloquy on iOS. Both automatically play back the buffer when they connect without having to do any setup like perform scripts or whatever. I also compiled a module for ZNC that sends push notifications to Colloquy when a PM, highlight word or name mention happens.
- erming 12y agoOh, I've made one too! http://github.com/erming/shout http://github.com/erming/shout It's really stable (been using it for weeks without restarting) and I've even implemented a mobile interface: https://db.tt/fYTswBwO https://db.tt/fYTswBwO You'll find the install instructions in the README (or just `npm install shout`). No configuration required. Should take under a minute to get it running if you already have NPM. It's open source. Feel free to try it, browse the code and leave some feedback. If you want to work with me, it's open for contributions!
- silversmith 12y agoLooks really nice - especially the part where multiple networks are in the very first screenshot! How are you handling persistence tho? Straight up in-memory storage?
- erming 12y agoYes, right now it's only in memory. I've been thinking about storing the logs in .txt-files (with the option to turn this feature on/off). This way, I could let the user download the logs directly via the browser.
- hexscrews 12y agoI'm not familiar with how difficult it may be, so please tell me if I'm off base. But couldn't you offer the option for either text logs or HTML logs? I know that when given the option, I opt for HTML logs for the ease of reading.
- erming 12y agoHi! Didn't see your question until now. While I haven't implemented the logging yet, I'm thinking about storing them in the JSON-format. Messages are already stored as JavaScript object, so I think this is my best option. And exporting them as .txt on demand, shouldn't be a problem either. Thank you for the feedback
- 12y ago
- martindale 12y agoNice! We need to have better UX around getting connected to underlying IRC networks. How doe this compare to Subway [1]? [1]: https://github.com/thedjpetersen/subway https://github.com/thedjpetersen/subway
- seanewest 12y agoI wish the "user has left the channel" noise was off by default in IRC clients.
- bassclef 12y agonothing beats irssi
- gghh 12y agoI didn't know of an #https-everywhere channel. It doesn't seem to be on Freenode. Is it really an active channel or just there in the screenshot for the demo?
- _redwire 12y agoaIRChat doesn't categorize channels by server (I'm open to ideas of having it do so), for the sake of simply using Foundation's vertical tabs. #https-everywhere is the developer discussion channel on OFTC.
- general_failure 12y agoWhy does it need sudo to run on port 3000?
- _redwire 12y agoIt shouldn't. The install script copies files that you need super user privs to get at (specifically, /usr/lib), but after it's installed, you should be able to run the aIRChat server (node Content/app.js) without sudo.
- general_failure 12y agoAwesome thanks. I really like it.
- _redwire 12y agoI'm really glad that you're liking it! :)
- general_failure 12y agoOT: but I need something like this but a client that sits in the background. Basically like quassel-core but that thing is written in C++ and is a hassle to install and configure.
- glomph 12y agoznc?
- general_failure 12y agohttp://wiki.znc.in/ZNC http://wiki.znc.in/ZNC Looks like thus is c++ as well.
- nilkn 12y agoIf you're open to a paid solution, IRCCloud is probably the most modern IRC client available today. It's $5/month, but nothing else I've used has come close in terms of general interface quality across all devices, from Android to my iPad to my desktop. As interesting off-topic trivia, it was written in Erlang.
- jmg_ 12y agoWhile not quite finished, there's also Slate (https://github.com/slate/slate https://github.com/slate/slate) by Holowaychuk