case study · independent ios product

LoopTidy

Close loops. Track decisions.

A private, local-first tracker for the follow-ups, blockers, commitments, and decisions that fall between tasks, notes, and calendar events.

>status: in TestFlight beta, build 33 · preparing for App Store submission

what it looks like

The app itself

LoopTidy launch screen with logoLaunch screen
LoopTidy Today screen showing today's focus item and signalsToday
LoopTidy Loops screen showing a list of open loops with status and risk tagsLoops
LoopTidy Decisions screen showing tracked decisionsDecisions

the problem

Real work creates open loops

Most productivity tools are built around tasks, calendars, notes, or team boards. But a lot of real work doesn't fit neatly into any of those buckets. It's waiting on someone, half-promised, blocked, or still an open decision. Those items are easy to lose in chats, email, notes, or memory, and they create the kind of background mental clutter that's hard to shake.

WAITING

"I'm waiting for someone to respond."

PROMISED

"I promised I'd follow up."

DECISION

"This decision is still open."

BLOCKED

"This is blocked until someone else acts."

the solution

A system built around closing loops, not managing tasks

LoopTidy gives each of those unresolved items a home: a place to capture it before it's lost, track its status and owner, and move it toward closure. Instead of forcing waiting items, promises, and decisions into a generic task format, LoopTidy treats them as their own category (an open loop) with the structure that category actually needs.

I built it after noticing how much of my own project and product work (across operations, property projects, and app development) wasn't made of clean tasks. It was waiting items, promises, blockers, and decisions that needed a system of their own, not a to-do list with extra steps.

key features

What's actually built

Today Dashboard

Your focus loop, what's up next, key signals, and a weekly-review prompt, all in one view.

Loops

Create and edit loops with type, priority, risk, category, person, due date, and attachments. Then close, archive, reopen, or delete as things change.

Loop Detail

Full context for each loop: timeline, notes, linked decisions, and local reminders in one place.

Decision Log

A dedicated space for open and resolved decisions, kept separate from ordinary tasks.

Command Center

Search, filter, and sort across loops and related data to find anything fast.

Local Reminders

On-device notifications, with permission requested only when you actually set a reminder.

Backup & Restore

Local export, backup, and restore, since there's no cloud account holding your data for you.

Settings & Customization

Capture defaults, reminder and snooze behavior, time format, week start, stale thresholds, and more, tuned to how you work.

Dark Mode

System, light, or dark appearance, so the app matches how you already work.

App Lock

Optional Face ID or passcode lock for an extra layer of privacy on top of your device's own security.

On the roadmap: Scope Guard and a Feedback-to-Decision pipeline are in active design. Both extend the same open-loop model to scope changes and incoming feedback.

product thinking

Decisions behind the product, not just the code

Local-first, not cloud-first

Follow-ups and decisions can be sensitive. For v1, privacy and simplicity mattered more than sync or collaboration.

No account system

Fewer moving parts, lower App Store review risk, and a privacy-first story that actually holds up.

Open loops, not tasks

A deliberate difference from Notion, Asana, or Todoist, built for the unresolved, in-between work those tools don't model well.

technical build

How it's built

Local-first architecture throughout: SQLite for loops and core data, on-device storage for preferences, and local notifications for reminders, with no backend server and no remote push.

  1. Product idea & positioning

  2. MVP planning & local data model

  3. Core screens, navigation & loop tracking

  4. Decisions, follow-ups & reminders

  5. Privacy-first settings

  6. TestFlight prep, App Store readiness & QA

privacy by design

Local-first, by choice

my role

What I owned, end to end

Product strategy Problem discovery Feature definition UX flow planning App architecture decisions TestFlight & build workflow App Store readiness QA testing Privacy & metadata prep Release planning

skills demonstrated

Product management Mobile app development Technical project management UX thinking Local-first architecture Privacy-aware design App Store release planning QA & bug triage Git/GitHub workflow TestFlight distribution

status

Where it stands today

In TestFlight beta, build 33, preparing for App Store submission. Focus is on stability, usability, and App Store compliance ahead of a polished version 1 release.

let's talk

Curious about LoopTidy, or how I approach product work?