Atomic CRM is a free, open source crm & sales project written in TypeScript and released under MIT. It has 1,257 GitHub stars, 813 forks and 19 open issues, and was last pushed 11 hours ago. On this registry it ranks #8 of 11 tracked projects in CRM & Sales, with 5 head-to-head comparisons available. It gained 10 stars over the last 6 tracked days.

What is Atomic CRM?

What it is

Atomic CRM is an open-source CRM toolkit for personalized customer relationship management solutions. It is a full-featured CRM built with React, shadcn/ui, and Supabase, distributed under the MIT license in TypeScript. The project lives in the React and Supabase ecosystem and is published by Marmelab.

It solves the problem of assembling a sales and customer communication workflow without starting from an empty admin panel. Teams can keep contacts, tasks, notes, email captures, deals, and activity history in one system, then add custom fields, replace components, and connect other systems through an API.

Key capabilities

  • It organizes contacts, tasks, reminders, and notes, with follow-up deadlines and captured details.
  • It manages deals through a Kanban board, so users can visualize and track the sales pipeline.
  • It captures emails when Atomic CRM is CC'd, saving communications as notes.
  • It imports and exports contact data for transfers into and out of the system.
  • It controls access through Google, Azure, Keycloak, and Auth0 login.
  • It tracks activity history in aggregated logs and exposes an API for integration.
  • It supports custom fields, themes, replaced components, and upstream updates through the Atomic CRM shadcn registry.

Who uses it and how

  • A team can fork the repository, install dependencies, and run Supabase, Postgres, and the Vite dev server locally.
  • A sales team can track deals on the Kanban board, create tasks and reminders, and record notes.
  • An implementation team can import contacts, export data, and connect Atomic CRM to other systems through the API.
  • An organization can use Google, Azure, Keycloak, or Auth0 sign-in to control access.
  • A maintainer can run unit and end-to-end tests with Make commands and pull component updates with the shadcn registry.

Getting started

The documented local setup is to fork and clone the repository, run make install with Make, Node 22 LTS, and Docker, then run make start to launch the Vite frontend, local Supabase instance, and Postgres database at http://localhost:5173/. The README points to documentation in the doc/ directory and online.

When to use it — and when not to

Atomic CRM fits teams that want an MIT-licensed React CRM toolkit they can fork, customize, and connect to Supabase. A self-hoster must operate the stack described by the README, including Supabase, Docker, Postgres, attachments storage, and email capture or testing services such as Inbucket. The facts show a young project, with repo age 0 years, 0 contributors, 19 open issues, and 1,254 stars, so teams needing a longer track record or no self-hosting burden may prefer another option.

project readme (upstream, from github) — read inline

Atomic CRM

A full-featured CRM built with React, shadcn-admin-kit, and Supabase.

Atomic CRM is free and open-source. You can test it online at .

Features

  • 📇 Organize Contacts: Keep all your contacts in one easily accessible place.
  • Create Tasks & Set Reminders: Never miss a follow-up or deadline.
  • 📝 Take Notes: Capture important details and insights effortlessly.
  • ✉️ Capture Emails: CC Atomic CRM to automatically save communications as notes.
  • 📊 Manage Deals: Visualize and track your sales pipeline in a Kanban board.
  • 🔄 Import & Export Data: Easily transfer contacts in and out of the system.
  • 🔐 Control Access: Log in with Google, Azure, Keycloak, and Auth0.
  • 📜 Track Activity History: View all interactions in aggregated activity logs.
  • 🔗 Integrate via API: Connect seamlessly with other systems using our API.
  • 🛠️ Customize Everything: Add custom fields, change the theme, and replace any component to fit your needs.
  • 📦 Stay Up To Date: Pull the latest component updates into your fork via the Atomic CRM shadcn registry.

Installation

To run this project locally, you will need the following tools installed on your computer:

  • Make
  • Node 22 LTS
  • Docker (required by Supabase)

Fork the marmelab/atomic-crm repository to your user/organization, then clone it locally:

git clone https://github.com/[username]/atomic-crm.git

Install dependencies:

cd atomic-crm
make install

This will install the dependencies for the frontend and the backend, including a local Supabase instance.

Once your app is configured, start the app locally with the following command:

make start

This will start the Vite dev server for the frontend, the local Supabase instance for the API, and a Postgres database (thanks to Docker).

You can then access the app via http://localhost:5173/. You will be prompted to create the first user.

If you need debug the backend, you can access the following services:

Documentation

The user and developer documentation for this project is available in the doc/ directory. You can also read it online at https://marmelab.com/atomic-crm/doc/.

Testing Changes

This project contains unit tests and e2e. Run unit test with the following command:

make test

Run e2e test with:

make test-e2e

Note: the make test-e2e will run the the e2e test in ui mode against a vite server with hot reload for ease of development. On the CI the e2e test will be run against the built app. If you need to run the test against the built file instead. You can run:

make start-e2e-ci # To launch the CI e2e environment (serving the built app)
# followed by
npx playwright test --ui

You can add your own unit tests powered by Jest anywhere in the src directory. The test files should be named *.test.tsx or *.test.ts. And you can also add your own e2e test. The e2e test files should be placed inside the ./e2e folder

Shadcn Registry

Atomic CRM components are published as a shadcn registry. This registry can't be used to bootstrap a new CRM app (use Installation for that), but it's a convenient way to keep the components you forked in sync with upstream.

For Users: Getting Updates

Once you've forked and customized Atomic CRM, periodically run the following command to pull in the latest component updates:

npx shadcn add https://marmelab.com/atomic-crm/r/atomic-crm.json -o -y
  • -o overwrites the files that changed upstream
  • -y skips the confirmation prompt (prefer this over piping yes | into the command)

Commit your work before running this command so you can review the diff and resolve any conflict with your own customizations. See the Getting Updates chapter of the documentation for details.

For Contributors: How The Registry Is Built

The registry file is kept up to date automatically:

  • The registry.json file is automatically generated by the scripts/generate-registry.mjs script as a pre-commit hook (make registry-gen).
  • The https://marmelab.com/atomic-crm/r/atomic-crm.json file is automatically built and published by the CI/CD pipeline (make registry-build, make registry-deploy).

[!WARNING]
If the registry.json misses some changes you made, you MUST update the scripts/generate-registry.mjs to include those changes.

License

This project is licensed under the MIT License, courtesy of Marmelab. See the LICENSE.md file for details.

Frequently asked questions

Is Atomic CRM free to use?

Atomic CRM is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Atomic CRM do?

Open-source CRM toolkit for personalized solutions

What is Atomic CRM written in?

Atomic CRM is primarily written in TypeScript. Its source is publicly available at https://github.com/marmelab/atomic-crm, and it has 1,257 GitHub stars.