# TaskPlanner

## What This Is

A personal web app for capturing tasks and thoughts with image attachments, accessible from any device. Replaces scattered paper notes and Samsung Notes by providing a single place to capture, organize, and find things — especially from laptop where Samsung Notes doesn't work.

## Core Value

Capture and find anything from any device — especially laptop. If cross-device capture with images doesn't work, nothing else matters.

## Current Milestone: v2.0 Production Operations

**Goal:** Establish production-grade CI/CD pipeline and observability stack for reliable operations.

**Target features:**
- Automated tests in Gitea Actions pipeline
- ArgoCD for GitOps deployment automation
- Prometheus metrics collection
- Grafana dashboards for visibility
- Loki log aggregation

## Requirements

### Validated (v1.0 - Shipped 2026-02-01)

- [x] Capture tasks and thoughts from any device via web browser
- [x] Distinguish between tasks (actionable) and thoughts (reference)
- [x] Attach images to entries (from file upload or camera)
- [x] Organize entries with tags (emergent, not predefined categories)
- [x] Find entries by tag, time, or search
- [x] Add notes to existing entries
- [x] Digitize paper notes by photographing and tagging them

### Active

(None — see v2 candidates in `.planning/milestones/v1.0-REQUIREMENTS.md`)

### Out of Scope

- Mobile native app — web-first, browser works on all devices
- Real-time collaboration — personal tool, single user
- Offline mode — online-first for v1
- OCR/text extraction from images — manual tagging is fine for now
- Calendar integration — focus on capture and retrieval first

## Context

**Current pain:**
- Paper notes scattered, hard to find
- Samsung Notes works on phone/tablet but no web access for laptop
- Finding things means manually scanning through piles

**User profile:**
- Senior software engineer, DIY mindset
- Comfortable with self-hosting and container deployments

**Learning goals:**
- Vibe coding (AI-assisted development)
- Container deployments

This project solves a real problem while serving as a vehicle for learning new approaches.

## Constraints

- **Deployment**: Container-based — user wants to learn/practice container deployments
- **Platform**: Web app — must work in any modern browser
- **User**: Single user (personal tool) — no multi-tenancy needed for v1

## Key Decisions

| Decision | Rationale | Outcome |
|----------|-----------|---------|
| Web app over native | Works on all devices including laptop without app stores | ✓ Validated |
| Tags over folders | Flexible organization, items can have multiple tags | ✓ Validated |
| Images from day one | Core need is digitizing paper notes | ✓ Validated |
| Tailwind CSS v4 | Modern utility-first CSS with Vite plugin | ✓ Validated |
| SQLite with WAL mode | Simple, fast, concurrent reads for single-user | ✓ Validated |
| Repository pattern | Clean data access, testable, singleton instances | ✓ Validated |
| adapter-node for Docker | Server-side rendering with env prefix support | ✓ Validated |

---
*Last updated: 2026-02-03 after v2.0 milestone started*
