https://github.com/puemos/craftplan
Self-hosted software for managing artisanal D2C micro-businesses
https://github.com/puemos/craftplan
artisanal d2c erp self-hosted
Last synced: 6 months ago
JSON representation
Self-hosted software for managing artisanal D2C micro-businesses
- Host: GitHub
- URL: https://github.com/puemos/craftplan
- Owner: puemos
- License: agpl-3.0
- Created: 2024-12-24T10:20:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-01-30T14:38:44.000Z (6 months ago)
- Last Synced: 2026-01-31T04:02:45.676Z (6 months ago)
- Topics: artisanal, d2c, erp, self-hosted
- Language: Elixir
- Homepage: https://puemos.github.io/craftplan/
- Size: 5.41 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
- my-awesome-github-stars - puemos/craftplan - Self-hosted software for managing artisanal D2C micro-businesses (Elixir)
README

## Open-source ERP for small-scale artisanal manufacturers and craft businesses
Craftplan brings all essential business tools into one platform — catalog management, inventory control, order processing, production planning, purchasing, and CRM — so you can get off the ground quickly without paying for multiple separate platforms.

## Features
**Catalog & BOM**
- Product catalog with photos and labels
- Versioned Bills of Materials — edit latest, older versions read-only
- Automatic cost rollups across nested BOMs
- Labor steps with time and cost tracking
**Orders & Invoices**
- Customer order processing with calendar-based scheduling
- Invoice generation
- Order item allocation to production batches
**Production**
- Production batching with automatic material consumption
- Cost snapshots per batch
- Completion workflow with produced quantity tracking
**Inventory**
- Raw material management with lot traceability
- Stock movements (consume, receive, adjust)
- Allergen and nutritional fact tracking
- Demand forecasting and reorder planning
**Purchasing**
- Purchase orders and supplier management
- Receiving into stock with lot creation
**CRM**
- Customer and supplier database
- Order history and statistics
**Import / Export**
- CSV bulk import for products, materials, and customers
- CSV export
**Email**
- Transactional email delivery configurable from the UI
- SMTP, SendGrid, Mailgun, Postmark, Brevo, and Amazon SES
- API keys encrypted at rest
**Calendar Feed**
- iCal (.ics) subscription URL for Google Calendar, Apple Calendar, or any iCal-compatible app
- Includes order deliveries and production batch schedules
- Generate and revoke feeds from Settings
**API**
- JSON:API and GraphQL endpoints for programmatic access
- API key authentication with encrypted storage
- CORS configuration
**Access Control**
- Admin and staff roles
- Policy-based authorization on all resources
## Screenshots
## Tech Stack
Elixir · [Ash Framework](https://ash-hq.org/) · Phoenix LiveView · PostgreSQL · Tailwind CSS
## Getting Started
> **Prerequisites:** Docker, Elixir ~> 1.15, Erlang/OTP 27
```bash
docker compose -f docker-compose.dev.yml up -d # Start PostgreSQL + MinIO + Mailpit
mix setup # Install deps, migrate, build assets, seed
mix phx.server # Start at localhost:4000
```
See the [setup guide](https://puemos.github.io/craftplan/docs/getting-started/) for detailed instructions.
## Self-Hosting with Docker
Deploy Craftplan on your own server — no need to clone the repo:
```bash
curl -O https://raw.githubusercontent.com/puemos/craftplan/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/puemos/craftplan/main/.env.example
cp .env.example .env # Fill in the required secrets (see .env.example)
docker compose up -d
```
This starts Craftplan, PostgreSQL, and MinIO with migrations running automatically.
[](https://railway.com/template/craftplan)
See the [self-hosting guide](https://puemos.github.io/craftplan/docs/self-hosting/) for single-container mode, Railway deployment, reverse proxy setup, and more.
## Why Craftplan?
- **Purpose-built for artisanal manufacturing** — not a generic ERP adapted to fit; workflows are designed around small-batch, made-to-order production
- **Allergen & nutritional tracking** — first-class support for food and beverage producers who need to track ingredients and generate nutrition labels
- **BOM versioning with cost rollups** — iterate on recipes and formulas while keeping full history and accurate costing
- **Self-hosted, no vendor lock-in** — your data stays on your infrastructure, backed by PostgreSQL
## Documentation
- [Full documentation](https://puemos.github.io/craftplan/docs/)
- [API reference (JSON:API & GraphQL)](https://puemos.github.io/craftplan/docs/api/)
## Contributing
Contributions are welcome. For major changes, please [open an issue](https://github.com/puemos/craftplan/issues) first to discuss your proposal.
```bash
mix test # Run the test suite
mix format # Format code (Styler, Spark, Tailwind, HEEx)
```
Commits follow the convention: `type(scope): description` (e.g., `feat(batching):`, `fix(orders):`, `ui(production):`).
## License
This project is licensed under the AGPLv3 License — see the [LICENSE](LICENSE) file for details.
## Support
- [Open an issue](https://github.com/puemos/craftplan/issues)
- [Read the docs](https://puemos.github.io/craftplan/docs/)