I've been working on two important things aside from client work: a.) updates to my website and b.) updates to the Pulumi desktop app. I'll write about the website updates in a separate post but I wanted to take the time to dive into what it's been like adding a new feature to Pulumi desktop app.
I've been working on adding a feature that allows users to group projects. I've learned quite a lot from working on this feature. The entire experience of having to develop a cross-platform desktop app has been a great learning experience. But this single feature has taught me a lot about user experience and time and the compromises we have to make to strike a fine balance.
In all I've spent about three days' worth of engineering time on this and I am getting close to releasing it very soon.
Today, a user can add Pulumi projects to the workspace but they are represented as a flat list which makes it difficult to find related Pulumi projects. The whole idea for the desktop app is to boost your productivity when you are working with multiple Pulumi projects without having to juggle tabs in your terminal, trying to remember CLI commands or for that matter, where your projects are even located on your machine.
A friend added a suggestion for grouping projects. It's a great idea and one that I could really use myself.
I've spent time researching different UI components that I could leverage to implement this feature, specifically, if I should switch to the Tree component or stick with the current Menu component and leverage its ability to behave, well, like a menu. I chose to do the latter because of the ability to highlight the parent item when a leaf node under it is selected. I didn't want to write additional code trying to get the tree component to behave like a menu and besides, the menu component supports nested levels if it's needed in the future. For now, I've restricted the levels to just one.
Also notice how when the menu is collapsed, that it automatically handles rendering the sub-menu. Yeah I really liked that out-of-box feature. It's another reason why I decided to stick with the menu component.
Clicking the little settings button next to the title allows group management.
I am now working on being able to drag projects between groups and I plan to complete in the coming week, so I can release an update during the first week of July (or earlier). I love under-promising and over-delivering. :)