A CRM that lives inside Google Workspace: it works from a Gmail sidebar and keeps records in step with mail, calendar and contacts without a separate app to open.
Build me a CRM that lives in my inbox, replacing Copper — and know why this is ALMOST. The records are easy. The reason people adopt it is **that it is inside Gmail**, so the CRM is where the work already happens. Reproducing that means a browser extension or a Workspace add-on, maintained against an interface that changes without warning. That maintenance is the recurring cost and the reason for the verdict. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode, with FTS5 - A browser extension, Manifest V3, injecting a sidebar — or a Workspace add-on, which is more stable and more restricted - Caddy in front THE DATA MODEL - people: id, name, email, phone, title, company_id, owner_id, last_contacted_at, notes_md, created_at - companies: id, name, domain, industry, size, owner_id - opportunities: id, company_id, person_id, name, stage, amount_cents, currency, expected_close_on, closed_at, outcome, lost_reason, owner_id - stage_history: id, opportunity_id, from_stage, to_stage, at, actor_id — append-only, and where every honest metric comes from. It cannot be reconstructed later - activities: id, kind, subject, snippet, occurred_at, person_id, company_id, opportunity_id, source, external_id — mail, meeting, call, note - tasks: id, title, due_at, completed_at, assignee_id, related_kind, related_id - Every identity keyed on email address and domain, because that is what a mailbox gives you THE SIDEBAR, WHICH IS THE PRODUCT - Open a message and see who this is: their record, their company, the open opportunity, the last few activities, and the tasks due - Log the message with one click, or automatically for known contacts - Create a person, a company or an opportunity without leaving the message - Add a note and a follow-up task from the same panel - The extension talks only to your own server, with a token, and requests permission for one host rather than every site - The interface it attaches to will change. Write the injection as one small adapter with a saved page fixture and a test, so a break is a failing test rather than a mystery. Say in the README that this is the ongoing cost SYNC, SO NOBODY TYPES ANYTHING - Read-only mailbox sync over the provider's API or IMAP: one activity per message with a known counterpart — the address, direction, subject, timestamp and a short snippet. Never the body - Calendar sync: one activity per meeting with its attendees - Contacts synced two-way if you want it, one-way if you want it simpler - Incremental with a cursor, idempotent by external identifier - The last-contacted date is derived and never typed. A CRM whose dates are maintained by hand is six weeks out of date within six weeks - Say plainly in the README exactly what a mailbox sync stores. That restraint is what makes it usable THE PIPELINE - Stages defined by you, a board view, and drag to move — which writes a history row - Conversion between stages and time in each stage, computed from that history - Deals not moved in longer than the median stage duration, ranked. That list is worth more than any forecast - A required lost reason on a lost deal, which is the only way anybody learns from losing THE REST - Views as saved filters over any object, with columns you choose - Deduplication by exact email then by name similarity within a domain, reviewed by hand, merges reversible. Never automatic - FTS5 across people, companies, notes and activity subjects - Export everything as CSV and JSON in one command, including stage history OPERATIONS - .env: DATABASE_PATH, BASE_URL, SESSION_SECRET, ENCRYPTION_KEY, HASH_SALT, provider credentials - Migrations on boot, each once; credentials encrypted at rest - Nightly backup off the machine, restore script - Health endpoint reporting the age of the last mail and calendar sync WHAT MATTERS MOST The sidebar adapter and stage history. The first is why anybody uses it and the reason it needs maintaining; the second is the only thing that will ever tell you something you did not already know.
What you lose
- A Gmail sidebar where the CRM is where the work already happens, which is most of why people adopt it
- Two-way sync with Google contacts and calendar, maintained as those APIs change
- Automatic logging of mail against the right record with no one pressing a button
If you would rather not build
- Streak, if the Gmail sidebar is the whole point
What it costs
read from their page 15 Aug 2026
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $29/mo | — | 15 Aug 2026 |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
EspoCRM
$0Self-hosted CRM with mail and calendar integration already built.
espocrm/espocrmfree · open source
Why this verdict
our own opinion · changed only by a person
52/100
Verdict kinda at 52. The CRM is easy; the Gmail add-on and a poller that survives quota limits are the weekend.
History
tracked since 10 Aug 2026 · nothing is ever overwritten
Questions about Copper
answered from the record above
Is Copper free?
No — the plan we track is $29 a month. Starter at $29 per user per month billed monthly, around $23 annually.
Can you replace Copper by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 52 out of 100, build time a weekend. Read what you lose before you decide.
How much does Copper cost?
$29 a month on Starter — $348 a year. Recorded 10 Aug 2026.
What do you lose by replacing Copper?
A Gmail sidebar where the CRM is where the work already happens, which is most of why people adopt it; Two-way sync with Google contacts and calendar, maintained as those APIs change; Automatic logging of mail against the right record with no one pressing a button. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Copper?
Yes: EspoCRM, Twenty. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

