As a founder and CTO, I’ve launched multiple startups and ecommerce platforms. I’ve learned one crucial truth: the best solution isn’t the most complex—it’s the one that ships first and evolves fastest.
But here’s the irony: while building companies and managing teams, I found myself completely overwhelmed by my own todo list. Dozens of tasks. Multiple projects. Endless priorities. Every productivity app I tried just made the problem worse.
So I built Get Shit Done (GSD)—a todo list app for people who are drowning in their todo lists.

Here’s how I approach building products—and what creating a simpler task management system taught me about solving problems at scale.
Who This Is For
If you’ve ever:
- Opened your task manager and felt immediate anxiety
- Had 20+ “high priority” tasks and no idea where to start
- Spent more time reorganising your todo list than actually doing tasks
- Tried every productivity app and still felt overwhelmed
- Felt guilty about the tasks you’re not doing instead of proud of what you are doing
This is for you.


I built Get Shit Done because I was drowning in my own task management system. And if you’re reading this, you probably are too.
The Problem: Your Todo List is Overwhelming You
You know the feeling. You open your task management app and see:
- 47 unchecked tasks
- 12 “high priority” items
- 8 overdue deadlines
- Tasks from three months ago you keep postponing
The day hasn’t even started, and you’re already exhausted.
Every productivity app I tried promised to help me “stay organised” and “manage my tasks better.” But they all made the same mistake: they assumed more features meant better task management. More tags, more projects, more boards, more views.
But here’s the truth: the problem isn’t organisation. It’s decision fatigue.
Your todo list is overwhelming you because you’re trying to do everything, every day, all at once. And no amount of colour-coding or prioritisation frameworks will fix that.
As a CTO, I see this pattern everywhere:
- Ecommerce platforms adding features nobody asked for
- SaaS products optimising for edge cases instead of core workflows
- Teams building what’s technically impressive instead of what’s actually useful
The bigger picture: When people feel overwhelmed by their todo list, they don’t need more ways to organise tasks. They need permission to do less.
So I built GSD around one brutal constraint: pick two things that matter today, and dump everything else in the backlog.
That’s it. No nested projects. No colour-coded priority matrices. Just two daily goals and a place to store everything else for later.
The Build: Ship Fast, Learn Faster
Week 1: Building a Todo List That Actually Reduces Overwhelm
I didn’t write a spec. I didn’t wireframe for weeks. I asked: “What’s the absolute minimum that helps someone who’s drowning in tasks?”
The answer:
- A way to set two daily goals (not ten, not five—two)
- A backlog to dump everything else without judgment
- A simple way to mark things done
- No guilt, no streaks, no pressure
I built that in a weekend. React, Firebase, Tailwind. Tools I know cold. No time wasted on “Should we use X or Y?”—just ship.
The core insight: your todo list should calm you down, not stress you out.
Week 2-4: Real Usage, Real Feedback
I used it every day. My team used it. We found the friction points immediately:
- “I need to bulk-add tasks from my messy notes” → Built bulk paste
- “My life doesn’t fit in 8 categories” → Added custom categories
- “I keep forgetting to check the app” → Started working on push notifications (still fighting this one)
Every feature was a direct response to a real pain point. No roadmap meetings. No prioritisation frameworks. Just: “Is this blocking someone from getting shit done?”
Constant Iteration
I’ve shipped dozens of updates since launch. That’s not chaos—that’s velocity.
Each update solved a real problem:
- Removed “Master Task List” (it was overwhelming)
- Removed streaks (they created anxiety, not motivation)
- Auto-prioritised overdue tasks (users were missing deadlines)
Every removal was as important as every addition. As a founder, you have to kill your darlings. Fast.
The Strategic Decisions That Mattered
1. Offline-First Architecture
GSD works without an internet connection. Tasks save locally first, sync to Firebase second.
Why? Because reliability beats features every time.
If your app needs the cloud to function, you’ve introduced a failure point. Users don’t care about your infra—they care that their work is safe.
This is how I think about every system: What’s the graceful degradation path?
2. Push Notifications: The Humbling Reality
Here’s the honest truth: I’m still fighting with push notifications.
I broke it into four phases. Built the Firebase Cloud Messaging setup. Got service workers running. Wired up the Cloud Functions. Added timezone handling.
And it’s still not working reliably.
This is the reality of building products: some features are harder than they look. What seemed like a weekend task has turned into weeks of debugging token management, service worker lifecycle issues, and timezone edge cases.
Founder lesson: Not everything ships fast. Some problems are genuinely hard. The key is knowing when to push through and when to deprioritise. Push notifications would be nice-to-have, but they’re not blocking the core value prop. So I keep chipping away at it, but I don’t let it stop me from shipping everything else.
Sometimes the best move is admitting “this is taking longer than expected” and moving on to the next high-impact feature.
3. Removing Features is a Superpower
I ripped out streaks and daily mood check-ins early on.
Why? Because I was copying other apps instead of solving the core problem. Streaks made people feel guilty. Mood tracking added friction.
The app got better when I removed them.
CTO lesson: Every feature has a maintenance cost. Every feature adds cognitive load. If it’s not core to the value prop, kill it.
The Bigger Picture: How CTOs Should Think About Product
Start with the Constraint, Not the Features
GSD’s constraint: Two things per day.
Every feature decision flowed from that. Does bulk add support the constraint? Yes—it lets you dump everything so you can pick two. Do nested subtasks support it? No—they complicate the choice.
Framework: Define your product’s core constraint. Evaluate every feature against it. Ship what supports it. Cut what doesn’t.
Build for Your Most Impatient User
I built GSD for me. I’m impatient. I won’t tolerate:
- Slow load times
- Confusing navigation
- Features I don’t need but have to ignore
So the app is fast, simple, and opinionated.
Founder insight: Your most impatient user is your best product manager. They’ll tell you exactly where the friction is—because they’ll just stop using it.
Instrument Everything, But Don’t Obsess Over Metrics
I added Google Analytics early. I track:
- Page views
- Task completion rates
- Feature usage
- User drop-off points
But I don’t live in the dashboard. I use it to validate hunches, not to drive decisions.
CTO reality: Metrics tell you what’s happening. They don’t tell you why. Talk to users. Use your own product. Then check if the data confirms it.
What This Means for Founders and CTOs
Ship the MVP, Then Ship the Next Version Tomorrow
Too many founders spend 6 months building the perfect launch and wonder why it flops.
I shipped the MVP in days. It was rough. But it worked. Then I shipped an update the next week. And the week after that.
Within a month, the product had evolved more than most apps do in a year.
Speed beats perfection.
Use Boring Tech, Ship Exciting Products
React. Firebase. Tailwind. GitHub Actions.
Nothing cutting-edge. Nothing “interesting” from an engineering perspective.
But I went from idea to deployed app in days because I wasn’t fighting the tools. I was solving the problem.
Founder trap: Engineers want to use the new shiny framework. Founders need to ship revenue. Pick boring tech and focus on the product.
Your Users Will Tell You What to Build Next
I didn’t have a roadmap. I had a backlog of pain points.
Users said “I can’t add tasks fast enough” → Bulk add.
Users said “I keep missing deadlines” → Due dates.
Users said “I forget to check the app” → Push notifications.
Every feature came from real usage, not a strategic planning retreat.
Product insight: Your roadmap should be a living document, not a contract. Let user behaviour drive it.
Kill Features as Fast as You Add Them
Streaks? Gone.
Mood tracking? Gone.
Master task list? Gone.
Animated category cycling? Gone.
Each removal made the product better. Simpler. Faster. More focused.
CTO discipline: Measure feature usage. If it’s not core and it’s not used, delete it. Your codebase will thank you.
The GSD Philosophy: A Todo List That Fights Overwhelm, Not Adds To It
At its core, GSD is about making one decision well: What are the two most important things today?
When you’re overwhelmed by tasks, you need constraint, not flexibility. You need permission to ignore 90% of your list today, not another way to reorganise it.
Everything in GSD supports that philosophy:
- Backlog → So you don’t forget things, but don’t try to do them all today
- Categories → So you can balance different areas of life (work, health, admin)
- Due dates → So urgent things bubble up when they matter
- Reflection → So you learn what worked and what didn’t
If your todo list has you paralysed by choice, the solution isn’t better task management—it’s fewer tasks.
As a CTO, this is how I think about every system:
- What’s the one thing this has to do well?
- What’s the minimum viable version?
- How do we ship it today?
- What will we learn from real usage?
- How do we iterate tomorrow?
That’s the playbook. Ship. Learn. Iterate. Repeat.
Final Thoughts: Execution is Everything
Ideas are cheap. Everyone has a todo list app idea. Everyone has an ecommerce platform idea.
What separates founders who ship from founders who don’t is this: the willingness to launch something imperfect and improve it every day.
GSD isn’t perfect. There are bugs. There are features I still want to add. But it’s live, it’s helping people who feel overwhelmed by their tasks, and it’s getting better every week.
That’s the only metric that matters.
If you’re overwhelmed by your todo list: stop looking for the perfect productivity system. Accept that you can’t do everything today. Pick two things that matter. Everything else goes in the backlog.
If you’re a founder, CTO, or product leader: stop planning the perfect version. Ship the good-enough version. Tomorrow, ship the better version.
Get shit done.
Try Get Shit Done
If you’re tired of todo lists that stress you out instead of helping you focus, try GSD. It’s a task management app built for people who are overwhelmed—because sometimes the best productivity system is the one that lets you do less.
Two things today. That’s it. Everything else can wait.

Leave a Reply