Create an internal CRM for a small agency

Clients, contacts, deal stages, tasks and a dashboard that a five-person team can actually run their week from.

Build an internal CRM for a 5-person creative agency. Optimise for daily use, not for a demo.

DATA MODEL
- Client: name, industry, website, status (prospect | active | dormant), owner, created date.
- Contact: name, role, email, phone, client (relation).
- Deal: title, client (relation), value, stage (new | qualified | proposal | won | lost), expected close date, owner.
- Task: title, due date, assignee, done flag, optional deal relation.

SCREENS
1. Dashboard: open pipeline value, deals by stage, tasks due this week, 5 most recent activities.
2. Clients: searchable table with status filter, row click opens a detail page with contacts, deals and tasks.
3. Pipeline: kanban board by deal stage with drag and drop, value total per column.
4. Tasks: list grouped by due date with an inline "mark done" checkbox.

RULES
- Every table has search, sort and an empty state that explains what to do next.
- Deleting anything asks for confirmation.
- Seed the app with 12 realistic clients, 20 contacts, 15 deals and 18 tasks so every screen looks alive.

ACCEPTANCE CRITERIA
- I can create, edit and delete records on all four entities.
- Dashboard numbers recalculate from real records, never hardcoded.
- Mobile layout stays usable at 360px.