Obsidian_vault/30 - Projects/Tia.md
2026-06-07 15:00:01 +00:00

53 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
type: project
status: active
domain: [saas, ai, software, startup]
tech: [Next.js 15/16, NextAuth v5, PostgreSQL, pgvector, Drizzle, LiteLLM, Cloudflare R2, Razorpay, Resend, Tailwind v4, Dokploy, Hetzner]
commits: 406
url: https://tia.manohargupta.com
tagline: "A digital heirloom for your baby."
tags: [project, startup, flagship]
---
# 👶 Tia — A Digital Heirloom for Your Baby
> The flagship product, **named after the founders' daughter Tia**. Not a tracker — a private, lifelong archive of a child's earliest years: feeds, sleep, diapers, growth, vaccinations, milestones, photo **memories**, an **"Ask Tia"** AI, and shared family **circles**. Live at [tia.manohargupta.com](https://tia.manohargupta.com). → [[Tia - Origin Story]] · [[Tia - Positioning]]
## At a glance
- **406 commits** · production with paying tiers · solo-built (with [[Family Overview|Yashika]] on brand/content)
- **Positioning:** digital heirloom · privacy-as-preservation · India-native (IAP schedule, Telegram alerts)
- **Hosting:** Hetzner via **Dokploy** ([[Self-Hosting]])
## Stack
Next.js 15/16 (App Router, `output: standalone`) · **NextAuth v5** (Google OAuth + invite-only magic link) · PostgreSQL + **pgvector** · Drizzle ORM · **LiteLLM → MiniMax** · Cloudflare R2 · **Razorpay** (payments) · Resend (email) · Tailwind v4.
> Auth evolved across phases (DB-session `tia_session` cookie → NextAuth v5 + DB hardening). See [[Tia - Architecture]].
## Feature map
| Surface | What it does |
|---|---|
| **Home / Quick Log** | One-tap feeds/diapers/sleep; baby card (photo, age in y/m/d); AI card; vaccine reminders |
| **Activity** | Unified activity log |
| **Growth** | Growth charts vs **WHO standards** for the child's age |
| **Medical** | **IAP** vaccination schedule + reminders; pediatrician contact |
| **Memories** | Photo gallery — **photo → vision model → auto metadata** pipeline (R2 + `/api/img` proxy) |
| **🌟 Milestones** | Milestone achievements table + page |
| **Ask Tia (AI)** | LiteLLM→MiniMax assistant; parenting logistics, defers medical to pediatrician; new session per chat |
| **Circles** | Multi-tenant social — share with family, parents stay in control |
| **Mama's Affiliate** | `member_profiles`, recommended products, click tracking |
| **Admin** | Health, Errors, Audit, AI Usage observability + billing/subscriptions |
## Build history (sprints, from session logs)
- **G1 — Design System** (14 UI primitives: Button, Card, Modal, Sheet, Input, Select, EmptyState, ConfirmDialog, WashiTape, Badge, Avatar, Tabs, PageTransition…)
- **G2 — Memories Pipeline** (vision-powered metadata; "photo is mandatory, vision does the heavy lifting")
- **G5 — Age-Aware UX** (`useStageCheck`, time-of-day fast-log matrix, milestones)
- **G6 — Mama's Affiliate Page** (member_profiles, recommended_products, product_clicks)
- **Circles** (multi-tenant social — "the architectural event", split across 2 sprints)
- **Hardening H1H2** (auth foundation/password hash; non-superuser `tia_app` role + RLS + `app.current_family_id` session context)
- **PWA shell** (installable app) · **Marketing homepage + /about Letter**
## Business model
Free (1 baby, 1 GiB, 2 members) → **Pro** (2nd baby, more storage, 50 GB premium cap). Billing in **₹** via Razorpay; subscriptions, dunning, churn alerts, webhook health. `families.tier` + `isPaidFamily()` ([[Decision Log#TD-002]]).
## Knowledge base
[[Tia - Origin Story]] · [[Tia - Positioning]] · [[Tia - Brand & Copy]] · [[Tia - Architecture]] · [[Tia - Decisions]] · [[Tia - Roadmap]] · [[Tia - Open Questions]] · [[Quota Feature]]
## Related
[[MOC - Startup]] · [[Family Overview]] · [[Decision Log]] · [[Self-Hosting]] · [[Profile]]