Back to Blog
Why we built CoconutSplit

Why we built CoconutSplit

Jensen Huang4 min read
CoconutSplitProductTelegramStartup

We built CoconutSplit because getting our friends to download another expense app was a hassle. Our friends already used Telegram.

We built CoconutSplit because we wanted an expense splitter on Telegram.

Tricount and Splitwise could do what we needed, but we didn't like having to convince our friends to download them. Getting everyone onto another app was a hassle, especially when all we wanted to do was split some expenses.

Nearly everyone we knew in Singapore used Telegram. We already had group chats with the people we were splitting expenses with, so it made sense to build something we could use there.

The first version was awkward

Our first attempt was a Telegram bot that worked much like a . You typed commands into the chat to create a group, add an expense, or edit one:

  • /create_group
  • /add_expense [expense amount] person1 person2 person3
  • /edit_expense [expense_number] person1 new_expense_amount person2 new_expense_amount2

To be frank, it was somewhat unusable. Even adding an expense meant remembering what to type and where each person's name belonged. Editing one was worse. Looking at that last command now, I wouldn't want to use it either.

I doubt it would have gained much traction if we'd released it like that.

There was good work in that version, though. We put a lot of care into the and the . Almost three years later, the schema in today's CoconutSplit is still quite similar to the original one. A lot of those early decisions held up.

Adding a screen inside Telegram

After some feedback and brainstorming, we decided to give the bot a through a .

Telegram has a feature called . These let us show forms and buttons inside Telegram, with information such as the user's name and ID already available to the app.

People could enter an amount and select who was splitting it through a form. That was much easier than typing a long command into the chat, and they still didn't have to download anything.

This became the first version of CoconutSplit we shared with friends and family. Here's what it looked like:

The early CoconutSplit group ledger showing expenses and settlements
The original group ledger
The early CoconutSplit form for adding an expense and selecting participants
The original expense form
The early CoconutSplit settle-up screen showing outstanding debts
The original settle-up screen

How it spread

When someone used CoconutSplit to split expenses with their friends, those friends had to interact with the bot too. It concerned their money, so they had a reason to pay attention to it and see how it worked.

Some of those people found it useful enough to add to their own group chats. Then another group of people would use it, and some of them would do the same.

Nearly 10,000 users

Slowly, we watched the user count climb to 50, then 100, then 500. Now we're close to 10,000.

We've changed the screens quite a bit since that first version. Here's what CoconutSplit looks like today:

The current CoconutSplit group overview showing totals, outstanding debts, and settlements
The group overview today
The current CoconutSplit form for adding an expense
Adding an expense today
CoconutSplit Insights showing personal balances and group spending over time
Group spending and insights today

I'll write about CoconutSplit's architecture and my homelab in a separate post.