A full-featured CRM built with React, shadcn-admin-kit, and Supabase.
atomic-crm.mp4
Atomic CRM is free and open-source. You can test it online at https://marmelab.com/atomic-crm-demo.
- π 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.
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.gitInstall dependencies:
cd atomic-crm
make installThis 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 startThis 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:
- Supabase dashboard: http://localhost:54323/
- REST API: http://127.0.0.1:54321
- Attachments storage: http://localhost:54323/project/default/storage/buckets/attachments
- Inbucket email testing service: http://localhost:54324/
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/.
This project contains unit tests and e2e. Run unit test with the following command:
make testRun e2e test with:
make test-e2eNote: 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 --uiYou 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
Atomic CRM components are published as a Shadcn Registry file. This means you can update your installation by calling the following command:
npx shadcn add https://marmelab.com/atomic-crm/r/atomic-crm.json -oThe Registry file is kept au to date when files are added or removed:
- The
registry.jsonfile is automatically generated by thescripts/generate-registry.mjsscript as a pre-commit hook. - The
http://marmelab.com/atomic-crm/r/atomic-crm.jsonfile is automatically published by the CI/CD pipeline
Warning
If the registry.json misses some changes you made, you MUST update the scripts/generate-registry.mjs to include those changes.
This project is licensed under the MIT License, courtesy of Marmelab. See the LICENSE.md file for details.