Console #193 -- An Interview with Alain of Planify - Task manager for GNU/Linux
Featuring redb, Spotube, and Street Complete.
🤝 Sponsor
This space is reserved for sponsors that support us to keep the newsletter going! Want to support Console? Send us a note at osh@codesee.io
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
redb
An embedded key-value database in pure Rust
language: Rust stars: 2618
repo: github.com/cberner/redb
site: redb.org
Spotube
🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
language: Dart stars: 14259
repo: github.com/KRTirtho/spotube
site: spotube.krtirtho.dev
Street Complete
StreetComplete is an easy-to-use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data
language: Kotlin stars: 3492
repo: github.com/streetcomplete/StreetComplete
f-droid: f-droid.org/packages/de.westnordost.streetcomplete/
Planify
Task manager with Todoist support designed for GNU/Linux 🚀
language: Vala stars: 2570
repo: github.com/alainm23/planify
Join thousands of other open-source enthusiasts and developers in the Open Source Hub Discord server to continue the discussion on the projects in this week's email!
🎙️ Interview with Alain of Planify - Task manager with Todoist support designed for GNU/Linux
Hey Alain! Thanks for joining us! Let us start with your background.
Hi. I’m Alain. I'm a nerdy Peruvian guy living in Cusco. I love technology in every form and medium, learning new things every day, and constantly tackling new challenges. I started programming when I was 14 years old and currently I work as a frontend developer. I'm also an open source indie developer. I love music, spending time with my family and creating new things all the time.
Who or what are your biggest influences as a developer?
I don't think I have an influence at all, since I was a child I always liked to create and have things in order, and being a developer allows me to express it.
What’s your most controversial programming opinion?
I like to program and keep things simple, this makes my code look like it was written by a beginner, I like to use if else instead of switch, I avoid using do while, and I have a fascination for formatting my code without using Prettier.
What is your favorite software tool?
I currently use Fedora as operating system, VS Code as code editor, Gnome Calendar to have all my meetings synchronized and Planify and Todoist as task manager.
Why was Planify started?
Planify was created more than 5 years ago and was very much inspired by the design lines of the elementary OS project which I was a contributor to at some point. I created it as a necessity when trying to find a task manager for Linux that was up to the task, had a nice design and good functionalities. Planify was my first interaction with indie development and the use of Vala and Gtk.
How does Planify work?
Planify is a native desktop application, written in Vala, Gtk4 and libadwaita, uses a SQLite database to store the tasks and is synchronized with Todoist. so as not to have the app isolated on the computer.
Where did the name for Planify come from?
Planify was initially called Planner, and the name was kept until version 3, there was always discussion as there was a Gnome project with the same name (Gnome Planner). For version 4, it was decided to rewrite the application from scratch migrating to Gtk4 and libadwaita apply to Gnome Circle and change the name to Planify.
Who, or what was the biggest inspiration for Planify?
Planify is inspired by several popular task managers such as Things 3, Todoist, Planny, Tasks. From which we have taken a bit of each, both in design and functionality.
What is the most challenging problem that’s been solved in Planify, so far?
Planify has several design and development achievements that I was very proud to be able to implement.
1. Open a task detail: Initially the tasks are shown in one line, when you click on it, it expands and shows the full detail in a beautiful animation and superfluid. This requires a lot of coordination to reveal and hide elements, its implementation is simple but I think unique in a Linux app.
2. Calendar event display: This feature allows you to view calendar events in Today and Upcoming views. It syncs with the default calendar app in Gnome.
3. Drag and drop and magic button: The drag and drop functionality feels natural and the magic button allows you to add tasks where you want and in the order you want.
What was the most surprising thing you learned while working on Planify?
Planify was my first project in production. I started it when I was just starting my career as a developer. I think I learned a lot about design patterns, architecture, best practices, performance improvement, etc.
How did Planify get popular?
I consider Planify to be popular for its design and great attention to detail. Many of the UI elements are well thought out and friendly to what the user already knows and it syncs with Todoist which is the most popular task manager.
What is the release process like for Planify?
We don't have an official release schedule or development roadmap, mostly because I'm the only developer, but there is a long list of feature requests that I hope to land very soon.
Is Planify intended to eventually be monetized?
Planify is currently free to download and will probably remain so forever. The way to maintain the project is thanks to donations, there are not many, but knowing that the software is useful for someone and reading their thanks is the best way to motivate me.
What are you most proud of?
I liked the time when Planify exploded in popularity, I received messages of gratitude every day and there were several reviews of the app. As an anecdote the DTO of Doist (the company behind Todoist) contacted me and congratulated me for the work I did with their API to synchronize Todoist and gave me a premium account until 2030.
How do you balance your work on open-source with your day job and other responsibilities?
Planify is not a full time project and not my only job, I take advantage of the moments I have free a couple of hours in the morning and weekends.
What is the best way for a new developer to contribute to Planify?
If you are a developer and have basic knowledge in Vala and Gtk you could help me with some bug fixes or improvements, there is a long list of feature requests to implement. If you are not a developer, don't worry, you could also help me with translations or documentation.
Where do you see the project heading next?
I would like Planify to be the best task manager for Linux, with support for multiple services and better features over time.
What motivates you to continue contributing to Planify?
It motivates me to know that many people use Planify.
Are there any other projects besides Planify that you’re working on?
Not at the moment, but I have another music player application called Byte that I would like to port to Rust and Gtk4. I think Rust is gaining a lot of ground in desktop development and its community is growing by leaps and bounds.
Where do you see software development heading next?
I like to know that many new indie developers are appearing to build many apps and create a new community, there is always something to learn and improve if it already exists.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
I started as a translator and then fixed small bugs that I found in the app I was using. I consider that independent development is a great opportunity to get involved and learn, most of these projects are maintained by only one person and the code is not so big and complex.
Loved the story of Planify? Subscribe to the free newsletter to receive interviews with more open source projects!
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!