| Backend | - FastAPI on Python 3.12, with async SQLAlchemy 2 and Alembic migrations (5 so far)
- PostgreSQL for contacts, notes, groups, and the timeline cache; search is substring matching, not Postgres full-text
- Valkey for caching and the job queue, with Celery workers and a Celery Beat schedule
- REST under /api/v1 and a WebSocket that pushes changes to the open app
|
|---|
| Frontend | - React 19, Vite, and TypeScript, with Zustand for state
- The Renkara design system's tokens and Tailwind, with Plus Jakarta Sans and Fira Code, and icons from Lucide
- D3 for the network graph and Recharts for dashboard charts
- Light and dark themes, and a menu in place of the sidebar on narrow screens
|
|---|
| Data and privacy | - Eleven sensitive fields (political views, religion, drinking, smoking, and health notes) are stored encrypted with AES-256-GCM
- Contacts are soft-deleted and can be restored through the API
- Every record belongs to one user; the fleet endpoints act for the user a service token names
|
|---|
| AI | - Conversation starters from Mercury 3 (Inception Labs), asked for on demand
- Meeting prep briefings from Claude Sonnet 5.5 (Anthropic), through the API and agent tools
- Neither runs without a model key, and no scheduled AI job is switched on yet
|
|---|
| Agents and API | - 41 agent tools over stdio, relayed through Roost: 29 for contacts, notes, groups, dashboards, and import and export, and 12 for creator and outreach review
- Fleet endpoints for autocomplete, lookup by email or phone, and a contact card, behind service tokens
- vCard and CSV import and export
|
|---|
| Quality | - 719 backend test functions and 331 frontend test cases, counted by search on 10/29/2026
- An automated axe-core scan of the app and six pages (see Accessibility)
|
|---|
| Stands in for | Harvey Mackay's paper Customer Profile, A personal CRM |
|---|