Skip to content
/ tada Public

Ta-Da! An opinionated activity timer and lifelogger that celebrates accomplishments.

License

Notifications You must be signed in to change notification settings

InfantLab/tada

Repository files navigation

TA-DA

⚡ Ta-da!

Track Activities, Discover Achievements — A personal lifelogger for meditation, rhythms, dreams, and accomplishments.

Ta-Da! is an open-source Progressive Web App (PWA) that helps you notice and celebrate your life. Rather than prescribing what you should do, Ta-Da! helps you observe what you actually did — swapping the anxiety-inducing todo list into a celebration of accomplishment.

"We don't want to tell people what they should be doing. We want to help them notice what they actually did, and help them feel good about it."

Philosophy

Ta-Da! inverts the traditional productivity mindset:

  • Noticing, not tracking — Observe your life without judgment
  • Celebration, not obligation — Turn todos into "Ta-Da!"s
  • Data ownership — Your life data belongs to you, always exportable
  • Offline-first — Works without internet, syncs when convenient
  • Simple by design — Feature-complete, not feature-bloated

Read more: design/philosophy.md

Features (v0.2.0)

  • 🌿 Graceful Rhythms — Track natural patterns with multiple chain types (daily, weekly, monthly targets)
  • 🧘 Meditation Timer — Unlimited or fixed modes with interval bells, presets, and warm-up countdown
  • ⚡ Ta-Da! Accomplishments — Celebrate wins with confetti, sound effects, and streaks
  • 🌙 Dream Journal — Rich dream entries with mood and themes
  • 📝 Quick Notes — Capture thoughts, gratitude, reflections
  • 📊 Timeline Views — Day/Week/Month/Year zoom with infinite scroll
  • 📥 CSV Import — Import from Insight Timer and other apps with custom recipes
  • 🎨 Customization — Custom emojis, timer presets, hide categories
  • 📱 PWA — Installable, works offline
  • 🔒 Self-Hosted — Your data stays yours, full JSON export

Tech Stack

Why these choices? See design/decisions.md

Quick Start

For Users

Docker (Recommended):

docker compose up -d

Visit http://localhost:3000, create an account, and start logging!

Data Location: ./app/data/db.sqlite (mount as volume for persistence)

For Developers

git clone https://github.com/InfantLab/Ta-Da!.git
cd Ta-Da!/app
bun install
bun run dev

Development server runs on http://localhost:3000 with hot reload.

See docs/DEVELOPER_GUIDE.md for complete setup and docs/PROJECT_STRUCTURE.md for architecture overview.

Entry Ontology

Ta-Da! uses a flexible three-level classification system for all life activities:

Type (behavior)  →  Category (domain)  →  Subcategory (specific)
    ↓                     ↓                        ↓
  "timed"          "mindfulness"              "sitting"
  "Ta-Da!"          "accomplishment"              "work"
  "journal"          "journal"                 "dream"

Every entry can have a custom emoji, with sensible defaults based on category and subcategory. Seven built-in categories cover most life activities: mindfulness, movement, creative, learning, journal, accomplishment, and events.

Key principle: Types define behavior (how it's recorded), categories enable grouping (life domains), subcategories provide specificity. All are open strings — add your own without touching code.

Read more: design/ontology.md

Architecture

Ta-Da! uses a unified Entry model where everything is an entry. No separate tables for meditations, dreams, Ta-Da!s — just one flexible entries table with type, category, and subcategory fields. Rhythms are aggregation queries over entries, not separate data.

Why? Simplicity. One data model, one API, infinite flexibility. Add new activity types without schema migrations. Your life is different from mine.

See docs/PROJECT_STRUCTURE.md for detailed project layout and design/SDR.md for complete data model specification.

See docs/PROJECT_STRUCTURE.md for detailed project layout and design/SDR.md for complete data model specification.

Development

Commands:

bun run dev          # Start dev server (:3000)
bun run lint:fix     # Auto-fix code style
bun run typecheck    # Type check
bun run db:generate  # Generate migrations
bun run db:migrate   # Apply migrations
bun run db:studio    # Database UI (:4983)

CI/CD:

  • ✅ ESLint + TypeScript checks on every push
  • ✅ Automated tests (when written)
  • ✅ Docker image build and push to GHCR on merge to main

See docs/DEVELOPER_GUIDE.md for full development workflow.

See docs/DEVELOPER_GUIDE.md for full development workflow.

Roadmap

Current: v0.2.0 (Graceful Rhythms) ✅ — Shipped January 2026!

Next: v0.3.0 (Q2 2026) — Voice input, photo attachments, magic features

Future: v0.4.0+ — Cloud service (tada.living), Obsidian sync, AI insights

See design/roadmap.md and CHANGELOG.md for details.

Resources

Contributing

We welcome contributions! Quick checklist:

  1. ✅ Read design/philosophy.md — Understand the "why"
  2. ✅ Check design/roadmap.md — See what's planned
  3. ✅ Follow conventional commits — feat:, fix:, docs:, etc.
  4. ✅ Update docs if changing behavior
  5. ✅ Open an issue first for major changes

See docs/DEVELOPER_GUIDE.md for detailed contribution guidelines.

License

AGPL-3.0 — Free to use, modify, and self-host. Contributions welcome!


Ta-Da! is an anagram of "data" — your life's data belongs to you.

About

Ta-Da! An opinionated activity timer and lifelogger that celebrates accomplishments.

Resources

License

Stars

Watchers

Forks

Packages

No packages published