Tasker / Blog Post

tasker - Project initialization

June 15, 2026

Documenting the start of a new project

taskerwebdevPWA

I was talking to my partner about project ideas, and out of all them I thought of, she wanted my version of a todo list. So I made a repository and started brainstorming. I thought of what was important and what would be ideal in a task app for me. Eventually, I ended up with this huge text specifying to capabilities of the app I wanted to make (which I'll paste at the end of this blog post). I ended up formatting it like a llm prompt so i gave it to Google Gemini and it spat out a little more useful info for me.

Anywho, before doing that I didn't even know what a Progressive Web Application was... or maybe I did but I never put any effort into memorizing the name. If you read the prompt I made carefully, you'll find that I don't really have any clue what I'm doing 😅. Though you'll also find that I tend to think of features of an app from a database-like point of view so thats what I did in my prompt.

Task app

The purpose of this task management software:

  • Makes a centralised board of tasks.

  • Prioritises ease of access, usablity, inspiration. (Eg. Nice widgets, interaction through notification hub on mobile, cross-platform)

  • Has additional features that are not thrust unto the user but are still there for power users

I need to decide what forms it may take:

  • Mobile app

  • Website

Main functional features:

The app consists of organizing and displaying different tasks. There are some main data objects and interactions in this app are clarified below:

Tasks:

  • Tasks are to be created by the user

  • Tasks must have a title

  • Tasks must have at least 2 or more states (unfinished and finished).

  • Tasks can have O or 1 deadlines/time

  • Tasks can have O or 1 description

  • Tasks can have O or many groups (sort of like tags, a group catagorises the nature of a task)

  • Tasks can have O or 1 projects

  • Tasks can be re-occurring*

  • Tasks must have typical metadata (id, created_at, last_edit)

  • Tasks must have at least two states to indicate the level of completion but can have more (eg. backlog, in_progress, ..., complete). This is called COMPLETION STATE*

Group and projects:

  • Tasks can belong to 0 or many groups

  • A task can be a grouping (this will be called a project from here on); where other tasks that contain that grouping are considered sub tasks.

  • Tasks can belong to 0 or 1 project

  • A groups is simply a string that gives a name to categories of tasks.

  • All tasks that belong to a project must have the same NUMBER of completion states, but are able to have their individual state.

  • A project can also have states and is not restrained to the same number of states its 'children' (tasks that have the project as a group) have.

  • Projects can be nested

  • A group can have a description

  • A project inherits all task features but also lists all tasks that have it as a tag.

Reoccurring tasks:

  • A reoccurring task is a task that has either a CYCLE or a REFRESH SCHEDULE.

  • A REFRESH means that the task can occur again after being completed, returning to its initial completion state.

  • A REFRESH SCHEDULE is a 'custom number' of refreshes per a 'custom time period'.

  • A reoccurring tasks 'completion state' indicates the 'custom number' of completions, such that if the reoccurring task has a project it belongs to, it does NOT need to share the same number of completion states as its siblings

  • a CYCLE is an array of objects that contain a title extension, and a description extension.

  • when a reoccurring task has a CYCLE, it cycles through the array to modify its title and description upon REFRESH.

  • A reoccurring task must have one or both a CYCLE or a REFRESH TIMER.

How the app will cater productivity

  • There exists multiple ways to view tasks. Some ideas: GitHub commit board type widget

below are things that I think will not be part of my mvp:

Collaborative tasks and users

  • Users can make an online account with all the typical metadata (display name, profile picture, and what not)

  • Users can collaborate on tasks through collaboration spaces.

Storage solution

  • Data is always stored on device but users will have the choice to store data on a cloud service of their choice (eg, googledrive, OneDrive, Dropbox, or a homebrew server)

Give me recommendations for a tech stack and a step by step guide on what I need to do to deliver the MVP, including what industry-standard developer concepts they implement.


previousnext