

博客是来自生产一线的笔记:架构决策、经受住真实用户考验的 AI 系统、能自己挣回成本的基础设施。写于工作之中,而不是隔岸观火。


博客是来自生产一线的笔记:架构决策、经受住真实用户考验的 AI 系统、能自己挣回成本的基础设施。写于工作之中,而不是隔岸观火。
基于 React Native 与 Expo 构建的 iOS 和 Android 应用,作为其背后平台的一个组成部分:与网站共用同一套后端、认证和数据模型,并以同一节奏在应用商店发布。这里的作品包括面向英国小巴与大巴运营商的预订平台和工作共享网络,历时十八个月交付的旅行者求助应用,面向学生的生活技能应用,本地体育应用,一款经销商开票工具,以及一个粉丝平台。
Fully Booked 是一个面向英国小巴和大巴租赁的预订平台,也是其背后运营商的业务共享网络。客户只需在客户网站上描述一次行程,就能收到能够承接的运营商按评价和车辆照片排序的报价,并以一笔受保护的小额定金完成预订。接不了单的运营商可以在应用中推荐客户,当网络中的另一家公司承接时即可获得分成。围绕这一循环的还有报价单、取消通知、Get Covered、合作伙伴联系人、已保存的预订、钱包、业务主页和 Prebooked 小部件,全部运行在同一个后端之上,并由一个管理控制中心统一管理。
基于无头 CMS、使用 React 与 Next.js 构建的 Web 平台及其前台网站:支撑企业日常运营的管理后台、客户门户、一家合作社的账本与贷款系统,以及加载迅速、便于搜索引擎和 AI 爬虫读取的公开网站。无论规模大小,都采用服务端渲染、多语言本地化,并持续度量。
让平台持续在线的基础设施与发布工作:从托管云迁移到自托管 Kubernetes 的生产环境迁移,全程无停机记录;部署在 Cloudflare 之后的 Docker 化服务,推送即发布的 CI/CD,以及通过应用商店审核的移动端发布。备份、TLS 与监控是工作本身的一部分,而非额外项。
可嵌入的组件,把平台带到别人的网站上。借助 Prebooked 小部件,小巴或大巴运营商可以在自己的网站上直接提供预订,由背后的 Fully Booked 平台支撑,客户无需离开页面即可完成预订。安装轻便,并与它所扩展的产品保持同样的标准。
平台周边那些既不是应用也不是网站的部分:gm-libs,用于认证、数据、界面和后台任务的可复用 TypeScript 软件包,Webanion 的每个前端和后端都以它们为起点;以及一个产品的设计历程,从交互式 Figma 原型及其 UI/UX,到把它推向市场的视觉素材和教程视频。
Fully Booked 以五个 Docker 服务的形式上线,部署在 Cloudflare 后面的一台 DigitalOcean droplet 上,让一个很小的团队也能运营一个托管定金的市场平台。一个仓库构建所有镜像,一个 compose 文件和一个 Makefile 把发布简化为 pull、build 和 up,Caddy 代理负责证书和安全头,Playwright 在服务器上渲染每一份报价单和发票的 PDF。由于各服务从一开始就相互独立,后来无需重建就迁移到了自托管的 Kubernetes 集群。