Skip to content

← All posts

founder, cap, philosophy

Why we capped FlatCRM at 500 contacts

FlatCRM stops at 500 contacts on Solo. That's a feature, not a budget shortcut. Here is what the number is, what it isn't, and what we expect you to do when you hit it.

Every CRM I'd used before building this one ended up the same way. Three years in, four thousand contacts. Maybe sixty of them mattered. The rest were trade-show scans, cold leads from a list-buy somebody got excited about in 2022, partners who'd quietly gone bankrupt, ex-clients who'd stopped replying, name fragments from a Mailchimp import where I'd forgotten what list it was. Every one of them sat in the contact total. Every one of them increased my next bill.

That last part is the one I want to talk about.

The cap is not a budget shortcut

Plenty of small CRMs cap contacts because the founder hasn't paid for a bigger database tier yet. That's fine — most software starts that way — but it's not what's going on here. We could store 50,000 contacts per workspace on the same Postgres instance for the same flat fee. Storage is genuinely cheap.

The cap is a price tag on something else. It's a price tag on what your contact list does to your attention.

A 4,000-row contact list isn't a customer database. It's a graveyard with search. You scroll past dead names every time you open the app. You skim a "Recently updated" view and the names you actually need are buried six pages down. You build new filters and saved views and tags and segments to try to hide the rot, and the rot wins, and the next CRM gets the same treatment two years later.

Five hundred is the number where a contact list still feels like a list of people. You can scroll it. You can recognize names without squinting at company columns. When somebody emails in, you know — without filters — whether they're already in there.

The question we were trying to answer

The shape of the design question is "what is the smallest CRM that still feels like a CRM."

That meant: pipeline visible, tasks pinned to people, email threads attached to the right contact, notes you don't lose. Solo + small team only. No reporting suite. No automation builder. No campaign module. No five-stage approval workflow on a deal.

If you build all of that and then try to be small, you can't. Bloat gets baked in. You ship a setting-toggle flag for "starter mode" and the starter mode is the same product with hidden buttons.

So we started from the other side. Smallest thing that works, written down honestly, and a cap on the only number that lets the smallest thing stay small. The number is 500.

What 500 contacts actually looks like

It's the number that maps to "every person you have a real relationship with this year." If you're a one-person consultancy:

  • 30 active clients
  • 80 past clients
  • 50 warm leads currently in motion
  • 60 partners, vendors, accountants, lawyers, contractors
  • 200 people you've had a coffee with and might mail in February
  • 80 buffer

That's 500. Not coincidentally, that's also the size where exporting to a spreadsheet still produces something a human can read.

If you're two people running an agency or a small practice, you double those numbers and end up north of 500. That's exactly when you should be on Pair, where the cap is 2,000 — same shape, twice the count. Past 2,000, you're not in our shape anymore, and we'll talk about that in a minute.

What it isn't

The cap is the wrong tool for several jobs and we don't pretend otherwise.

It's wrong if you're doing outbound prospecting. The whole point of an outbound list is volume. You're going to import 5,000 leads from Apollo or LinkedIn Sales Navigator, blast them through a sequence engine, and care about the 3% who reply. FlatCRM will refuse the import past 500. Apollo, Instantly, or HubSpot Sales Hub is the right tool for that work — Pipedrive too, if you want a cheaper option. Don't bend FlatCRM into an outbound shape. It will fight you the entire way.

It's wrong if you're tracking newsletter subscribers. Email list software exists. Use Beehiiv, Mailchimp, ConvertKit, Substack — pick whichever maps to your sending pattern. Subscribers are not contacts in the CRM sense. They're recipients. They live in a different shape of database, and the right tool segments them by open rate and tag and tenure, not by deal stage.

It's wrong if you're a recruiter. A pipeline of 500 candidates isn't a year of work for an in-house recruiter, let alone an agency. Look at Recruitee, Workable, Greenhouse, Hire3 (yes, our other small product, less crowded shape). FlatCRM doesn't model candidates well — there's no application status, no resume parser, no interview kit, no offer-stage workflow.

It's wrong if you have a sales team of more than two people. Pair caps you at 2 seats deliberately. Three salespeople need shared inboxes, lead routing, territory rules, manager rollups, deal-handoff queues, forecast confidence scores. Pipedrive does this for around $24/seat/month with the team plan; HubSpot Sales Hub Pro does it for $90/seat/month with more polish and more lock-in. Both are honestly built for that shape. We're not.

The cap as feedback

When you hit 500 — actually hit it, not "approaching" — one of three things has happened.

One. You've been adding contacts without thinking about whether they belong in your CRM. Most cap-hits we'll see in the first year are this one. The fix is the deletion habit. Sort by last_contacted_at ascending. Anyone you haven't talked to in 18 months and don't have a clear "I will reach out about X" reason to keep — delete them. They're not gone-gone; you can re-add them later. They're just not in the active list anymore.

Two. You've outgrown Solo. Your business genuinely has more than 500 active relationships. Pair gives you 2,000 plus a second seat. $39/month flat. No metering past that.

Three. You've outgrown FlatCRM. You're at 1,800 contacts on Pair, you can feel another year's growth coming, and the right move is to leave. We try to make that move cheap. Settings → Export everything ships you a .zip with five RFC 4180 CSVs and a README that maps every column to Pipedrive's and Attio's import format. Estimated total cost of leaving: 20 minutes and zero migration consultancy fees.

I'd rather lose you cleanly at month 36 than keep you grumbling for another two years on a tool that's wrong for you.

What this cap costs us

The cap costs us money. We're aware of this. Every CRM that meters per-contact or per-seat or per-record makes more revenue per customer over time. We make $19/month from a Solo customer who has 60 contacts and a Solo customer who has 480 contacts, no different. The customer with 480 contacts costs us slightly more in storage. Not enough to matter at our scale, but the curve is real.

What we get back: every customer's incentive aligns with ours. Their goal is to stay under 500 because the product is better there. Our goal is to keep their list under 500 because that's where retention lives. Bloated CRM lists churn — it's not a coincidence that the average HubSpot customer doesn't last five years.

A clean small list — the kind a human actually opens on a Monday morning — that's the kind of thing you keep paying for.

The honest version

The cap exists because we tried to build a CRM that doesn't lie about how busy a small business is. A small business is small. Five hundred relationships is what small actually means. Software that lets that number quietly drift to four thousand is software that's pretending the business is something it isn't.

If 500 is too small for you today, you have either grown out of the shape we're built for, or you have an old list that's outliving its usefulness. We'll tell you which one we think it is, when you hit it. Then we'll show you the exit, in either direction.

That's the whole pitch.

— FlatCRM

Solo is $19/month, 1 seat, 500 contacts. Pair is $39/month, 2 seats, 2,000 contacts. Both flat, both no-trick. Start the trial or read what we deliberately don't build.

The CRM that won’t outgrow you.

Flat $19/mo. 500 contacts. CSV export is one button.