GrannyMail is now in open beta
I built a WhatsApp chatbot to turn voice memos into physical letters without leaving the chat. You're invited to try it (for free).
Welcome to the 4 new subscribers since my last email 👋🏼
This is my grandma, Doris
She’s 99 years old and turning 100 in a month on the 24th of April. We used to talk a lot on the phone. Probably once a week, up until the second year of my bachelor’s.
But she’s grown deaf and can barely hear me through a speaker. I started writing her letters by hand. They’re fun to write, but it takes long, really long. Most of the time I’d like to share a quick update of what’s happening in my life. Like many grandmothers, the adventures of her grandchildren are her world's greatest delights.
Then I started sending postcards with an app. That was convenient. But I couldn’t fit that much text on a single postcard. That was annoying. And 3.50€ was a big price for that.
Do you know how some people update their friends with those 7-minute voice memos?
That’s basically what I wanted. But Doris doesn’t have a smartphone. She doesn’t even know how to use email. What if I could make a one-way version of the voice memo communication work?
Introducing GrannyMail
I built GrannyMail, a WhatsApp (and Telegram) chatbot that turns voice memos into physical letters that can be sent by physical mail without leaving the chat. Here’s a demo:

Here’s the process step by step
1) Send any message to get the instructions
You’ll get a summary of all available commands. This exists mostly if people use the chatbot without reading something like this post first. Ideally, I would send a video.
2) Add the recipient’s address
You can add a new address using /add_address or view your address book with /show_address_book.
3) Record a voice memo with what you want to say
The memo will be transcribed and the text tidied up a bit. Then you’ll receive a first draft as a PDF.
4) Make edits
You can use natural language for this. In my letters so far I’ve used commands like this
“/edit Dominik → Dominique”
“/edit use shorter sentences and be more descriptive”
5) Send the letter and pay
Use /send for this. The first time you’ll get a link to buy credits. If you have a credit balance you’ll just be asked to confirm with a button.
6) Get a confirmation
I configured everything in a way that no letter will be sent twice. An annoying restriction by Meta is that you can’t text someone who hasn’t texted you in the last 24 hours. So if you pay 24h after receiving that link you won’t get a confirmation. I’m not sure if that’s an unlikely edge case though.
I want your feedback
I built this to solve my own problem. But I thought it would be cool if others could use this too. So I improved the usability and tidied up the code (which is public on GitHub). The result is what you see above.
There’s a lot that could be optimised, but at this point, the opinion of others about what needs improving is more useful than mine. I’d love for you to try it!
Maybe you also want to send a mail to your grandparents, but more likely you have a use case I’m not thinking of. My girlfriend is using it to send birthday letters to her friends, for example.
I wrote 106 unit tests but I’m certain bugs are hiding somewhere. If you find a bug please let me know. You can send me a screenshot or use the built-in /report_bug command and add a comment about what went wrong or for any other type of feedback.
Use the coupon BETA100 to try it for free
There is no free usage. Every letter requires real postage which unfortunately requires real money. But you can use the code “BETA100” at the stripe checkout to receive 10 letters for free. You can also text me if you’d like to send more letters. I’m glad to send you another discount (ideally in exchange for feedback). But this post is public and I want to make sure that no single malicious user can bankrupt me. 🫠 So the discount code is limited to the next 7 days.
I’d love to hear from you!
What was your first reaction? What wasn’t intuitive?
What are problems you have that this could be useful for?
What is missing?
That’s it!
In case that button doesn’t work at some point, the phone number to use the bot is +49 1525 2692713 for WhatsApp and @GrannyMailBot on Telegram.
My top reads of the week
1 - Much of West Africa has faced severe internet connectivity issues since Thursday
The connectivity problems are thought to stem from failures in several undersea cables, impacting over 12 countries. I became aware of the issue when my client in Ghana was unable to join our call on Friday. (The Guardian and Cloudflare)
2 - Devon is an AI that can write high-quality code
There are a lot of useless news headlines similar to this one, but Cognition pushed the SOTA of the SWE-bench score (a benchmark for resolving GitHub issues found in real-world open-source projects) from 4.8% to 13.86%. The tool takes time to do its job, but I think we’re going to see a move from LLMs generating instant responses to them only returning more high-quality results after a period of work. (Watch the demo here)
3 - Building a robot to create indistinguishable hand-written letters
This became relevant because I didn’t find a good handwritten letter service with an API. Shane Wighton is such a cool guy and funny. What an engineer. (Youtube)
4 - How to build and market small products on the internet.
Peter Levels builds small apps and markets them on the internet. He has built quite a few and is well-known in some parts of the internet. Not sure what I think of him, but he has some cool ideas for where to share what you’re building (Youtube)
5 - Which license should you choose for your open-source project? This tool makes it easy.
The most popular license for open-source startups is Apache 2.0 or MIT. I chose a GNU license because my project isn’t intended to make money. The GPL is often described as a "copyleft" license, which means that any derivative work must be distributed under the same license terms. This requirement ensures that the freedoms associated with the software are preserved through all subsequent modifications and redistributions. (choosealicense.com)
How to build a successful referral programme
Key points from Ross Nazarenko
Invites increase if users’ friends get higher rewards
Personalizing rewards might be one of the most powerful moves, for something like e-commerce or marketplaces.
Before recommending something, people need to see that this thing is popular and there’s social proof.
The number of times someone gets exposed to the referral program increases the chances of conversion
+ Also: Virality does not happen because many people share with many friends, but someone with a large audience broadcasting it to many (Lenny’s newsletter)