How I Designed My Own GTD System in Taskee
When I started building Taskee, I didn’t want to create just another to-do list. My goal was to bring the Getting Things Done (GTD) methodology into a fast, intuitive app that respects the philosophy of David Allen, while feeling lightweight and modern.
For years, I had struggled to find a task manager that felt frictionless yet structured enough to follow GTD properly. Either they were too rigid, too bloated, or simply didn’t fit my brain. So I built my own.
Here's a technical deep dive into how I designed it, how I kept it close to the GTD roots, and what I learned along the way.
Mapping GTD to a Real App
GTD isn't just about to-do lists — it's a system. It asks you to:
- Capture everything in your head
- Clarify what each item means
- Organize it into lists and contexts
- Reflect regularly
- Engage with intention
To reflect this in code, I used two core models: Item and Project. Each item has metadata (due date, flags, subitems), but the real power comes from the context in which it's used.
My mapping looked like this:
| GTD Concept | Taskee Equivalent |
|---|---|
| Inbox | project == nil, default tab |
| Project | Project model |
| Next Actions | Tasks due today, flagged, or without a blocker |
| Waiting For | Tasks with .isWaiting flag |
| Someday/Maybe | Tasks with no due date and low priority |
The Inbox is always top-level and encourages capture-first behavior. You don’t need to think — just dump your brain. Later, you can clarify.
Beyond the Basics
I didn’t want Taskee to just mimic GTD — I wanted it to evolve it for mobile use.
1. Repeatable Tasks
Not everything is a one-off. Think: weekly reports, workouts, or monthly payments.
Instead of using a basic repeat toggle, I implemented a flexible RepeatOption:
- Specific weekdays (e.g. Mon, Wed, Fri)
- Every X days, weeks, or months
- “Last day of the month”
When a repeating task is marked as finished, item.finish() generates the next instance automatically — including subitems if present.
2. AI-Assisted Goal Decomposition
A powerful GTD habit is breaking down projects into concrete next steps. But that takes energy.
In Taskee Premium, you can enter a goal like “Learn SwiftUI” or “Launch side project”, and the app uses AI to generate actionable items. These are added either to your Inbox or to a chosen project.
This simulates the "clarify" and "organize" phases with minimal friction.
3. Notifications, Flags, Priorities
- Priorities help sort your day — high, medium, low.
- Flags act like stars or importance indicators.
- Local notifications remind you when a task is due or when you want to be nudged.
Everything is synced securely using encrypted storage and a Vapor-based backend.
Mind Maps as a Starting Point
When working on larger projects, I often start with a mind map. It’s faster to sketch out structure visually, then translate it into tasks.
For example, planning a new feature in Taskee often starts as:
- Central node: “Release new onboarding”
- Branches: Design, Copy, Animations, Tracking
Each branch becomes a Project or a group of Items, and from there it flows naturally into actionable work.
Mind maps help keep the why in focus — and GTD is all about thinking with purpose.
Simplicity Over Complexity
A common trap when building a GTD app is overengineering. You start wanting tags, labels, filters, contexts, dependencies…
Instead, I stuck to the following principles:
- Tasks are flat and lightweight.
- “Today” is the main screen — shows what matters now.
- Adding a task should take under 2 seconds.
- Structure should emerge, not be forced.
Taskee uses SwiftUI, CoreData, and the excellent Factory for dependency injection. All networking and sync run through Vapor with async/await support.
What I’d Do Differently
- Better UI separation: in hindsight, I should have abstracted more of the business logic away from views earlier.
- Fully embrace async/await: it’s the future, and callbacks just get in the way.
- Data export model: I plan to add a way to export your entire task database as plain JSON or markdown — because your data is yours.
Final Thoughts
GTD changed how I work, but Taskee changed how I feel about work.
It’s a system I trust, because I built it around my brain — not the other way around.
If you're into GTD, indie development, or simply want a better relationship with your to-dos, maybe this article inspires you to build your own flow too.
And if you want to try Taskee, stay tuned — a public beta is coming soon 🚀