29 lines
1 KiB
Markdown
29 lines
1 KiB
Markdown
---
|
|
type: project-doc
|
|
parent: "[[Tia]]"
|
|
status: verified
|
|
branch: feature/quota-and-member-limits
|
|
tags: [tia, feature, billing]
|
|
---
|
|
# 📦 Tia — Storage Quota & Member Limits
|
|
> Free-tier guardrails before beta. Branch `feature/quota-and-member-limits` (NOT merged to main as of 2026-05-27).
|
|
|
|
## Limits
|
|
- **1 GiB** storage / family · **2 members** / family (free tier)
|
|
|
|
## Key files
|
|
- `src/lib/quota.ts` — enforcement (pure fns + queries)
|
|
- `api/upload`, `api/memories/[id]/confirm`, `api/invites`, `api/storage-usage`
|
|
- `components/StorageMeter.tsx` · `__tests__/quota.test.ts` (44 tests pass)
|
|
- `drizzle/0007_subscription_status.sql`
|
|
|
|
## Design calls
|
|
- Usage **derived** (SUM), never accumulated ([[Decision Log#TD-001]])
|
|
- `tier` is the plan indicator; `isPaidFamily(tier)` abstraction ([[Decision Log#TD-002]])
|
|
- Downgrade = **freeze** (keep members, block new invites)
|
|
|
|
## Status
|
|
- [ ] **Apply migration 0007 on staging before merge.** Do not push to main yet.
|
|
|
|
## Related
|
|
[[Tia]] · [[Tia - Decisions]] · [[Tia - Roadmap]]
|