docs: complete project research
This commit is contained in:
227
.planning/research/FEATURES.md
Normal file
227
.planning/research/FEATURES.md
Normal file
@@ -0,0 +1,227 @@
|
||||
# Feature Research
|
||||
|
||||
**Domain:** Household chore / cleaning schedule management app (local-first, Android)
|
||||
**Researched:** 2026-03-15
|
||||
**Confidence:** MEDIUM-HIGH (competitor apps analyzed directly; user pain points verified from multiple sources)
|
||||
|
||||
---
|
||||
|
||||
## Feature Landscape
|
||||
|
||||
### Table Stakes (Users Expect These)
|
||||
|
||||
Features users assume exist. Missing these = product feels incomplete or broken.
|
||||
|
||||
| Feature | Why Expected | Complexity | Notes |
|
||||
|---------|--------------|------------|-------|
|
||||
| Room-based organization | Every competitor (Tody, Sweepy, BeTidy, OurHome) uses rooms as the primary organizing unit. Users mentally group chores by room, not by abstract category. | LOW | Rooms need icon support at minimum; photos are optional |
|
||||
| Task CRUD with recurrence intervals | Core loop of any chore app — create a task, set how often it repeats, mark it done. Without this nothing else works. | MEDIUM | Intervals: daily, every N days, weekly, monthly, seasonal. "Every N days" is more flexible than day-of-week pickers. |
|
||||
| Auto-scheduling next due date after completion | After marking done, the next due date must recalculate automatically. Without this users must manually manage dates — defeats the purpose. | LOW | Next due = completion date + interval |
|
||||
| Visual "today" view with overdue/upcoming sections | All competitors surface what needs doing today. Overdue items must be visually distinct (users feel guilt-free pressure, not anxiety). | MEDIUM | Three-band layout: Overdue / Due Today / Upcoming |
|
||||
| Task completion (mark done) | Obvious but critical — the satisfying tap that completes a task and updates the schedule. | LOW | Should feel responsive and immediate |
|
||||
| Daily notification / reminder | Every competitor offers push notifications for daily task reminders. Users who don't get reminded forget to open the app. | LOW | Single daily summary notification is enough; per-task reminders are scope creep for MVP |
|
||||
| Bundled task templates per room type | Users don't know what tasks to create for a new "Bathroom" room. Templates eliminate blank-slate anxiety and time-to-value. BeTidy and Sweepy both do this. | MEDIUM | Curate ~5-10 tasks per room type; templates should be pre-seeded, not user-created |
|
||||
| Light/dark theme support | Material 3 baseline expectation on Android. Users switching themes see a broken experience if unsupported. | LOW | System-default follow; explicit toggle is a v2 nicety |
|
||||
| Task sorting (at minimum by due date) | Overcrowded task lists are unreadable without sort. Due date sort is the baseline; additional sorts are differentiators. | LOW | Due date sort must ship at MVP; alphabetical/interval/effort sorts are v1.x |
|
||||
|
||||
---
|
||||
|
||||
### Differentiators (Competitive Advantage)
|
||||
|
||||
Features that set the product apart from competitors. Not table stakes, but provide meaningful value aligned with the core value proposition.
|
||||
|
||||
| Feature | Value Proposition | Complexity | Notes |
|
||||
|---------|-------------------|------------|-------|
|
||||
| Cleanliness indicator per room | Tody pioneered the green-to-red "dirtiness" visual. It gives users an at-a-glance health check without opening every room. HouseHoldKeaper's local-first, calm design can do this without cloud dependency. | MEDIUM | Derived from overdue task ratio; no network required. Formula: ratio of overdue tasks vs total tasks per room |
|
||||
| Task history / completion log | Most apps don't surface history prominently. Users with OCD tendencies and couples wanting accountability ("did anyone clean the bathroom last week?") want a log. Home Tasker and HomeHero charge for this. | MEDIUM | Store completion timestamps in SQLite; display as scrollable log per task. Drift makes this straightforward. |
|
||||
| Zero account, zero cloud, zero data leaving device | No competitor offers this by default. Every top app (Tody, Sweepy, BeTidy, OurHome) requires an account or subscription for sync. Privacy-conscious users (the explicit target) have no good option today. | LOW (by design) | This is a design constraint, not a feature to build — but it IS a selling point that sets the app apart fundamentally |
|
||||
| Calm, non-gamified UI | Sweepy and OurHome lean heavily into points, leaderboards, and coins. Tody's "Dusty" mascot is polarizing. Research shows gamification causes long-term drop-off; calm productivity has a distinct audience. | LOW | Material 3 muted palette (greens, warm grays, gentle blues) — the design philosophy IS the differentiator |
|
||||
| Task effort/duration tagging | Knowing a task takes 5 minutes vs 45 minutes lets users pick tasks that fit available time. Only a few apps offer this (Today app does time-tracking). Enables "I have 20 minutes — what can I do?" filtering. | MEDIUM | Simple enum (quick/medium/long) or numeric minutes; used in sorting and future filtering |
|
||||
| One-time project tasks alongside recurring chores | BeTidy supports this; most others don't. "Paint the hallway" is not a recurring chore but belongs in the household task system. Supports the core value: one place for everything household. | MEDIUM | Distinguish recurring vs one-time tasks; one-time tasks disappear from daily view after completion |
|
||||
| Vacation / pause mode | Users going on holiday return to a crushing list of overdue tasks. Pause mode freezes due dates and resumes from departure date. Spix and Daily Cleaning Routines both have this. | MEDIUM | Store a "paused until" date; reschedule all tasks on resume |
|
||||
|
||||
---
|
||||
|
||||
### Anti-Features (Commonly Requested, Often Problematic)
|
||||
|
||||
Features that seem desirable but create complexity without proportional value — or contradict the project's core values.
|
||||
|
||||
| Feature | Why Requested | Why Problematic | Alternative |
|
||||
|---------|---------------|-----------------|-------------|
|
||||
| Cloud sync / multi-device sync | Partners want tasks to sync across two phones | Requires backend infrastructure, accounts, auth, server costs, and ongoing maintenance — directly contradicts zero-backend constraint. Also kills privacy angle. | Single shared Android device (stated use case). Future: self-hosted sync as opt-in v2+ |
|
||||
| Family profiles / user accounts | OurHome and BeTidy offer per-person task assignment | Requires user model, login, profile management — significant complexity for a two-person shared-device app. Adds friction without benefit when both users share one phone. | No profiles for MVP. Future: simple "assigned to" text label on tasks |
|
||||
| Gamification (points, leaderboards, coins) | Sweepy/OurHome use this for engagement | Research (MIT Technology Review, 2022) shows gamification embeds unequal labor dynamics and causes "app burnout." Contradicts calm productivity positioning. Short-term engagement, long-term churn. | Cleanliness indicator provides visual feedback without coercion |
|
||||
| In-app purchases / subscription | Monetization | Project is free-forever by design; subscriptions create "paywalled features" resentment (the #2 complaint across all chore app reviews) | Free, no IAP. Publish open source if desired. |
|
||||
| Statistics & insights dashboard | Power users want historical graphs | High complexity UI; requires substantial history data to be meaningful; distracts from core loop for MVP. BeTidy gates this behind Pro. | Task history log satisfies immediate need; dashboards deferred to v2.0 |
|
||||
| AI-powered task suggestions (camera scan, etc.) | Sweepy 2025 added camera-to-task AI | Requires network / on-device ML model; adds significant complexity; overkill for a personal app with curated templates | Bundled room templates eliminate blank-slate problem without AI |
|
||||
| Real-time cross-device sync | Couple wants independent phones to stay in sync | Requires network, conflict resolution, operational infrastructure — the entire anti-pattern for this app | Shared device workflow; defer to self-hosted CouchDB/SQLite sync in v2+ |
|
||||
| Per-task reminders (individual push notifications) | Users want reminder at specific time for each task | Notification fatigue; permission management complexity; most users report turning off per-task notifications within a week. Daily summary is more effective for habit formation. | Single daily summary notification |
|
||||
| English localization for MVP | Broader audience reach | Adds localization infrastructure, string management, and review complexity before the app is even validated. Ships slower, validates nothing about the core product. | Ship German-only; add i18n infrastructure in v1.1 |
|
||||
| Tablet-optimized layout | Larger screen = better experience | Responsive layout engineering is non-trivial in Flutter for adaptive breakpoints; primary use case is phone | Defer to v1.1; phone layout is sufficient for stated use case |
|
||||
|
||||
---
|
||||
|
||||
## Feature Dependencies
|
||||
|
||||
```
|
||||
Room CRUD
|
||||
└──requires──> Task CRUD (tasks belong to rooms)
|
||||
└──requires──> Auto-scheduling (tasks need next-due logic)
|
||||
└──requires──> Daily plan view (needs due dates to sort)
|
||||
└──requires──> Task completion (mark-done triggers reschedule)
|
||||
|
||||
Task templates
|
||||
└──requires──> Room CRUD (templates pre-populate a room's tasks)
|
||||
|
||||
Cleanliness indicator
|
||||
└──requires──> Task CRUD + Auto-scheduling (indicator derives from overdue ratio)
|
||||
└──enhances──> Daily plan view (room-level health visible from plan)
|
||||
|
||||
Task history
|
||||
└──requires──> Task completion (completion events are what get logged)
|
||||
└──enhances──> Cleanliness indicator (can show trend, not just current state)
|
||||
|
||||
Daily notification
|
||||
└──requires──> Auto-scheduling (needs due dates to determine what to notify about)
|
||||
|
||||
Task effort tagging
|
||||
└──enhances──> Task sorting (sort by effort as one option)
|
||||
└──enhances──> Daily plan view (filter by available time — future)
|
||||
|
||||
Vacation / pause mode
|
||||
└──requires──> Auto-scheduling (pause freezes the scheduler)
|
||||
|
||||
One-time project tasks
|
||||
└──requires──> Task CRUD (same data model, different recurrence setting)
|
||||
└──conflicts──> Auto-scheduling (one-time tasks must NOT reschedule after completion)
|
||||
```
|
||||
|
||||
### Dependency Notes
|
||||
|
||||
- **Room CRUD requires Task CRUD:** Rooms are containers; without tasks, rooms are inert. Both must ship together.
|
||||
- **Auto-scheduling requires Task CRUD:** The scheduler reads interval and last-completion-date from the task record; the task must exist first.
|
||||
- **Daily plan view requires Auto-scheduling:** The plan view is entirely driven by computed due dates; without the scheduler there is nothing to show.
|
||||
- **Task templates require Room CRUD:** Templates are seeded into a room at creation time; rooms must exist first.
|
||||
- **Cleanliness indicator requires Task CRUD + Auto-scheduling:** The indicator is a derived metric (count of overdue tasks / total tasks per room). Cannot be computed without tasks and due dates.
|
||||
- **One-time tasks conflict with auto-scheduling:** One-time tasks must be detected and excluded from the scheduler loop; they complete and stay completed. This is a flag on the task model, not a separate feature — but it must be accounted for in the scheduler logic.
|
||||
|
||||
---
|
||||
|
||||
## MVP Definition
|
||||
|
||||
### Launch With (v1)
|
||||
|
||||
Minimum viable product — what's needed to validate the core "see what needs doing today, mark it done, trust the app to schedule the next one" loop.
|
||||
|
||||
- [ ] Room CRUD with icons — without rooms there is no organizing structure
|
||||
- [ ] Task CRUD with recurrence intervals (daily / every N days / weekly / monthly / seasonal) — the core scheduling primitive
|
||||
- [ ] Auto-scheduling of next due date on task completion — the "fire and forget" reliability promise
|
||||
- [ ] Daily plan view (Overdue / Today / Upcoming sections) — the primary answer to "what do I do now?"
|
||||
- [ ] Task completion action — the satisfying feedback loop closure
|
||||
- [ ] Bundled task templates per room type (German language) — eliminates setup friction for new users
|
||||
- [ ] Daily summary notification — keeps users returning without per-task notification complexity
|
||||
- [ ] Light/dark theme (system-default) — Material 3 baseline expectation
|
||||
- [ ] Cleanliness indicator per room — visible at-a-glance health check; derived from overdue ratio, zero extra complexity
|
||||
- [ ] Task sorting by due date — minimum viable list usability
|
||||
|
||||
### Add After Validation (v1.x)
|
||||
|
||||
Features to add once the core scheduling loop is confirmed working and users are returning daily.
|
||||
|
||||
- [ ] Task history / completion log — users will ask "when did I last do this?"; add once task completion data has accumulated
|
||||
- [ ] Vacation / pause mode — first travel use case will surface this need
|
||||
- [ ] Data export/import (JSON) — backup and migration; already noted in PROJECT.md as v1.1
|
||||
- [ ] Additional sort options (alphabetical, interval, effort) — power user usability improvement
|
||||
- [ ] Task effort/duration tagging — enables time-based filtering ("I have 20 minutes")
|
||||
- [ ] English localization — widen audience after German MVP validates the concept
|
||||
- [ ] One-time project task type — "Paint the hallway" use case; simple model extension
|
||||
|
||||
### Future Consideration (v2+)
|
||||
|
||||
Features to defer until product-market fit is established.
|
||||
|
||||
- [ ] Statistics & insights dashboard — requires historical data volume to be meaningful; high UI complexity
|
||||
- [ ] Onboarding wizard — reduces cold-start friction at scale; overkill for initial personal use
|
||||
- [ ] Custom accent color picker — personalization; non-core
|
||||
- [ ] Tablet-optimized layout — secondary device form factor
|
||||
- [ ] Self-hosted sync (CouchDB / SQLite replication) — multi-device without cloud compromise; technically interesting but complex
|
||||
- [ ] "Assigned to" label on tasks — minimal multi-user support without full profiles
|
||||
|
||||
---
|
||||
|
||||
## Feature Prioritization Matrix
|
||||
|
||||
| Feature | User Value | Implementation Cost | Priority |
|
||||
|---------|------------|---------------------|----------|
|
||||
| Room CRUD with icons | HIGH | LOW | P1 |
|
||||
| Task CRUD with recurrence | HIGH | MEDIUM | P1 |
|
||||
| Auto-scheduling next due date | HIGH | LOW | P1 |
|
||||
| Daily plan view (3-band layout) | HIGH | MEDIUM | P1 |
|
||||
| Task completion action | HIGH | LOW | P1 |
|
||||
| Bundled task templates | HIGH | MEDIUM | P1 |
|
||||
| Daily summary notification | HIGH | LOW | P1 |
|
||||
| Light/dark theme | MEDIUM | LOW | P1 |
|
||||
| Cleanliness indicator per room | HIGH | LOW | P1 |
|
||||
| Task sorting by due date | MEDIUM | LOW | P1 |
|
||||
| Task history / completion log | MEDIUM | LOW | P2 |
|
||||
| Vacation / pause mode | MEDIUM | MEDIUM | P2 |
|
||||
| Task effort tagging | MEDIUM | LOW | P2 |
|
||||
| Additional sort options | LOW | LOW | P2 |
|
||||
| One-time project tasks | MEDIUM | MEDIUM | P2 |
|
||||
| Statistics dashboard | LOW | HIGH | P3 |
|
||||
| Onboarding wizard | LOW | MEDIUM | P3 |
|
||||
| Custom accent color | LOW | LOW | P3 |
|
||||
| Tablet layout | LOW | HIGH | P3 |
|
||||
| Self-hosted sync | MEDIUM | HIGH | P3 |
|
||||
|
||||
**Priority key:**
|
||||
- P1: Must have for launch
|
||||
- P2: Should have, add when possible
|
||||
- P3: Nice to have, future consideration
|
||||
|
||||
---
|
||||
|
||||
## Competitor Feature Analysis
|
||||
|
||||
| Feature | Tody | Sweepy | BeTidy | OurHome | Home Routines | HouseHoldKeaper |
|
||||
|---------|------|--------|--------|---------|---------------|-----------------|
|
||||
| Room-based organization | Yes | Yes | Yes | Partial (categories) | Yes (Focus Zones) | Yes |
|
||||
| Visual cleanliness indicator | Yes (green→red bar) | Yes (Cleanliness Meter) | No | No | No | Yes (derived metric) |
|
||||
| Recurring tasks / intervals | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| Auto-schedule on completion | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| Daily plan view | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| Task templates | Basic | Yes (suggestions) | Yes | Partial | No | Yes (bundled per room type) |
|
||||
| Task history / log | No (premium only hints) | Partial | No | No | No | Yes (v1.x) |
|
||||
| Gamification (points/coins) | Partial (Dusty mascot) | Strong | No | Strong | No | No (deliberate) |
|
||||
| Family profiles / sharing | Yes (premium) | Yes (premium) | Yes | Yes (free) | No | No (deliberate) |
|
||||
| Cloud sync | Yes (premium) | Yes (premium) | Yes | Yes | No | No (deliberate) |
|
||||
| Requires account | Yes | Yes | Yes | Yes | No | No |
|
||||
| Offline / local-first | Partial | No | No | No | Yes | Yes (100%) |
|
||||
| Vacation / pause mode | Yes | No | No | No | Partial | v1.x |
|
||||
| Focus timer (Pomodoro) | Yes | No | No | No | Yes | No |
|
||||
| One-time project tasks | Partial | No | Yes | No | No | v1.x |
|
||||
| Free tier | Partial | Partial | Partial | Yes (full) | No ($4.99) | Yes (fully free) |
|
||||
| No subscription / IAP | No | No | No | Yes | Yes | Yes |
|
||||
| German language UI | No | No | Yes | No | No | Yes (MVP-only) |
|
||||
| Privacy / no tracking | No | No | No | No | No | Yes |
|
||||
|
||||
**Key gap this app fills:** The market has no room-based, local-first, account-free, calm (non-gamified), fully private chore management app. OurHome is free but cloud-dependent. Home Routines is local but iOS-only, not room-based, and costs money. Tody is the closest UX model but requires subscription for multi-device and is not privacy-first.
|
||||
|
||||
---
|
||||
|
||||
## Sources
|
||||
|
||||
- BeTidy app (Google Play / App Store): https://betidy.io/en/
|
||||
- Tody app review 2025: https://www.tidied.app/blog/tody-app-review
|
||||
- Sweepy app review 2025: https://www.tidied.app/blog/sweepy-app-review
|
||||
- Best chore apps 2025 comparison: https://thetoday.app/blog/chore-apps-the-best-5-house-chore-apps-reviewed/
|
||||
- Chore apps user pain points (MIT Technology Review): https://www.technologyreview.com/2022/05/10/1051954/chore-apps/
|
||||
- Tody app (productivity.directory): https://productivity.directory/tody
|
||||
- Sweepy app (Google Play): https://play.google.com/store/apps/details?id=app.sweepy.sweepy
|
||||
- OurHome app review: https://noobie.com/ourhome-app-review/
|
||||
- Home Routines app: https://www.homeroutines.com/
|
||||
- Best free chore apps 2025 (mychoreboard): https://www.mychoreboard.com/blog/best-free-chore-apps-2025/
|
||||
|
||||
---
|
||||
*Feature research for: local-first household chore management app (Android, Flutter)*
|
||||
*Researched: 2026-03-15*
|
||||
Reference in New Issue
Block a user