Carbon: Open Source ERP, MES, and QMS for Manufacturing
Summary
Carbon is an open-source ERP, MES, and QMS solution tailored for complex manufacturing environments. It addresses the need for modern, API-first tooling in manufacturing, offering flexibility for various production scenarios. This project aims to overcome vendor lock-in and provide a highly extensible platform.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Carbon is an open-source Enterprise Resource Planning (ERP), Manufacturing Execution System (MES), and Quality Management System (QMS) specifically designed for manufacturing. It is ideal for businesses involved in complex assembly, job shops, and configure-to-order manufacturing processes. With 1670 stars and 170 forks on GitHub, Carbon offers a modern, API-first approach to manufacturing operations, built with TypeScript and leveraging technologies like Supabase and Remix. It aims to provide a flexible and extensible platform to avoid common pitfalls like vendor lock-in.
Installation
To get Carbon up and running locally, follow these steps:
- Clone the repository:
git clone https://github.com/crbnos/carbon.git cd carbon - Ensure Docker is installed on your system as it's used for local development.
- Configure external services: You will need accounts for Upstash (Redis), Trigger.dev (Job runner), and Posthog (Product analytics). Free tiers are available for local development.
- Install dependencies and start database containers:
nvm use # use node v20 npm install # install dependencies npm run db:start # pull and run the containers - Create and configure your
.envfile: Copy.env.exampleto.envand fill in the required environment variables for Supabase, Upstash, Trigger.dev, Posthog, Stripe, and authentication methods (Resend for email or Google OAuth). - Build the database and packages:
npm run db:build # run db migrations and seed script npm run build # build the packages - Start the applications:
npm run dev npm run dev:mes # to run all apps & packages
After these steps, you can access the applications locally.
Examples
Carbon is a monorepo structured with /apps for applications and /packages for shared code. You can explore the following applications locally:
- ERP: http://localhost:3000
- MES: http://localhost:3001
- Academy: http://localhost:4111
- Starter: http://localhost:4000
The project also provides examples for extending the platform in the examples folder. The API documentation is auto-generated and available within the ERP app at ${ERP}/x/api/js/intro. You can interact with the API from another codebase using Supabase client libraries or directly within the monorepo using @carbon/auth utilities.
Why use Carbon?
Carbon was developed to address critical gaps in existing manufacturing software solutions. It offers:
- Modern, API-first tooling: Unlike many legacy systems, Carbon is built with a focus on modern APIs, enabling seamless integration and extensibility.
- Avoidance of vendor lock-in: The open-source nature and modular architecture empower companies to customize and extend the platform without being tied to a single vendor.
- Flexibility for unique needs: Recognizing that no "perfect ERP" exists for every company, Carbon is designed to be highly adaptable, allowing businesses to build their own apps through its API.
- Comprehensive functionality: It covers essential aspects of manufacturing with integrated ERP, MES, and QMS capabilities, including nested BoM, traceability, MRP, and configurator features.
- Robust technical foundation: Key technical highlights include full-stack type safety, real-time database subscriptions, attribute-based and role-based access control, and row-level security.
Links
- GitHub Repository: https://github.com/crbnos/carbon
- Official Website: https://carbon.ms
- Documentation: https://docs.carbon.ms
- Discord Community: https://discord.gg/yGUJWhNqzy
- Full Roadmap: https://github.com/orgs/crbnos/projects/1/views/1