A relationship CRM with an AI assistant
The whole product · idea, code, localisation, deploy
Everything you know about a person, in one place. A brief assembled from your own notes arrives before a meeting, and reminders surface on their own when you haven't spoken to someone in a while.

How it worked before
What you knew about a person lived in your head and in old chats. Before a meeting you scrolled back to remember what was agreed last year. Someone who mattered would quietly drop out of sight for six months.
What made it hard
Personal data about people, two locales, and reminders that have to arrive on time and exactly once. Plus an optional Telegram: the product must work fully when the bot is not connected at all.
Engineering decisions
- 01
Translation parity is enforced by a test
The keys of both locales are compared automatically: you cannot ship a screen where half the strings were left untranslated.
- 02
Every inbound entry is signed
The webhook checks a secret header, the reminder cron endpoint checks a token. Without a token the whole bot path switches off cleanly instead of failing.
- 03
Two database connection strings
A pooler for the runtime, a direct connection for migrations — otherwise migrations on serverless will one day stall at the worst possible moment.
Where it stands
A contact is no longer lost simply because you forgot about them — the system remembers first.
- A multi-tenant restaurant platform: app, back office and three workers45,000
- A travel agency: its own catalogue, booking in three steps27,000
- Water delivery, end to end22,100
- A clinic: 52 pages, an assistant and a smile simulator14,500
- An outreach automation engine11,000
- A relationship CRM with an AI assistant10,400
- Direct-message sales run by an AI4,800
- Daily quests with an AI game master3,700
- A catalogue that updates itself3,300
- A platform for authored training programmes3,300
- A funnel that qualifies the lead itself2,900