A relational planning model
Goals, milestones, tasks, task occurrences, check-ins, and notes are represented as separate records. Links between goals, milestones, and tasks preserve context as work moves from planning to completion.
Open-source product · AGPL-3.0
An open-source goal-planning app that connects a long-term outcome to milestones, the next task, and a regular review. The product is built around a repeatable loop: plan, act, check in, and adjust.

Product challenge
A goal, a task list, and a journal can each hold useful information, but they tell different parts of the story. When they live in separate places, it takes extra effort to see which action matters next or whether the plan still fits.
Rungset brings those pieces into one personal workspace. A goal carries its milestones; tasks can be attached to the goal or a milestone; check-ins record progress and blockers. The Today view then surfaces an immediate action alongside a weekly review, rather than asking the user to reconstruct that context each time.
The product challenge is therefore one of continuity: preserve the relationship between an intended outcome, the work being done, and the reflection that changes the plan.
Product workflow
Each step leaves useful context for the next. The product keeps planning lightweight enough to revisit while retaining the details that make progress visible.
01
Create a goal with a category, timeframe, target date, and current status so the larger objective has a clear place in the workspace.
02
Give the goal intermediate checkpoints, then connect practical tasks to the goal or a specific milestone.
03
Use the Today view, due dates, priority, and recurring-task schedule to make the next piece of work visible.
04
Record accomplishments, challenges, energy, and notes, then use the review to update goals and the next set of tasks.
Engineering
The implementation has to support a structured planning model without making a network connection the only way to work. It also has to protect private goals and notes at the API boundary.
Goals, milestones, tasks, task occurrences, check-ins, and notes are represented as separate records. Links between goals, milestones, and tasks preserve context as work moves from planning to completion.
Better Auth manages sign-in. Authenticated API routes and D1 queries scope goal and planning data to its owner, while Drizzle schemas and forward-only migrations keep persistence explicit.
A local workspace cache keeps the app usable between connections. Changes synchronize through authenticated API routes when connectivity returns, rather than making browser storage the only copy of a user’s work.
The Next.js App Router application is deployed to Cloudflare Workers through OpenNext. The Android app opens the hosted workspace, so it shares the same account and product surface.
A task can be completed without losing its place in a larger goal. Repeating tasks have dated occurrences, so a recurring schedule does not have to collapse into one permanent completed flag. Check-ins can be linked to a goal and preserve accomplishments, challenges, energy, and notes as separate reflection data. That structure supports both the focused daily view and a longer review of the plan.
Project result
Rungset is published as an AGPL-3.0 open-source project, with a hosted web workspace and an Android wrapper that opens the same workspace. The public source gives engineers a way to inspect the data model, application routes, and deployment setup behind the product.
This is product evidence rather than client proof. The case study makes no claim about the number of users, retention, goal completion, or behavior change. Those outcomes would require direct product data and a defined measurement period.
Current scope