独立开发·阅读约 2 分钟·
Craftplan:一位开发者为了面包店妻子打造的开源生产管理工具

Craftplan:一位开发者为了面包店妻子打造的开源生产管理工具

一位开发者为了帮妻子管理面包店的生产排程,从零构建了自托管 ERP 系统 Craftplan,并在 GitHub 上开源,获得了 1100+ Star。

原文来源:Craftplan —— 一位开发者为了帮妻子管理手工烘焙业务,从零构建了自托管 ERP 系统,从解决真实问题出发,做出了一个通用的开源解决方案。

很多独立开发者的第一个产品都来自一个非常朴素的起点:「我身边的人需要一个工具。」

Craftplan 的故事也不例外。开发者 puemos 的妻子经营着一家手工面包店,每天要处理订单、原材料、生产排程、库存——她需要的不是 Excel 表格,也不是几十倍功能溢出的大厂 ERP 系统,而是一个刚好能用的工具。

于是 puemos 自己动手了。

面包店的实际需求

手工面包店的生产管理,和想象中不太一样。它既不同于餐馆的前厅后厨,也不同于工厂的流水线:

订单式生产:客人下单后才安排生产,不是提前批量做好等着卖。每天生产什么、做多少、什么时间做,完全取决于当天的订单。

配方版本管理:面包配方会不断调整——今天少放点盐,明天换种面粉。需要知道每版配方的差异,而不是覆盖掉旧的。

原料追溯:面包店要用面粉、黄油、鸡蛋、酵母——每种原料批次不同、供应商不同、保质期不同。客户吃到一款面包,理论上要能追溯到用了哪一批面粉。

成本核算:每种面包的物料成本、人工成本、包装成本——要能自动算出来,而不是靠猜。

个性化订单:客人的定制要求(少糖、无麸质、额外坚果)——需要记录在生产排程中,不能遗漏。

这些需求综合起来,恰好是独立开发者最擅长解决的问题——范围明确、用户具体、需求真实。

Craftplan 的功能

Craftplan 围绕手工制造的核心流程设计,不是通用 ERP 的简化版,而是从零开始按照「小作坊需要什么」来设计的。

产品目录与 BOM(物料清单)

  • 产品目录,支持图片和标签
  • 带版本控制的物料清单——编辑最新版,旧版只读
  • 嵌套 BOM 的自动成本汇总
  • 人工步骤的时间和成本追踪

订单与发票

  • 客户订单处理,支持日历排程
  • 发票生成
  • 订单品项分配到生产批次

生产排程

  • 生产批次管理,自动消耗物料
  • 每批次的成本快照
  • 完成流程,记录实际产量

原材料库存

  • 原材料管理,支持批次追溯
  • 库存操作(消耗、入库、调整)
  • 过敏原和营养成分追踪
  • 需求预测和补货建议

采购管理

  • 采购订单和供应商管理
  • 入库到库存,创建批次

客户关系管理

  • 客户和供应商数据库
  • 订单历史与统计

导入/导出

  • CSV 批量导入产品、物料和客户
  • CSV 导出

邮件

  • 从界面配置事务性邮件发送
  • 支持 SMTP、SendGrid、Mailgun、Postmark、Brevo、Amazon SES
  • API 密钥加密存储

日历订阅

  • iCal (.ics) 订阅 URL,兼容 Google Calendar、Apple Calendar
  • 包含订单交付和生产批次排程

API

  • JSON:API 和 GraphQL 端点
  • API 密钥认证,加密存储
  • CORS 配置

权限管理

  • 管理员和员工角色
  • 基于策略的资源授权

全局搜索

  • Cmd+K / Ctrl+K 命令面板
  • 模糊搜索产品、物料、订单、客户和批次

技术栈

Craftplan 的技术选型也很有意思:

  • 语言:Elixir
  • 框架:Ash Framework + Phoenix LiveView
  • 数据库:PostgreSQL
  • 前端样式:Tailwind CSS

Elixir + Phoenix 的选择非常贴合 Craftplan 的定位。Phoenix LiveView 让前端不用写 JavaScript 就能实现实时交互——生产排程、库存更新这类需要多人协作的场景,天然适合实时 Web 应用。Ash Framework 则提供了声明式的资源定义和策略授权,大幅减少了 CRUD 样板代码。

部署方式

Craftplan 设计为自托管,部署非常简单:

code
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
# 填入必要的密钥配置
docker compose up -d

这个命令会启动 Craftplan、PostgreSQL 和 MinIO,迁移会自动运行。也支持 Railway 一键部署。

为什么独立开发者应该关注这个项目

Craftplan 是独立开发领域一个典型的「从真实问题出发」的案例,它展示了几条重要原则:

解决你自己的问题就是最好的市场研究。puemos 的妻子确实需要这个工具——需求是真实的、具体的、经过验证的。不用做用户访谈,不用猜功能优先级,身边的人每天在用。

开源不等于不赚钱。Craftplan 是 AGPLv3 协议,代码完全可见。但自托管的门槛意味着很多人会愿意为托管版本付钱——这正是很多独立开发者的商业模式。

做小比做大更难。通用 ERP 已经做了几十年,但面向手工小作坊的精细化管理系统反而没人做。因为大公司看不上这个市场——单客价太低。但如果你能用低维护成本服务几十个小作坊,就是一个不错的生意。

选择冷门但适合的技术栈可以占便宜。Elixir 生态系统竞争少、开发者稀缺但有溢价能力。面向这个技术栈的 RFP(需求提案)竞争远小于 JavaScript/Python 领域。

适合谁

如果你符合以下情况,Craftplan 值得关注:

  • 经营手工食品/制造业务——面包、巧克力、手工皂、陶瓷——Craftplan 的 BOM 和生产批次功能直接对号入座
  • 想了解 Elixir + Ash Framework 的生产级代码——这是一个良好的实战参考
  • 有自托管需求——数据留在自己手里,不依赖第三方 SaaS
  • 正在构思独立开发产品方向——「做小企业用的小工具」是一条已经被验证的路

Craftplan 的代码和文档都在 GitHub 上,项目活跃度不错,Issue 和 PR 都在正常处理。

分享到
微博Twitter

© 2026 四月 · CC BY-NC-SA 4.0

原文链接:https://aprilzz.com/indie/craftplan-bakery-erp