The data model is the easy part: people, companies and deals as typed tables, objects of your own, lists that work as pipelines, and a record page with notes, tasks and a timeline. An agent builds that in a sitting, and filling contacts from your mailbox over IMAP takes a few more hours. The weekend goes into what Attio does in the background, and some of it stays out of reach: calendar sync, company and people enrichment, relationship-strength scores and workflows. For a small team sharing one CRM, Attio's free plan or a self-hosted Twenty is a shorter way out than building.
Before you buildIf you work alone or with two others, Attio Free (3 seats, 50,000 records) may already cover you; it keeps email sync and enrichment.
Build me a personal relationship CRM to replace Attio. Requirements: - Node.js 22 + TypeScript: a Hono API and a React front end built with Vite. `npm start` serves everything on http://localhost:4800. - Storage: better-sqlite3 in ./data/crm.db. Built-in objects People, Companies and Deals, plus objects I define. Attribute types: text, number, currency, date, select, multi-select, email, URL, checkbox, rating, and a reference to a record of another object. - A table view per object with inline editing, sort, filter and saved views. - Lists: add records to a list that has its own extra attributes (stage, owner, amount) and show it as a table or as a kanban grouped by a select attribute. - Record page: attributes on one side, a timeline on the other with Markdown notes, tasks with due dates and logged emails. - Mailbox sync: IMAP host, user and app password from .env. Fetch headers only (from, to, cc, date, subject) for the last 90 days, then every 15 minutes. Create People by address, link them to a Company by email domain, and keep "last contacted" and an interaction count. Skip noreply and bulk senders. Never store message bodies. - CSV import with a column-mapping preview, and CSV export of any view. - Single user. No accounts, no telemetry, local-first. - Out of scope: calendar sync, enrichment from outside data, workflows and sending email. - README: setup, the Gmail app-password steps, and where the database lives.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Attio.
Add an Attio importer to the CRM in this folder. Requirements: - A command that takes the zip from Attio's Export Workspace data. - For each object CSV, create the object and its attributes, guessing types from the values; show the plan and ask before writing anything. - Import records, then lists and list entries, then notes, tasks and comments, resolving references between records by their Attio IDs. - Columns that can't be mapped go into a JSON field, listed at the end. - Running it twice must not duplicate anything. - Update the README with the export steps.
Add calendar meetings to the CRM in this folder. Requirements: - Read one or more iCal URLs from .env (for Google: the secret address in iCal format from the calendar's settings) and refresh every 30 minutes with node-ical. - Match attendees to People by email; create People for unknown external attendees. - Show past and upcoming meetings on each record's timeline and keep "last met" and "next meeting" attributes. - Ignore events with no external attendees. - Update the README with how to find the secret iCal address.
Add website lookups to the CRM in this folder. Requirements: - For a Company with a domain, fetch its homepage once and store the page title, meta description, favicon, and links to LinkedIn and X if present. - Run on demand from the record page, and for new companies in the background, at most one request per second. - Respect robots.txt and a 10-second timeout; store failures and move on. - Out of scope: paid data providers and scraping LinkedIn. - Update the README.
Add workflows to the CRM in this folder. Requirements: - Triggers: record created, attribute changed to a value, list entry moved to a stage, and no interaction for N days. - Actions: create a task, set an attribute, add to a list, POST JSON to a webhook URL. - A page to create, enable and disable rules, with a log of the last 200 runs. - Out of scope: sending email and AI steps. - Update the README.
Startups pick Attio because it bends to their data instead of forcing a sales template, and because connecting Gmail or Outlook fills the CRM without any typing. Teams then stay for the shared picture of every relationship and the workflows built on top of it.
Estimate · Runs on your machine with no paid services. The build is token usage on your agent plan; a VPS for access from your phone would add a few dollars a month.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | Up to 3 seats, 3 objects, 50,000 records, 3 reports, 200 emails a month, 50 GB of files; 100 credits per seat and 250 per workspace each month. |
| Plus | $44 | $35 | Up to 10 seats, 5 objects, 250,000 records, 15 reports, 1,000 emails a month, private lists; 500 credits per seat and 1,500 per workspace each month. |
| Pro | $99 | $79 | Unlimited seats, 12 objects, 1,000,000 records, 100 reports, unlimited email, 2 synced mailboxes per user, sequences and call intelligence; 1,000 credits per seat and 10,000 per workspace. |
| Enterprise | custom | — | Unlimited objects and teams, SSO, SCIM, advanced permissions. |
Free covers up to 3 seats, 3 objects and 50,000 records, with 200 sent emails a month.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Automatic enrichment of companies and people (logo, funding, headcount), Calendar sync and meeting history on every record.
About $44 a month on the Plus plan per seat, $528 a year (checked 2026-10-13).
Automatic enrichment of companies and people (logo, funding, headcount); Calendar sync and meeting history on every record; Connection strength: who on the team knows whom, and how well; Workflows, sequences and the AI features such as Ask Attio and call notes; A shared workspace with permissions, and the integrations catalog. If any of those matter to you, keep paying.
Yes: Twenty (open source), Frappe CRM (open source), EspoCRM (open source).