Hacker News new | past | comments | ask | show | jobs | submit login
IRCCloud (irccloud.com)
112 points by jacobr on Nov 29, 2013 | hide | past | web | favorite | 75 comments

Hi, one of the irccloud team. Can answer any questions if you like.

Some info:

* Erlang, haproxy, rabbitmq, redis, postgres, cassandra, chef

* 10+ billion irc lines stored at the last count

* Thousands of IPv6 IRC connections - we give each user their own IPv6 address. Main site also works over ipv6.

* Thousands of IPv4 connections too

* Open source android and ios apps: https://blog.irccloud.com/mobile-apps-open-sourced/

* API: https://github.com/irccloud/irccloud-tools/wiki/API-Overview

* Details on our security, password storage, etc: https://www.irccloud.com/privacy

I've mentioned this on HN before, but we moved our hosting off Hetzner and on to Black Lotus for the ddos-protection.

We see fairly frequent ddos attacks, from a few hundred mbit to 10+ gbit. They aren't impacting service since we moved to black lotus.

Please can you wire up some unicorns to some rainbows and make it so I can have irssi act as a client for irccloud? ;)

I really want an IRC kernel with an API, so I can have all sorts of clients on different machines/platforms, but it seems to be impossible at the moment, without using the horrible bouncers.

What's wrong with bouncers? ZNC has been serving me well over 5 networks for years now. I don't see the appeal in an in-browser solution at all.

Isn't this what Quassel http://www.quassel-irc.org/ does, or am I misunderstanding what you're asking?

Isn't that what dircproxy does?

Can you share what you store in each of the databases?

Here's what I'd speculate:

- Redis: message lists for active users

- Postgres: account details

- Cassandra: all messages


Yep, postgres has all the account / user details, lists of what network and channels to join, billing etc.

All the irc messages end up in cassandra, via rabbitmq. We use local redis as a cache for the most recent messages. Our cassandra cluster is on EC2 (~11ms away from our other hardware, which is in LA).


For me, it's only really useful with a backlog of perhaps 7 days, the rest I would like to have permanently deleted, it would make me feel more comfortable using the service.

Out of curiosity, what causes you to be "comfortable" (or not) with a service keeping a record of your IRC activities? I assume you have private networks in some form?

I'm not judging, i simply ask because a lot of people are connecting to Freenode/Freenode-like locations where he majority of the channels are already logged 24/7 by you, countless others, and bots publishing the content to the web.

Maybe not make this the default behaviour, but an option would be nice.

Great, work, I tried it, got my invite and logged into my Freenode channels. Very nice!

Is this the place to ask for colour input? IRCCloud displays colours fine, but I can't figure out how to use them in my own messages.

From the captain obvious department: you can get most (or all) of these features by running a terminal irc client like irssi or weechat in screen/tmux. That's what I've been using for the last 15 years or so.

If you're not comfortable with terminal based clients, you can run a bouncer like znc and connect with your irc client of choice.

But then again, if you're using IRC today then you probably have this figured out already.

I think this may be overlooking the primary benefit of IRCCloud: This is a service that makes it someone else's problem.

I ran a bouncer for a while, but honestly, it's really nice being able to pay these guys a few bucks and have them deal with it. It has a matching Android app, and the transition between my various machines is very smooth.

But really, the main reason I use them is because I don't have to mess with running a bouncer or using a console-based IRC client. It's one less piece of mental clutter for me.

I've been wondering about this effect... is everyone else feeling it? I'm loathe to use anything other than a static site generator. Managing a database feels burdensome. I'd hardly think of running my own mailserver. All things I've done in the past without a second thought.

Do I just have less time? Are the services just better? Or is something more fundamental changing in the fabric of the web? (Maybe this is what the indieweb folks are trying to harken back to?)

Some call it laziness, but I like to think of it more as simplification. I used to run a handful of VMs for various things, did a lot more myself, and maintained it all.

I don't feel like doing that anymore. I'd rather spend the time on something else.

From my experience, it's all a matter of balance between the time needed to set up and maintain your system vs the burden to coerce someone else's system to behave† the way you want.

† behavior covers both technical (features, compatibility...) and ideological (privacy, openness...) areas.

Because anything that requires running a database is burdensome, and even those of us who roll our own services are becoming less patient with software that requires hand-holding just to walk.

This reminds me of reactions to the HN Dropbox announcement [1], "Just set up FTP, curlftpfs and SVN".

Same could be said for hosting a site, or hosting your code, or using EC2 instances, or buying precooked meals, and so on.

Sometimes people would rather have others deal with it and use their own time on other things.

[1] https://news.ycombinator.com/item?id=8863

I knew I was going to draw comments like yours. I didn't say that this service cannot be valuable to people, I just pointed out that you can get really close with simple means. If you're happy with the package that irccloud provides, then by all means go for it. I say this as a person who use many online services, both free and commercial.

The dropbox comparison is a bad one because it takes way more effort to set it up -- without spending a ton of effort you won't get anywhere near what dropbox offers.

You know, this is suggested all the time. But neither is perfect.

I personal use a terminal client, but sometimes I'd like to have a client that I can use a mouse on, or is more responsive over bad connections, which can be painful.

And then bouncers have tons of problems. They really require understanding what's going on, and you have all types of channel connection problems. And in particular, they are difficult to handle messages that came in offline, or on other machines. And just are much more complicated then they should be.

And both have other problems, like difficulty reconnecting and the like.

I'm not sure irccloud will solve these problems. But there are for sure many problems that neither an ssh connection or a bouncer solve.

The irssi-proxy plugin lets you connect to your current irssi connections via any existing irc client.

Yeah but it doesn't have scrollback support so you can't see any messages you received while you were offline, so it's not really so useful.

Or has it recently got such support ?

I've been using irccloud for about 3 years, after 15 years in ircii, irssi and weechat inside screen and tmux. Aside from irccloud's mobile clients with push notifications, the biggest improvement over a terminal client has been multi line URL access. With weechat, I'd spend several minutes reconstructing a long URL in my browser, because my terminal wouldn't know what to do with weechat's sidebar. now I just click a URL and it opens. Stupid, but worth $5 a month to me.

I'm involved in a weechat web frontend which solves some of the problems.

If anyone's curious, here it is: http://torhve.github.io/glowing-bear/

What you say is right: > you can get most (or all) of these features by running a terminal irc client like irssi or weechat in screen/tmux. But if you're an IRC newbie that is accessing some support channel on Freenode via web and discover that there are more channels related to the stuff you like (Ruby/Go/Erlang/pr0n/etc) and then you hear about IRCCloud then you think you're on the right path :) Not that I've been there. I'm just trying to put myself in somebody's shoes. Back in the days I tried ZNC and then switched to just screen (now tmux) + irssi. <3 So, yeah, don't be so tough with the guys that haven't yet heard of IRC and don't know what's going on lol.

For the record, I use weechat (termianl-based) on top of ZNC. ZNC is just a lot nicer in general than the screen/tmux based solution. Plus, SSHing on mobile is a pain in the ass - I'd rather use a native client.

I can do it from the browser that is the nice thing about it.

imagine a bouncer that correctly keeps all your clients in sync. e.g. read vs unread.

In addition to this they have a fantastic iOS client.

Though you'd have to be 24/7 online to get notifications and logs, thus, needing a server.

I currently use an irssi plugin to send notifications to my glass when I'm offline :)

Could any sentence combine old-school and new-school geekiness quite so well? I love it.

Someone needs to hack together a gopher client for glass.

Hey! my IRC network is on the default drop-down of this service, they're also based near me.

As much as I love the interface and idea (I really do) and I love the App, for me as an operator it requires making large exceptions in my connection limiting.

I usually only allow 25 connected users from a single IP, and I use GeoIP to get people a node near them- so- when people connect using irccloud they lose that benefit, and it means I have 100's of connections from ealing.irccloud.com-

in the past there has also been some issue with availability, it's weird when netsplit like events happen and you have no control. (although I believe they fixed the issue with ddos)

personally, I don't use irccloud day to day, I use xchat and 'Palaver' for iPhone, which my friend develops- he also maintains ZNC so his app has push notifications on highlight. (as long as you're not connected to ZNC or your client is marked 'Away')

Everything of his is open source (except palaver I think, it's paid), so; if you're interested in IRC I'd take a poke.


he also intends on making a web client, similar to irccloud, however he's terrible at design so don't hold your breath.


btw our preferred solution for the IP session limit is for everyone to hurry up and deploy IPv6 everywhere ;)

Some ircds by default limit sessions per ipv6 /64, but that's easily changed if needed.

I have ipv6 on all my nodes, but we still get connections from a single outbound source.

ah, perhaps the domain in our list doesn't have an AAAA record. let me know if you want us to update it.

we always use ipv6 if an AAAA record exists, and fall back to v4 if that fails.

> Everything of his is open source (except palaver I think, it's paid)

As an aside: one doesn't exclude the other. Though I'll admit the combination doesn't happen quite that much.

Here's an open source competitor: https://github.com/thedjpetersen/subway

And a much less feature complete: https://github.com/nickdesaulniers/fxos-irc (100% client side, no websockets proxy or such)

or better:

http://firessh.net/ (add-on)

But the websockets proxy is the primary advantage.

Another open source alternative https://kiwiirc.com/ (but it doesn't yet have persistence built in)

Open source weechat web frontend:


Glad someone mentioned this. The creator DJ put a lot of work into this, and it works very well.

i wish it could send push notifications to my phone.

A combo I recently moved to – after using 5+ years irssi, 5+ years weechat – is the graphical client Textual[1] (OS X only) backed by znc. It's smart enough to do replaying backlog and similar for you.

I also really admire their licensing strategy. The entire project is open source; build it yourself or pay us to do it (then we'll throw in support as well)[2].

[1] http://www.codeux.com/textual/

[2] https://github.com/codeux/textual

In the copy on your front-page, I would say "Extendable" or "Extensible" instead of "Expandable" here:

  Expandable using scripts written in AppleScript, Ruby,
  Python, Perl, PHP, and Objective-C.
It took me a second to figure out what you meant when I first read it. I initially read it in more of a Minimize/Expand sense.

[Though maybe I'm just being pedantic.]

Agreed, Textual is easily the most used app I'm using on my Mac and together with ZNC and Palaver[1] as iOS client (with push) I couldn't be happier.

[1] http://palaverapp.com/


I've been running Quassel-core on a linux-server and the client on all my endpoints and it works fantastically. Plus I am in control of everything. Replaced irssi+tmux for me instantly.

From their website: "Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core -- much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical."

Hmmm.. So this is a SaaS IRC bouncer, in a web-app, without the ability to use an actual IRC client.

Seems too limited to be useful. Setting up an IRC server, with a bouncer on a $5/month droplet would be more useful.

We also have nice android and ios apps, with push notifications and synchronised read status.

But we don't act as a traditional bouncer yet. Maybe in future.. it's all about the web app and mobile apps for the time being.

There is an Android IRC client that ties into this (it was the reason that I signed up for this service in the first place.. TapChat, I think?), but I'm unaware of any desktop versions.

Seems to be missing the one feature I'd actually want - IRC server emulation so I can connect via my normal IRC client.

This is a shameless plug, but with IRCRelay[1] we focus on the "I want to use my client" crowd. It seems to be a different group of IRC users (also, IRCCloud I think is a fair bit larger and more successful then us) but we have been running in that niche for a year and a bit and it's been going well.

We were on the HN frontpage when we first launched[2]. It went ok, but we got a strong message that we needed a free plan.

After holding out for a year, we've finally added one. You should try it out! :)

[1]: https://www.ircrelay.com/

[2]: https://news.ycombinator.com/item?id=4877626

I recently hopped on your service (found with a quick Google search) and it seems to work well and does exactly what I need it to do. I recently started getting big into the Freenode chatrooms for several projects hosted there and realized I needed to setup a bouncer again to catch some of the chatter that goes on during my offline hours. I'm glad your service was there to fill my need.

One question: how do you compete with some of the other IRC bouncer services that seem to offer their bouncers for free? It seems like there are at least a couple that are running on just donations (found with the same search 'irc bouncer hosting').

Hopefully not too late but:

I think it comes down to reliability. We offer a service with very little downtime (only a few hours in 2013 during a large, planned transition we were doing).

Additionally, we do a lot of support for folks, usually with fast response times.

I've talked to a few folks coming from community hosted bouncers and I hear, anecdotally, stuff in line with the above.

Check out ZNC. I run it on my server and proxy my connections to IRC through it. It'll play back messages when I reconnect, etc.

I find IRC being perfect for a desktop app, when I tried this previously I just found myself constantly forgetting about it and closing it just as another tab. Anyway, it's a great service but I just can't get it to fit my usage pattern.

For anyone setting up a non-federated chat system, why not Mumble?

Sure, it's primarily used for gaming, but the ability exists to use a text-based client, and everything is encrypted by default.

That certainly looks cool. Though, Recently I came across a similar site that provides the service for free.


You connect to a server using http://irc.lc/<servername>/<channel>, say like http://irc.lc/freenode/ruby. Its pretty cool too, worth checking out.

This didn't work for grove.io. Nobody pays money for IRC. There is a tiny, in the not worth it department, fraction of people willing to pay a couple of dollars for an IRC client.

At best you could build something like HipChat or Olark using IRC as a backbone and hide all the complexity of it from the end user and maybe then you have a chance.

Finally, less people are using IRC all the time. If you look at channels that have been around a long time, they've got less users than they used to.

I pay money for grove.io. Not because it provides IRC, but because it provides a smooth, asynchronous communication tool for my team, and defers IRC to what it should be; a protocol.

Honest question: Why is IRC > XMPP?

Plain text vs rich text.

as a result, despite the awesome features of XMPP, IRC is simply more extentable and easy to develop around- whilst also being basic to implement.

> whilst also being basic to implement

Maybe it's changed, but I remember trying to communicate w/ IRC servers via telnet (prior to netcat) a while ago (maybe 8 years) and I do recall that most of them have deviated from the 'official' spec (specifically the initial connection handshake). I actually had a chat about this with the epic4 devs at the time.

At least XMPP has an official spec. My impression of the IRC world is that it's a de-facto standard. Though there are many implementations that one can clean the details from, cracking open irssi-core to figure out what the protocol is seems a little more difficult than reading an RFC and dealing w/ XML (it's not like we don't have tools built around XML; I would lean heavily on XPath).

Thank you!

Seconded dijit's reply; plaintext is a much easier thing to work with. Also, XML.

Looks cool, but you from what I gather you can get a service such as this running for free with just a little effort.

Personally I use Irissi with an extension that pushes hilights to my phone and connecting via SSH isn't a big issue on any device.

This is actually fairly old. I used it a few years ago and it had some kind of memory leak or something in it's JS and would eventually stop working. Perhaps that's fixed now but I switched back to native clients as a result.

Yes, I remember giving it a try when it got out but got very annoyed by the fact that after being open for a few hours or days it would make my Chrome very laggy and unresponsive. Then somebody told me that in Firefox it would resist more but it would just give it some more time gap but at last it was the same crap (and I was also leaving behind my favorite browser). Now I'm just all irssi + tmux and can't be more happy. I host my personal website (blog) and have a tmux + irssi 24/7 running on a DigitalOcean VPS for USD$5/mo. IRCCloud can't give me all that for so less money.

I signed up for an invite in 2011, and got it now, so this was the first time I got to finally try it. I did like it, it was worth the wait, so I submitted it here.

I love this just for the web UI, but it's impossible for me to justify $60 a year for that - the lion's share of the implementation can be had, without any such limits, by spending 10 minutes setting up ZNC on a free VPS.

What are the benefits of IRCCloud compared to a bouncer?

I'm using my bouncer on for about 10 years now and never missed one line of chat in about 5 IRC Networks (Quakenet/ Freenode/ ETG/ Gamesurge/ OFTC).

I just use remote desktop to my windows server.

OTR is missing, could you add it for PMs ?

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact