About a month ago I had the idea to make a chat where you’d be put in a “room” with a group of people, not too big, so you can just have a chat. No complications, just that.
Then the isolation came, bringing with it a ton of free time and an even better reason to make this - people would be bored at home!
So we set out to make it, I managed to convince a couple of friends to give me a hand with this: @prhcummins and @jaicab and off we went.
We decided to do this properly and determine our mission by picking a goal that we’d use to guide our decisions.
Goal
For people to stay and chat, and as a secondary goal have them come back.
Now we need to figure out how we’ll measure success, so we picked a few data points that we could focus on improving:
- Time spent Chatting / Session
- Messages Sent / Session
- New / Returning users
(At the end I’ll show our stats on the day we launched! - today, and I’ll write a follow up post in a few days with the things I’ve learned about our analytics data gathering)
Development
I started to write the backend in Elixir, using Phoenix - because I had always heard it was amazing for realtime applications (It’s the stack that powers WhatsApp as far as I know), but after several days of trying things I realised that the road to an MVP would be extremely long on this stack, and I did want to actually put this online at some point…
So we switched to good ol’ NodeJS with Socket.IO and a React frontend (maybe I should link all of them, but I feel like people would only click on the unknown ones anyway.. )
Using this we were able to get an MVP up and running in about 2 weeks, we first listed all the features we thought were important for day 1 in production - and then used all the new free time isolation gave us to power through. And to be fair, TypeScript with React and our Socket.IO backend were like a breeze of fresh air in general!
New Ideas (our value proposition)
We had a few ideas that would make dotdot something new:
- users would be put in rooms automatically
- everyone will see what everyone else types
The second one is an idea I’ve had on my mind for years I think. It’s something that makes it feel so much closer, like you are having an actual face to face conversation! I almost feel like this is the first major invention of my life hahah
Anyway, enough talking, more showing: Try dotdot.im for yourself!
Some Examples
To do a soft launch we posted about it on the ReactJS subreddit, and soon after people started coming in!
The amazing thing about this launch was that everyone was a developer, and somehow that made everyone be so nice! Just trying it out, giving suggestions for improvement, finding bugs… but also having regular conversations like we wanted! :)
Here are a few screenshots of conversations I found really nice!
And finally an example of the admin panel!
So some stats from our launch:
- 200 people came try it
- People spent 3 minutes chatting on average (need to expose percentiles, because most people either chatted for >20 minutes, or a few seconds)
- We had a pretty constant average of 10 messages / user (although this counts total users, need to calculate it per user who sent at least one message)
Heh just writing about the stats is giving me all these ideas to make them more useful! Being smart about stats is so useful, and we definitely want to keep iterating over these to make sure we’re aligned with our mission!
So all in all the launch was a MASSIVE success, which felt amazing - and it also gave us more than 13 issues to work on :)
Talk to you soon, you know where to find me :)