Hello there! I’m excited to present my recent pet-project that has finally arrived!
What is it?
It is a Telegram bot 🛫 that stores your links and provides simple management interface. I had been looking for something like that for a long time because I usually use Telegram to quickly store or sync something between devices. Although there are many bookmark managers available, as well as the “Saved Messages” chat with a “Links” menu, they are uncomfortable for me for various reasons.
What does it can and how to use it?
The application’s functionality is pretty simple. As for now you can:
- Save a link by sending it to the chat.
- List all saved links by typing either
- Remove a stored link by selecting it from the
/lsoutput and pressing the
In the future, I also plan to add some simple category management and improve the user-friendliness of the
/ls output. After that, I believe the project will be complete as long as I don’t want to bloat the application with dozens of functions. Let it be simple, but still quite useful.
This project is not very serious and more of a starting point. It served as a playground for new technologies:
- Code is written in Scala using zio, bot4s/telegram, slick, and flyway.
- The build is adjusted to be GraalVM-compatible and produces native, statically linked binaries.
- The entire project is wrapped with nix, which provides a reproducible environment and is responsible for building docker images.
- GitLab CI runs build on commit and pushes the docker image to the GitLab registry.
- The flux-powered k8s cluster listens to the GitLab registry and re-deploys newly pushed images.
There is still room for improvement, but for now, I’m quite satisfied.
I’m open to any feedback and suggestions for features and/or changes.
This is actually my first pet-project on a well-organized infrastructure. Now that everything is set up, it will be easy to release further projects. 🔔 Stay tuned for updates (🛫 Telegram channel / 📶 RSS / ✉️ Email). That’s all for now. Have a nice day and thank you for reading!