Copper

copper.comcontributed by Samuele Ongaro

ALMOST

A weekend of work, and real gaps remain.

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.

Promptfree, for everyone, and the only version there is
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

PlanBilled monthlyBilled yearlyLast 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

$0

Self-hosted CRM with mail and calendar integration already built.

espocrm/espocrmfree · open source

Twenty

$0

An open-source CRM with a flexible data model.

twentyhq/twentyfree · 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

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

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

All 19 in CRM & sales

Not sending yet

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

Esc