I set up a voice journal in Telegram
Two sleepless nights — and my Telegram bot now takes voice notes, stores the files, and transcribes them into text. Why I need this at all — I recorded straight into it.

By Georg Malahov
December, one in the morning, second sleepless night in a row, but I got it done: the bot works. The idea is simple — keep a diary by voice. Not sit down at the keyboard in the evening, but talk my notes into Telegram throughout the day, like voice messages to a friend. Except on the other end it's not a friend, it's my own bot, which takes everything in, files it away, and transcribes it.
The plan goes beyond the recordings themselves. If I keep talking about what's happening for a while, I'll build up material I can use to analyze the days I've lived — and pull it all together into one interface. The recordings are only the first part. The second, most interesting part begins once there are lots of them.
Inside, everything is still straightforward. I send the bot a message — it downloads the file, drops it into S3, the object storage service for files in the cloud, and creates the note itself in Strapi. Strapi is an open-source content management system: it comes with a database, an admin panel, and an API out of the box, so I didn't have to write my own backend for the notes from scratch. The bot accepts all message types: voice messages, videos — the audio track gets extracted from those — pictures, plain text. If I send the same file again, it recognizes it and doesn't process it twice, and if I edit a message in Telegram, the existing note gets updated, no duplicate. The first edge case turned up too: when you edit a voice or video message, Telegram sends not a new file but a caption to it — I save that as a separate attribute on the same note.
A week earlier, the first prototype test: the voice note went out — the transcript came back
Access took some thought as well: a Telegram bot is by default open to anyone who finds it. So a new user is created automatically on their first message, but in a blocked state — until I unblock them by hand, the bot won't talk to them.
The night also produced a few thoughts for later. After uploading to S3, the files are left sitting in the container's temp folder — I need to delete them right away, or a bot running without updates will quietly pile up garbage. And I want to look at the Deepgram API — that's a speech recognition service: I'm curious whether it can pull out of a recording not just the words but the sounds themselves — laughter, traffic noise. Tags like that on the notes would be a great addition.
The note announcing that the bot was ready, I spoke into the bot itself — and went to bed while it was still processing. Now the plan is this: don't touch anything for a week, just record every day and build up some real notes. And then take on part two — analyzing the days, and a single interface on top of everything that accumulates.