Comment

Comment by twentyshores

Home Assistant and rethinking chore loop: Native Home Assistant integration provides components that I've been looking forward to having on my own Home Assistant installation. I always imagined a style of chore reminder on Home Assistant, where chores would show as buttons that light up as they needed to be taken care of and dim when done, so I can see a chore that’s not due easily in advance (if I know AC filter needs changing in a week, I can go and buy some), but also not disappear after rolling over to next occurrence (so I know its not something I need to worry about any time soon and rest easy knowing they are truly done). First card I added was this card, repeating task tracker. Tasks will light up and become active when due, after clicking it will go dim, and give you 10 seconds to undo to protect against accidental taps, then roll over to the next occurrence and stay dim until due again. I added two repeat modes to address different cases and these will be available on next app build:

- Until checked: For tasks that can be done at any time. Typical recurring task, will wait for you to check it before it rolls over to next occurrence. - On Schedule: This is for types of tasks that always occur on the due date, such as taking out the garbage. Garbage truck will come and go and does not care whether you marked it on your app.

Integration comes with two more cards, a list view (can show a project, task, life domain, whatever you choose, plus their direct descendants), and summary view, which will show due and ongoing tasks and notifications, which is a copy of the mobile app widgets. These cards can be seen on [ProgressCove Home Assistant GitHub page](https://github.com/Twenty-Shores/progresscove-homeassistant) which is pending HACS inclusion.

Break decision fatigue with Soup Mode: Another repeat mode I have added is something I have not seen in any app before. I called it soup mode after the phrase ‘soup of the day’. This mode is for tasks where you want a little randomization to keep things interesting, such as picking the soup of the day, what movie to watch, workout rotations, bedtime story, and so on.

How it works:

- You create a task, let’s say ‘Soup’. You add your soup varieties as subtasks; Tomato Bisque, Minestrone, Chicken Noodle. - On activation of soup mode, it will pick the first subtask and rename the task to contain the subtask name, ‘Soup: Tomato Bisque’. - On completion, it will roll to the next occurrence and pick the next one, ‘Soup: Minestrone’. - Shuffle option will randomly change order of the list after each subtask completion, so you never know what the next pick will be. - Soup has two repeat modes, 'everything picked once then complete' and 'randomly pick, repeats allowed, never complete'.

Prioritizing project completion over spreading attention with smart weights: One issue I always suffer is having too many open projects at once, making a little progress at a time on each and never reaching completion. I aimed at addressing it by a smart weights algorithm. Projects and tasks by default are ordered by weights, higher is displayed first. Three values contribute to weights: - Highest contribution comes from completion percentage which is on an exponential curve that starts slowly and rapidly ramps up as it nears 100%. - Second highest is project/task age. Newer tasks get the highest values. This ensures newest tasks/projects are always displayed on top to ensure something user entered does not disappear due to not having any progress. As age increases, the value slowly decreases where it bottoms out at 9 to 14 days, after that it starts increasing again, but never reaches value of a new task. - Last contribution comes from subtask completion percentage. This contributes little compared to the other two, mostly as a tiebreaker. This algorithm contributes more value to tasks that have more subtasks completed. I aim to add more smart task management features, such as detecting stuck projects and offering methods to simplify projects (such as breaking into smaller, more easily achievable tasks), offering task management methods to handle them (timeboxing, task batching, 2 or 5 minute rules etc.).

Not giving the user enough rope to hang themselves: There's more advanced features, such as allowing tasks to go 8 levels deep (default is 4, domain -> project -> task -> subtask) behind an advanced setting. Advanced settings can get complicated, allowing users to move an item to a different level (such as turning a subtask into a project), turning off smart weights algorithm, renaming tiers (you could rename the word 'project' into 'donkey' if you wish, having the app tell you that you have 8 donkeys) which is a feature mainly to help users who don't like the ordering of domain, project, task, subtask. Behind the scenes the code simply calls them 'nodes' and only keeps track of the relationship between them. All of these options are hidden in an Advanced settings menu. There's also the opposite, where the user can further simplify things, such as turning off mention of time completely, so you would never see start, due dates or reminder options, to help users with severe anxiety, and make task cards bigger and more spread to have more eye resting room.

Transparency and Pricing:

ProgressCove is a paid app with a 14 day no card required, full feature trial. After that it’s $4.99 per month or $39.99 per year, which will pay infrastructure costs, allow me to keep the apps updated, add new features and integrations. I intend to make a self-hostable version. I love the homelab community and I am one of them, but time constraints make paid versions a priority to be able to afford to spend more time on the project. My aim is to work for my own company full time, building this and many other software applications I have on my mind.

I would love to get your feedback, hear opinions on architecture, design goals, or simply talk about anything else you find discussion worthy.

No comments yet

Be the first to share your thoughts.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton