On Monday we launched teamchat.net on HackerNews. teamchat is a Web and IRC chat application to help teams centralize their communications. Geeks love IRC, for everyone else the Web works best. teamchat provides Web and IRC interfaces and integrates video and chat bots to give you an off the shelf Chat-Ops setup. The sort of thing that costs 100s of hours of engineer time to build at the click of a register button.
tl;dr teamchat is:
- an IRC server with secure authentication and a web interface
- multiple channels for discussion, like skype you can have different people in different channels
- a video chat server (you can even send someone on IRC a video chat)
- a chat-bot framework so you can make robots do work for you
- a simple API so you can have your other tools pump data into your chat
Any software dev or operations team would benefit from teamchat. They can buy the service instead of building it themselves. Any technical team with more than a few people will benefit and larger teams or whole companies will benefit more.
For our sales efforts we're going to focus on 2 types of customer:
- startup businesses who want to buy the service online
- dev teams within corporates who want to have a downloadable piece of software
For online customers a scalable backend that we can sell with minimum fuss will work. We hope to follow the yammer model of lazy sales. Campfire, Yammer and grove.io all work that way. Doing web marketing to teams and other getting it in front of people marketing things can lead to sales.
But teamchat has been built to run inside a virtual machine with little fuss, so our secondary market is dev teams inside companies who don't even want to think about security issues or talking to their internal firewall team. These are more difficult to reach out to, some of the marketing for online customers might bring in our second kind. There are other ways to reach such teams, partnering with consultancies is an approach that might work.
What's the cost going to be? We're going to start with Campfire like costs and see where we get to. I do hope we can have a free element, for teams smaller than 5 say. Or maybe without video (video is quite expensive to host).
There are quite a few products in this kind of space already. None of them have really provided what I've wanted when I've been leading teams. I've talked to friends all over the software industry and no one else seems to have the perfect solution either, even at places like Etsy, where they do an excellent job of team communications.
Here's an overview of what's out there:
- is the most prevalent tool and does a lot of the scaling we talk about
- it has great group chat it can quickly do 1 to 1 and it has video as well!
- on the other hand it is a nightmare to try and integrate other services with
- it's really hard to add robots to skype, too hard imo.
- is great but the closed model let's it down
- non-web clients for campfire are available, but not many
- voice can be done but you call the number in the chat. wut?
- is an IRC and web chat solution
- does some of what we're aiming to do but crucially doesn't allow the conversation to scale, to video for example.
- your own irc
- excellent way of embedding irc in your company (Etsy do this for example)
- no voice or video though.
- it's actually hard to setup, even harder to do securely across the Internet
- hangouts work ok for video calls
- jabber is more difficult to work with than irc which limits chat-bots.
I think these services just go to validate teamchat's business model. Each provides a part of what teamchat does, none provides the whole. The chance is there for us to collect teams who are thrashing between one or all of these products.
teamchat.net is built on Elnode and some other EmacsLisp technology. Elnode is an asynchronous web server written in EmacsLisp. Using Elnode we can easily integrate IRC sessions (which are basically text buffers) with web sessions which are asynchronous processes. The same HTTP push technology used for text chat is used for video call notifications and signalling.
All the processing we do with Emacs is scalable through asynchronous processes, we even use multiple Emacs processes talking to each other.
Not to say that scaling is a solved problem with Elnode. There is a
problem we have to admit to now: Emacs uses the
for asynchronous IO so we are limited to about 1000 concurrent tcp
sockets in any one Emacs instance. We can solve this if we need to by
devpoll. We've already talked to
core Emacs developers and investigated fixing the problem (it will
take a C programmer about a week to fix). But a single Emacs server
could easily handle the chatter of lots of software development teams.
Our video stuff service is done with Flash. We have lots of experience of doing video on the web from running a video dating site. I think that we've found the most pragmatic way to do it. Flash is really the only way to talk to cameras on the web at the moment so we use Flash to actually send and display the streams of video but we use HTTP/Comet to set them all up. That's actually the complicated bit. We can still say, with our heads held high, that Emacs is enabling online video chat.
IRC is great but it's very basic without providing a piece of software called a bouncer. A bouncer is what maintains sessions for people and robots and keeps history. Most bouncers have been written in C and are dificult to adapt. I guess a lot of companies using IRC extensively have hacked together bouncers out of existing free sofware products. We have taken the route of writing our own, in EmacsLisp. This means we can integrate it tightly with Elnode.
We're using SSH for IRC authentication. This is unusual but it's very flexible. We think anyone wanting to use IRC will be happy to cope with SSH and it's something that can be made easier over time, by adding the facility to IRC clients. By using SSH for IRC authentication we can make an SSH based API for talking to IRC for robots and other tools to integrate with your chat-ops.
Elnode, the bouncer we use, the video code and everything else is all available open source.
Our next steps
Launching but not going live was frustrating for some HN people. But I think it was valuable. We had a bunch of people sign up and another bunch of people reach out directly to us. This gives us the opportunity to roll the service out to those people and then concentrate on working out how to go live for everyone.
We'll do a follow up about the success of our HN launch early next week hopefully.
We're running on no money at the moment, so teamchat.net is very much a side project to our day jobs. Myself and my team would really like to turn this into a business and the quickest way to do that would be for an angel investor or a VC to step up and get involved. We really want a partner who will work with us to make this big.
What will we do if don't get any funding? well, I think we'll just carry on doing what we're doing now. Slowly improving the product and adding in everything we want to use for team communication. I'm really excited about adding team based text editing, that will be a really big deal when it's done.
If you're an EmacsLisp programmer or you're interested in becoming one we'd love to hear from you. With the caveat that at the moment we're running on no money we'd love you to see our code base and get interested in what we're doing. If we do get funding our first priority will be to hire smart programmers. The next big product step for us is to integrate team based text editing with the application so you can have a video call while you hack code together.
What's the vision? the end goal?
Personally, I want teamchat to be something *I* can use. Whenever I start a new dev team or startup I want teamchat to be there for me. I want it to integrate the process of working on source code with team mates, like Etherpad did, with video calling, like Skype does, with great chatbots, like IRC does. I want teamchat to make that a pleasure. So much of a pleasure that I forget it's there.
Wish us luck.