Show HN: Craftplan – Elixir-based micro-ERP for small-scale manufacturers
puemos.github.ioMy wife was planning to open a micro-bakery and we started looking at software to manage recipes, inventory, orders, and production. Everything was either expensive, too generic, or both. The workflows for a small-batch manufacturer aren’t that complex, but the pricing acts like they are.
So I built Craftplan. All the features were tailored to what she actually needed, and I figured other small-scale manufacturers (soap makers, breweries, candle makers, etc.) probably need the same things. So I’m putting it out there for free.
- Live demo: https://craftplan.fly.dev (test@test.com / Aa123123123123)
- GitHub: https://github.com/puemos/craftplan
- Docs: https://puemos.github.io/craftplan
- Self-hosting guide: https://puemos.github.io/craftplan/docs/self-hosting/
What it does: - Product catalog with versioned recipes (BOMs) and automatic cost rollups across materials, labor, and overhead
- Inventory tracking with lot traceability, expiry dates, allergen/nutrition flags, and demand forecasting
- Order processing with calendar-based scheduling and allocation to production batches
- Production planner with make sheets, material consumption from specific lots, and cost snapshots
- Purchase orders with receiving workflow that auto-creates inventory lots
- Basic CRM for customers and suppliers
- CSV import/export, iCal calendar feed, JSON:API and GraphQL endpoints
Experience building with Elixir, Ash and Liveview: - Speed: you get to test and improve things sooo fast. The DSL makes it simple to translate your thinking into live product
- Extensibility: With Ash + LiveView you can add more features so easily. Adding JSON:API + Grapghql was a few minutes.
- UX: I believe LiveView makes it simple to deliver great UX since it forcing you to keep things simple with no so much interaction overhead which most of the time means better and simple experience
Self-hosting: - Docker image: `ghcr.io/puemos/craftplan` (amd64 + arm64)
- Docker Compose bundles PostgreSQL 16 + MinIO.
Other details: - Email config from UI (SMTP, SendGrid, Mailgun, Postmark, Brevo, Amazon SES)
- API keys encrypted at rest (AES-256-GCM)
- Role-based access (admin/staff)
- Tech stack: Elixir, Ash Framework, Phoenix LiveView, PostgreSQL
- License: AGPLv3
Feedback welcome (and needed!)
I'm mostly vibe-coding a system of comparable complexity in Elixir/Ash right now and it's an insanely good ecosystem for the use-case.
The combination of credo, dialyzer, and tidewave means you have an iterative feedback loop at multiple levels of analysis.
If it needs, it can call right into the running process with the CLI. Everything is runtime inspectable and manipulable, and agents just automatically figure out what to do instantly. Debugging is very quick.
Ash AI gives you automatically generated MCP servers that let agents call functions in your software, so you can prototype the backend without building any UI.
On top of that, the library ecosystem is battle-tested and encodes knowledge from decades of enterprise learnings. With agents, there's no reason to "just use bash" or "just use a python script" because it's easier for a human. You can just build an extremely robust application with high-level architecture patterns, self-healing, rich access permissions, minimal runtime mutation, etc. for free, because why not?
(I have similar things to say about Rust with its algebraic typing, just, etc.)
How many times are you going to submit this in just one week? This is at least the third.
Submitter can be an agent, and codebase could be generated, as well as the bakery/love story idea..
this time you made it for your grandma, boyfriend, or what?