docs: complete project research

This commit is contained in:
2026-03-15 18:37:00 +01:00
parent 1a4223aff5
commit aa4c2ab817
5 changed files with 1287 additions and 0 deletions

View 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*