# Best open source CRM: 8 self-hosted options compared

Eight open source CRMs compared on license, latest release, self-hosting docs and API, with GitHub facts read on 2026-10-11 and a looot data add-on.

## Summary

There is no single best open source CRM, so this post ranks eight of them with a README checklist, not a quality score. Twenty, EspoCRM, Frappe CRM and five others get their license, latest release and self-hosting notes, all read from GitHub on 2026-10-11. looot publishes this post and a CRM template of its own, which is kept out of the ranking.

The ranking says how well each project documents itself. It says nothing about which one will fit your sales process.

## Open source CRM: the short answer

An open source CRM is a customer relationship manager whose source code you can read, host yourself and change. Most of the projects here are licensed AGPL-3.0 or MIT. Two return no license identifier from the GitHub API, and one of those mixes open and commercial files, so check the license before you build on it.

- **Relaticle**, for teams that want an MCP server and a REST API on a self-hosted CRM.
- **BottleCRM**, for an MIT-licensed CRM with a documented REST API and a mobile app.
- **EspoCRM**, for a long-running PHP CRM with a REST API and PostgreSQL support.
- **Frappe CRM**, for teams already on the Frappe framework or happy to run it.
- **Twenty**, for developers who want to define objects and extensions as code.
- **Krayin**, for a Laravel and Vue CRM with custom attributes.
- **SuiteCRM**, for a mature PHP CRM with a large community.
- **Fat Free CRM**, for a Ruby on Rails CRM with a short feature list.

| Project | License (GitHub API) | Stargazers | Language | Latest release | Last push |
|---|---|---|---|---|---|
| Relaticle | AGPL-3.0 | 1,760 | PHP | v3.6.3, 2026-10-09 | 2026-10-09 |
| BottleCRM | MIT | 2,447 | Python | v1.14.5, 2026-10-02 | 2026-10-02 |
| EspoCRM | AGPL-3.0 | 3,473 | PHP | 10.0.9, 2026-09-29 | 2026-10-09 |
| Frappe CRM | AGPL-3.0 | 3,772 | Vue | v1.87.0, 2026-10-09 | 2026-10-11 |
| Twenty | NOASSERTION | 58,194 | TypeScript | twenty/v2.45.0, 2026-10-05 | 2026-10-11 |
| Krayin | MIT | 23,997 | PHP | v2.2.6, 2026-09-10 | 2026-10-09 |
| SuiteCRM | AGPL-3.0 | 5,792 | PHP | v7.15.2, 2026-07-31 | 2026-10-07 |
| Fat Free CRM | NOASSERTION | 3,633 | Ruby | v0.28.0, 2026-04-19 | 2026-09-28 |

Every cell comes from the GitHub repository and latest-release endpoints, read on 2026-10-11. Stargazer counts are a popularity signal only. They move often and they did not decide the order.

Image: The Twenty repository page on GitHub with its description, license badge and file list

## How we ranked these CRMs

We searched GitHub for "open source crm", "self-hosted crm" and "crm" sorted by stargazer count, then kept a project only if it passed three filters. It had to be a CRM for customer and deal records, not an ERP or a personal address book. It had to have a push in the last 12 months. It had to carry a license that lets you host it yourself. Projects whose stargazer counts looked out of line with their age and documentation were left out, because we could not tell what the number measured.

Each remaining project scored one point for each of four README checks, read on 2026-10-11.

| Check | What earns the point |
|---|---|
| Self-hosting | The README links install or self-hosting instructions |
| Integration path | The README names an API, an MCP server or an SDK for connecting other software |
| License identifier | The GitHub API returns an SPDX id, not NOASSERTION |
| Recent release | The latest release was published after 2026-07-13, the 90 days before the read date |

Ties go to the more recent release. That is the whole rule. It rewards a project that explains itself, and it punishes Twenty and Fat Free CRM for a license field the API cannot classify. It does not measure how good the product is. We also did not install or run any of them for this post.

## 1. Relaticle, best for agent access

Image: Open Source CRM with Relaticle

Relaticle describes itself as a self-hosted CRM that AI agents can work in, with an MCP server and a REST API that its README says offer full read and write access, schema access and pipeline analysis. It runs on PHP and PostgreSQL, and the README links a self-hosting guide for Docker and manual deployment. It is the youngest repository here, created 2024-09-25. Score 4 of 4.

**Best for**

- Teams that want an agent to read and update CRM records through MCP.
- Developers comfortable with PHP 8.5 and PostgreSQL 17, the versions the README lists.

**Limits**

- It needs recent runtimes, so an older server will not do.

Source: [Relaticle README](https://github.com/Relaticle/relaticle#readme).

## 2. BottleCRM, best for an MIT license with an API

Image: Open Source CRM with BottleCRM

BottleCRM, published as Django-CRM/Django-CRM, is a multi-tenant CRM on Django REST Framework with a SvelteKit web app and a Flutter mobile app. Its README covers leads, accounts, contacts, opportunities, tickets, tasks and invoices, and says PostgreSQL row-level security separates each organization's data. It ships an OpenAPI schema and describes personal access tokens for agents. Score 4 of 4.

**Best for**

- A small team that wants MIT terms and an API on day one.
- A builder who plans to run several tenants from one deployment.

**Limits**

- The README links a hosted product and a pricing page, so read the self-hosting docs to see what the free code includes.

Source: [BottleCRM README](https://github.com/Django-CRM/Django-CRM#readme).

## 3. EspoCRM, best for a REST API on a mature PHP base

Image: Open Source CRM with EspoCRM

EspoCRM's README calls it a free, open source CRM platform for leads, contacts, opportunities, campaigns and cases. It describes a single-page frontend over a REST API written in PHP, and lists MySQL, MariaDB and PostgreSQL as databases. Install paths include a script, Docker and Traefik. The repository dates from 2014-09-25 and the latest release is dated 2026-09-29. Score 4 of 4.

**Best for**

- Teams that want to add entities and fields without writing a new application.
- An admin who wants a documented Docker install.

**Limits**

- AGPL-3.0 applies to the code.
- The README points to a separate website for the download, so read the release notes before choosing a version.

Source: [EspoCRM README](https://github.com/espocrm/espocrm#readme).

## 4. Frappe CRM, best if you already run Frappe

Image: Open Source CRM with Frappe CRM

Frappe CRM's README calls it a simple, open source CRM for sales teams with unlimited users. It lists a lead and deal page that gathers activities, comments, notes and tasks, a Kanban view and custom views. It documents three ways to run it: an easy-install script, a bench setup and Docker. The README does not mention an API. Score 3 of 4.

**Best for**

- Teams already running the Frappe framework or ERPNext.
- Sales teams that want a Kanban board and custom list views.

**Limits**

- It sits on the Frappe stack, so you maintain bench or its Docker setup.
- AGPL-3.0 applies.

Source: [Frappe CRM README](https://github.com/frappe/crm#readme).

## 5. Twenty, best for building a CRM as code

Image: Open Source CRM with Twenty

Twenty's README says it gives technical teams the building blocks for a custom CRM and that you build, ship and version it like the rest of your stack. It shows a TypeScript SDK where you define objects, fields and views in code, and links a Docker Compose guide for self-hosting. The GitHub API returns NOASSERTION because the LICENSE file mixes terms. Score 3 of 4.

The LICENSE file says most of the project is AGPLv3, some files marked as enterprise carry a commercial license, and some packages are MIT, including the SDK and the apps under `packages/twenty-apps`. Read it before you ship a fork.

**Best for**

- Developers who want to define the data model and extensions in TypeScript.
- Teams that want the project with the most stargazers here, with the popularity caveat above.

**Limits**

- A mixed license needs a read by someone who owns the legal question.
- The README leads with the hosted sign-up, then self-hosting.

Source: [Twenty README](https://github.com/twentyhq/twenty#readme) and its [LICENSE file](https://github.com/twentyhq/twenty/blob/main/LICENSE).

## 6. Krayin, best for a Laravel team

Image: Open Source CRM with Krayin

Krayin's README describes a CRM framework on Laravel and Vue.js with an admin dashboard, custom attributes, a modular build and email parsing through SendGrid. It documents a command-line installer and links a Docker guide. The README also offers a cloud hosting service. The license is MIT. Score 3 of 4.

**Best for**

- A PHP team that already knows Laravel.
- Teams that want MIT terms without an API-first design.

**Limits**

- The README does not name an API or SDK.
- The latest release is dated 2026-09-10, older than the leaders above.

Source: [Krayin README](https://github.com/krayin/laravel-crm#readme).

## 7. SuiteCRM, best for a long-running PHP community

Image: Open Source CRM with SuiteCRM

SuiteCRM's README calls it an enterprise-ready open source CRM and says version 7 is mature, with regular releases. It lists Apache or IIS, PHP 8.1 to 8.4 and MySQL, MariaDB or MSSQL, and links an installation guide and a compatibility matrix. It also points to SuiteCRM 8 as the newer line that was not yet feature complete when the README was written. Score 3 of 4.

**Best for**

- Teams that want a large forum and a known extension directory.
- Organizations that want the vendor's managed hosting as a fallback.

**Limits**

- This repository is the version 7 line, so check version 8 before you commit.
- The README mentions no API.

Source: [SuiteCRM README](https://github.com/SuiteCRM/SuiteCRM#readme).

## 8. Fat Free CRM, best for a small Rails install

Image: Open Source CRM with Fat Free CRM

Fat Free CRM's README calls it an open source Ruby on Rails CRM with group collaboration, campaign and lead management, contact lists and opportunity tracking. It links installation guides for Linux and macOS and marks the Windows guide as deprecated. The repository dates from 2008 and its last push was 2026-09-28, but the latest release is dated 2026-04-19. The license file is named MIT-LICENSE, and the API returns NOASSERTION. Score 1 of 4.

**Best for**

- A Rails shop that wants a small CRM it can read in an afternoon.

**Limits**

- Its feature list in the README is short.
- No API or SDK appears in the README, and the latest release is older than 90 days.

Source: [Fat Free CRM README](https://github.com/fatfreecrm/fat_free_crm#readme).

## If you want buying signals built in

Image: Open Source CRM with looot-crm

looot-crm is a template published by looot, so weigh this section as a vendor describing its own repository. The GitHub API shows an MIT license, 0 stargazers, a repository created 2026-10-08 and a v0.1.4 release dated 2026-10-11. It is too new to rank, and the stargazer count says nothing about it either way.

Its README describes an open-source CRM for a sales team of one to five people, built on Next.js and Supabase. It has companies, people, deals on a pipeline board and an activity timeline. Each account has an Intent tab with five public signals, hiring, funding, tech stack, news and site changes, and a score from 0 to 100. Signals are fetched on demand, and each shows its price before it runs. A demo mode runs on seeded data with no account.

The README lists what it lacks. There are no email sequences, no dialer, no custom objects, no reports, no shared team workspace, no scheduled refresh and no sync to another CRM. Its Status section says no real looot run was made while building it and that it was not run against a hosted Supabase project. If you need any of those features today, pick one of the eight above.

Image: The looot-crm repository page on GitHub, public, MIT license, with its description and topics

Source: [looot-crm README](https://github.com/loootai/looot-crm#readme).

## Add looot data to the CRM you pick

Any CRM here starts with the records you type in. looot adds lookups an agent or a workflow can run against those records: find a work email, verify it, enrich a company. You choose the provider for each job from the public catalog and see the price before a call runs.

For Twenty there is an app, twenty-app-looot, MIT licensed, with a v0.1.0 release dated 2026-10-08. Its README adds a find-work-email button on people, an enrich button on companies and workflow actions for find email, verify email and enrich company. It also says the app is source only, is not published to npm or the Twenty marketplace, and has not yet run inside a Twenty server. Treat it as code to read, not a finished add-on.

Image: Open Source CRM with twenty-app-looot

For every other CRM here, the route is the looot MCP server or the REST API. The README of the n8n and Activepieces integrations shows one call shape, a POST to `/v1/runs` with an `endpointId` such as `job:people.email.find`. Your CRM needs a webhook, a workflow tool or a script to send it.

Price per call: live prices per call are read from the catalog when the page loads, see https://looot.ai/blog/best-open-source-crm.

- QuickEnrich
- Tomba
- Icypeas
- Findymail

Price per call: live prices per call are read from the catalog when the page loads, see https://looot.ai/blog/best-open-source-crm.

- Hunter
- Tomba
- TheCompaniesAPI
- People Data Labs

Image: The enrich a company page on looot.ai with a price ladder for company enrichment providers

For the full provider lists, read [the data enrichment use case](https://looot.ai/use-cases/data-enrichment) and [the best email finder tools](https://looot.ai/blog/best-email-finder-tools).

## Which open source CRM fits which need

| Your need | Pick | Why |
|---|---|---|
| An agent that reads and writes CRM records | Relaticle | The README names an MCP server and a REST API |
| MIT terms and a documented API | BottleCRM | MIT in the API, REST API and OpenAPI schema in the README |
| A REST API on a long-running PHP project | EspoCRM | REST API in the README, three databases listed |
| A CRM on the Frappe stack | Frappe CRM | Install script, bench and Docker documented |
| A data model defined in code | Twenty | SDK for objects and views, Docker Compose self-hosting |
| A Laravel codebase | Krayin | Laravel and Vue, MIT, Docker guide |
| A large community and managed hosting fallback | SuiteCRM | Forum, extension directory and vendor hosting named in the README |
| Buying signals on each account, demo first | looot-crm | Intent tab per account, template stage, read its Status section |

## Self-hosting checklist

1. Read the license file, not only the badge. Two projects here return NOASSERTION.
2. Check the runtime versions in the README against your server, for example PHP 8.5 for Relaticle or PHP 8.3 and up for EspoCRM.
3. Pick the database the README lists. PostgreSQL is named for Relaticle, EspoCRM and BottleCRM, MySQL or MariaDB for SuiteCRM and EspoCRM.
4. Decide who owns backups and upgrades before you import a single contact.
5. Put the CRM behind HTTPS and a login you control, and read the project's security notes.
6. Import ten records first and check that your fields map.

## How to run this with an agent

An agent can do the research half of this post again whenever you like, and it can add data once you have picked a CRM.

1. Connect your agent to looot once with the setup line in the prompt below.
2. Ask it to list ten contacts from your CRM export that lack a work email.
3. Ask it to show the price of the email finder and verifier before it runs them.
4. Run ten rows, read the output and only then widen the list.
5. Write the results back through your CRM's own import or API, which looot does not do for you.

Image: The Relaticle repository page on GitHub with its AGPL-3.0 license and file list

## What this post does not cover

We did not install or run any CRM here, so we say nothing about speed, usability or data quality. We did not judge hosting costs, support or security. We did not compare any of them with a paid CRM. We did not run twenty-app-looot or looot-crm ourselves for this post. Anything that needs a timer, such as a nightly refresh of enrichment data, needs scheduled runs, not available yet. Projects with a recent push that did not meet the CRM filter, such as personal CRMs and ERP suites, are left out.

Last checked 2026-10-11 against the GitHub API and each README. Author: the looot team. For the hosted tools around this stack, see [the best lead generation tools](https://looot.ai/blog/best-lead-generation-tools) and [the HubSpot replacement page](https://looot.ai/can-i-replace/hubspot).

## Questions

### What is the best open source CRM?

It depends on your stack and your needs, so this post does not name one winner. It ranks eight projects by a README checklist, and the decision table matches each project to a need. Relaticle, BottleCRM and EspoCRM scored 4 of 4 on 2026-10-11.

### Is there an open source HubSpot alternative?

There are several CRMs you can host yourself, and this post lists eight. None of them is HubSpot, and we make no feature comparison with HubSpot here. Read each README and run a demo before you decide.

### Is there an open source Salesforce alternative?

The same eight projects apply. Twenty describes itself on GitHub as the open alternative to Salesforce. We did not compare features with Salesforce, so check each project against your own list.

### Which open source CRM is free to self-host?

All eight have source you can host yourself. Check the license file first, because Twenty mixes AGPL, MIT and commercial enterprise files. The managed hosting some of them offer is a separate product.

### Which open source CRM has an API?

The READMEs of EspoCRM, BottleCRM and Relaticle name a REST API, and Relaticle also names an MCP server. Twenty names an SDK. The READMEs of Frappe CRM, Krayin, SuiteCRM and Fat Free CRM do not mention an API, which does not prove the project has none.

### Is open source CRM software safe for customer data?

Self-hosting means you own the server, the backups and the updates. Safety depends on how you run it, so read the project's own security notes and keep the software on a supported release.

### Can I add contact data to an open source CRM?

Yes. looot can find and verify work emails and enrich companies through its MCP server or REST API, and there is a source-only app for Twenty. You still import the results through your CRM's own tools.

### Should I use looot-crm?

Only if you want an Intent tab on each account and can accept a template. It was created 2026-10-08, has 0 stargazers and its README lists missing features. Read its Status section before you try the demo.

### What does a self-hosted CRM cost to run?

We make no price claim, because it depends on your server, backups and time. The live prices in this post are for looot data calls only.

### How often should I update a self-hosted CRM?

Follow the project's release notes and apply security fixes promptly. The latest releases of seven projects here are within 90 days of 2026-10-11, and Fat Free CRM is not.

## For agents

### Fill missing work emails for ten CRM contacts

```text
Use looot to fill work emails for ten contacts.
1. Set up https://looot.ai/skill.md.
2. Read my CSV of contacts with first name, last name and company domain.
3. Search the catalog for the job "find a work email" and list the cheapest endpoints with their prices.
4. Run the first ten rows, then verify each email found, and show one table with the email and its status.
5. Tell me the cost before each step and stop if the total passes my budget.
```
