定制企业系统

CRM、ERP 与内部系统,按你真实的运作方式来造——工程师驻进你的业务,而不是隔着一道工单。

更新于 2026-06-20

详情

这是什么

支撑你业务运转、但市面上没有”对的那一版”的系统:贴合你销售打法的 CRM、贴合你生产实情的 ERP、把手工活从团队手里拿走的内部工具。我们的做法是把工程师前置部署到你的业务现场,而不是隔着距离接需求。

我们通常面对的局面

一个典型的项目,开局往往是这样:流程靠一摞表格加一套谁都不喜欢的现成系统在跑。现成工具把你的流程硬塞进它的数据模型,剩下接不上的地方就靠表格补。没人信任里面的数字——同一个客户或同一个零件,存了三遍、三种写法,谁也指不出哪一条才是准的。

我们做的第一件事,是坐到真正干活的人旁边,把实际发生的流程理清楚:每一步、每一种例外、那些只存在于某个人脑子里的交接。这张图就是数据库表结构的来源。我们宁可多花一周把数据模型理对,也不愿在一个错的模型上面盖一个看着干净的应用。

我们怎么造

默认技术栈是基于 Next.js 的 TypeScript 应用,配 Postgres 数据库,部署到 Cloudflare Pages。数据库用 Neon 的 serverless Postgres,空闲时能缩到零——多数内部工具一到晚上和周末就没人用,你没必要为了服务四十号人的团队,全天候养一个常开实例。文件多的系统(扫描合同、设计图纸、导出报表)把二进制内容放进 Cloudflare R2,它没有流量出口费,所以为了审计把一整年的文档拉出来,也不会冒出一张意外账单。

多数项目上我们都会做这几个决定:

  • 现实里的一个东西,库里只对应一条记录。 客户、零件、订单各自只有一条规范主记录,带稳定 ID。导入时跟它去重,而不是再追加一条几乎重复的。这件事不起眼,但后面报表数据可不可信,多半就靠它。
  • 鉴权在服务端逐条对象校验。 每一个读写记录的请求,都在服务端重新确认一次:当前登录用户有没有权限碰这一条具体记录——不是只确认他登录了,也不是靠在界面上藏个按钮。缺这种对象级校验,正是 OWASP Top 10(越权访问 / Broken Access Control) 里排第一的那类问题;在多租户的 CRM 或 ERP 里,这就是销售只看见自己的客户、还是看见所有人客户的区别。
  • 迁移先空跑一遍。 旧系统到新系统的迁移,先在副本上跑,比对行数和各项合计,把每一处对不上的地方都核平,才动生产库。切换在一个时间窗内完成,期间旧系统仍可读,等你确认无误为止。

我们最能创造价值的地方

  • 替换掉你已经用不下去、或天天要跟它较劲的现成系统
  • 打通互不相通的 CRM、ERP 和各种工具
  • 从脆弱的遗留系统零停机迁移出来
  • 把手工、靠表格跑的流程,变成归你所有的软件

你拿到的东西

代码归你:仓库、部署配置、文档,一并交接,让你的团队不依赖我们也能跑、也能接着改。凡是我们做了不那么直白的取舍,仓库里都留一段简短说明讲清为什么,下一个工程师不用自己倒推。

FAQ

常见问题

这和直接买一套 CRM 或 ERP 有什么区别?

现成系统逼你把流程改成它的样子,我们反过来——驻进现场、梳理你真实的流程、把系统围着流程造。代码归你。

所谓前置部署,对我们意味着什么?

工程师在你的业务内部干活,而不是隔着距离。反馈更快、误解更少,几周出能用的版本,而不是拖几个季度。