The goal and the result
I needed to ship something. I was stuck in the midst of several larger projects, both for clients and myself, with no end in sight, and to keep going I needed the confidence boost that only shipping code can provide. So I spent part of my weekend, shifted some priorities around, and got to work on Kismet.
This post will detail the process I went through to build Kismet, from initial commit, to revenue, and finally to what the future holds.
I became a consultant to feed my startup and side project habit. Like most programmers, however, I've never loved networking. Meetups are full of recruiters for companies I don't want to work for and LinkedIn is...full of recruiters for companies that I don't want to work for. There are a few web sites where interesting people congregate (the most relevant being Hacker News) but many of them aren't great for meeting people.
Working from the assumption that there are a lot of other people like me out there, I wanted to build a product that turned networking from an active activity to a passive one. I typed "Hacker News Networking" in to my list of potential project ideas and it languished there for months.
There are 160 ideas on my ideas list. I wanted to ship something but time was limited: I can only allocate a handful of hours each week to my own projects because I have to pay the bills like everyone else. I scrolled through the list, eliminating the ideas that required more than a few days to build. Kismet was the quickest one, so I went with it.
It's around now that there are probably a bunch of people out there yelling "but you didn't validate it!". And they're right — I didn't. That's because validating this idea would be dumb: I knew I could just build it in less than the amount of time it would take to put together a landing page, hassle users in to filling out a survey, or any of that other stuff. If it were a bigger project then sure, I'd look for validation to justify the time and expense of building it. When build time is so low, however, I'm willing to take a flyer on it.
Remember: the goal was to ship a product, not get a ton of users or revenue.
It may shock you that, as a developer, my design skills are lacking. Fortunately, my wife is a UX designer so I've picked up some stuff here and there. I knew the interface needed to do two things: show the user what they're getting and give it to them with the least amount of effort possible. I bought a $10 template from Themeforest and started pushing around pixels.
After deciding on the bare minimum number of fields required, I grabbed the hex code for the Hacker News title bar and emailed myself an example message to screenshot. That's all there is; I decided anything else could come later.
To be frank: this was basically an afterthought. I picked node.js for the backend because I'm familiar with it and wrote the dead-simple frontend in jQuery. That's right: I wrote something in jQuery in the year 2018. If the frontend needs to be more complicated in the future I'll rewrite it in Angular or something, but until then jQuery does the job just fine. Deployment was boring and manual as well: an AWS EC2 instance, RDS for the database, ELB and CloudFront in front of it.
Kismet is kind of a pain to test. The majority of the logic runs on a cron-like job at a set interval and there are a lot of permutations of the matching logic. The easiest way to test consistently was to automate, so I wrote 50 or so tests using mocha.js. Normally automated tests are something I would skip in a small project, but it made sense here so I didn't fight it.
There was another hard deadline for shipping: I had a flight from Chicago to London and I knew I wouldn't be able to ship while I was traveling. I posted the Show HN thread at 1pm CST on Friday. I was over the moon when it made its way to the front page. What I didn't expect was that it would still be on the front page when I arrived in London over 24 hours later.
Here are the stats for the week following launch:
- Visits: 3,418
- Users who entered a valid HN username: 650
- Signups: 451
- Introductions made: 1,418
- Email open rate: 69.1%
The rate of introductions and the open rate have stayed steady to this day. As you would expect, signups dropped off after a week or so but the user base continues to grow organically.
Talking to users, improvements
Aside from the incredible amount of signups, the other thing that surprised me was how much unsolicited user feedback I received. At least 15 people emailed the firstname.lastname@example.org address with questions, complaints, and suggestions.
By far the largest pattern in the emails was that people wanted to slow down matches: daily was too frequent. I had anticipated this when putting together the backend code, so this was the first feature I added. About 10% of users have switched over to weekly matches, so I definitely consider this a success.
I responded to every user email I received, and I asked several of them how they think Kismet should pay for its server bills. I had tentatively been planning on a freemium model, and I could not have been more wrong. Users were unanimously and strongly against it, so I had to find another way. A few users suggested sponsorships, which stuck in my brain.
Shortly after launch someone booked an appointment on my web site. It was from the founder of a BaaS/PaaS company called Hasura and he was looking for feedback and suggestions on how to promote his product.
He hadn't considered sponsoring Kismet, but it was a natural fit: the vast majority of Kismet users are developers and it was important to me that any sponsor offer them something they might actually want. The rest was simple: invoice paid and we worked together to write an ad for the bottom of the match emails that fits the Kismet spirit.
This is the tough question: since I didn't expect this kind of success I don't have a set plan in place for Kismet. There's enough revenue to pay the server bills, but it's clear that it won't ever be a giant startup. For the time being, changes will be incremental: bug fixes and UX enhancements.
I have some ideas for bigger plans, but they're not my own: they came from the amazing Kismet community. That's the beauty of technology: I put in a relatively small amount of work and now there are hundreds of people getting connected with each other every day. Kismet users love the product, so I owe it to them to continue to build and improve.
I provide hiring, management, full stack development, and coaching services for startups. Click here to learn more, or schedule a free 30 minute consultation. I'm also writing a book called Dealing with Developers.