The brief
A B2B agency was paying for six tools that did not talk to each other: one for sequences, one for LinkedIn, a spreadsheet as a CRM, an inbox where replies quietly died. The brief was to collapse that into a single system that could be operated by one person.
What we built
A multi-tenant Next.js platform on Postgres: contacts, companies, pipelines and threads in one CRM, with sending infrastructure attached directly to it. Sequences are traffic-driven rather than fired blindly on a timer, so sending volume follows what the inbox can actually handle.
Replies are matched back to their thread and read by an AI layer that drafts or sends a response — and hands over to a human the moment a conversation needs one, then stays out of the way for the rest of that thread.
A browser extension covers the channels that have no clean API, queuing LinkedIn and WhatsApp actions as tasks the system processes on a schedule.
- Multi-tenant CRM: contacts, companies, pipelines, threads
- Email sending infrastructure with traffic-driven pacing
- Reply matching, AI drafting and clean human takeover
- Unified LinkedIn + WhatsApp browser extension with a task queue
- Scheduled workers for sequences, retries and processing
- Analytics, weekly reports and a customer-facing dashboard
- Subscription billing and a full marketing site
Why it is an automation project, not a CRM project
The interesting part is not the database. It is that a workflow which used to consume a person for several hours a day now runs on a schedule, escalates the exceptions, and reports on itself on Mondays.
Stack
- Next.js
- TypeScript
- Supabase
- Postgres
- Chrome extension
- Cron workers
- AI APIs
- Stripe


