Hey there, in today's post I would like to introduce you to my new pet project - Rudo. Rudo stands for "Rust To-do" and is a small terminal application that manages a list of to-dos.
Back in 2020, locked down in isolation with my laptop and a thirst for a challenge, I decided to try out Rust. There are many reasons why I decided to give it a try, but the main one is, probably, the desire to push me out of the comfort zone.
Unlike programming languages which I know, Rust shifts a lot of control over low-level API to the programmer. All those tiny goodies that were perceived as given are now your own responsibility. It's painful... and it's exciting.
Firstly, I struggled. I fought with the compile for every line of code. I read awesome Rust's documentation again and again. I left it and started anew. And one day I realized that I love it. I loved how explicit the language was.
And that's how I programmed Rudo.
Every new programming language starts with "Hello world".
Every front-end framework starts with a to-do app.
Why should I break these rules? 😄
As a front-end developer, I like visually observing my code in action. Wouldn't it be great to create a terminal UI then? I challenged myself to build an application using a terminal as a platform. How would UX for such an application be like? How would you navigate between application states? What would be the indicators and controls?
That's how Rudo was born.
Rudo is a simple to-do list manager. It's built with rs-tui and offers a clean and minimalistic layout to get things done. Keyboard-only input attempts to keep Rudo in line with your usual development workflow.
It's capable of doing a few things:
- Creating and editing tasks 💃
- Removing tasks from the list ❌
- Toggling task state ✅
- Filtering tasks 🏄♂️
- Sorting tasks by date 🦾
- Persisting tasks in a
Rudo is essentially an experiment. It's a prototype with some harsh edges, but made with ❤️ and fun 😎. Nonetheless, I am committed to continue improving Rudo and I am desperate to hear your feedback.
It's straightforward to use - download binaries, and you are good to go!
You can find everything in the README.