记录给一家企业做项目的经历和想到的一些有趣的 ideas
一些背景
大概一年前,接了一个企业商业项目,为他们开发静态官网。开始的时候我花了些时间做了需求分析,大体工作如下:
- 静态官网
- i18n 语言支持
- nextjs
- 一个文章管理后台
可以看到我设计得非常简单,editor 用的是 Novel,i18n 使用的是 next-intl。UI 上有一些比较难实现的部分,但通过一些 hacks 尝试解决了,最终效果还不错。
可是…中间出现了一些麻烦,比如早期需求对齐的时候缺乏反馈,这相当于只是做了一个非常非常 mini 的 CMS 系统。我当时对这块领域理解的 Spectrum 还不够广阔,时间精力不太够,没有看到和参考现在非常多优秀 CMS 系统上的设计。
Ok,大概讲完了,是时候说说那些麻烦之处了。
由于当时的我时间精力不太够,于是乎便在 3 天的时间快速召集了几个开发者。3 个小伙伴,2 个毕业实习生和 1 个工作几年的水平,来帮忙写前端和后端工作。前期工作,技术栈的选择,需求分析,我全都准备好了。这里有一个有趣的部分,因为大家都是远程工作,大家可能会觉得这里有很多会议同步的问题。但因为我个人 7 年远程工作的经验加上准备工作比较充足,大家上手非常快,一天或者隔几天 30m 的会议稍微同步一下,基本是超快速上手,工作完美进行了。
节奏稍微有点快,但一切都 Under Control! (as it seems)
后面项目基本上可以说完美完工了(我以为的),只是…是的,问题总会在后面出现。
后续事件
大概半年后,企业重新找到我,询问我后台的使用。我就上手尝试了下应用,并后续安排开会教了对方。可是我自己用着用着,发现有很多功能匮乏的地方。
比如
- 没法上传视频
- 数据管理表格的基本功能不够完善,没有过滤、搜索
- 多语言支持不太好用
- 用户文章以公众号类型为主,当前的编辑器用的是更适合国际通用的解决方案,即所见即所得和 markdown 格式文档为主
于是实在不好意思,后面只能自己花时间去开发补上了,只能怪自己当时没定好需求。尽管一切都按照较为严格的标准督促着小伙伴,但也心软担心开发的小伙伴太过严厉是不是不太好,在很多基础上缺了些功能没对接确认清楚就让他溜了(小伙子后面去澳洲留学了 lol)。
分析和解决方案
我们先看一个 CMS 的方案, Cosmic JS # 附录
从市场需求和一些基本单位出发,这张图概括得很好。Lets break it down
- A content edit system 内容编辑
- 编辑器,具有丰富的编辑能力,不用做到微信那么强悍
- 封面,如果能带裁剪就最好了
- slug 和 SEO
- 内容多语言
- 支持多媒体
- Pages & Template edit
- 通常的 CMS 都是通过构建一些抽象元素,如 collections、fields、pages 这些元素来整合成一个完善的页面
- Media management
- 多媒体库
- 多语言
- 支持电商
- Mobile friendly
- Analytics 数据统计
- 参考微信公众号的数据分析
- 国内大多都用百度统计
- 国际用 google
我们的解决方案
- A content edit system 内容编辑
- ☑️ 编辑器,具有丰富的编辑能力。我们的比较简单但足够标准,后面准备优化到类似于微信编辑的体验
- ☑️ 封面,有,但不支持裁剪
- ☑️ slug 和 SEO 自动配置
- ✖️ 内容多语言,暂不支持
- ☑️ 支持多媒体,后面我加上了
- ✖️ Pages & Templates
- 通常的 CMS 都是通过构建一些抽象元素,如 collections、fields、pages 这些元素来整合成一个完善的页面
- ✖️ Media management
- 多媒体库
- ☑️ 多语言
- 但因为没有 Pages & Templates,我们不支持后台编辑页面的能力
支持电商- ☑️ Mobile friendly
- ☑️ Analytics 数据统计
- 我们使用的是第三方服务
尽管追求效率借助了许多第三方工具,开发工作量少了很多,因为没有完整的需求反馈 loop。另外很多企业网站的能力都是通过第三方 SaaS 解决的。
但是这给与国内传统企业对接造成了一定阻碍,出现了哪些问题呢。
- 数据迁移,通常企业需要支持 local-first 本地化
- 沟通成本,企业不需要知道我用了多好多好的服务,与许多 to c 场景类似,我只需要提供方案与报价。所以很多隐形成本得自己 cover 掉。
- 在这之间我需要找到一个好的平衡,即能满足企业需求,而双方不需要消耗过多精力在各方面细节上。
最大的问题还是,我以 to c 的方式去构建了 to b 的方案。
解决方案
重新制定需求和方案,每天花时间使用产品,缺啥补啥,随时复盘和听取反馈进行优化调整。这里列举一些我面临的问题和解决方案。
- Cloud & CDN,一开始部署到了 Vercel,其提供的 CDN 和 节点 覆盖相对比较完善,比起单一服务器的部署有更多的用户访问覆盖度。国内可以访问,但是相对而言速度会慢一些。
- 不过客户要求放到自己的服务器上。那么按他们要求的基础来做,加上 CDN 来保证访问覆盖。
- 于是我便花了些时间折腾了现有的 CDN 解决方案,尽管不是很好用,只能找一些合适的来解决。
- 编辑器优化与媒体支持,参考了许多优秀的源码,一边找一边优化,最近刚好找到了一个最合适的方案
- 对应的显示页优化,加了很多 readibility 实践,阅读访问优化。
- 正在添加多语言、预览、媒体库和 SEO 优化。
- 我注册了公众号,尝试将编辑能力往这块对齐。
- 数据统计不够充分,用了一些服务,可以分析官网的客户转换率。
- 更复杂的内容管理能力
- Schedule 定时发布
- 交互能力:分享、评论、点赞
- 页面编辑
- 多语言支持,文章预览和 AI 翻译
- 媒体库
- 用户管理和权限体系
- Error boundry 和 错误监听 报告
冒出的 ideas
过程有很多限制,很多问题都解决了,只是过程中有意思的想法冒出头顶!
Ideas
- What if the web and the data could be safely stored and access anywhere like using a CDN, worldwide 如果基础设施能够有类似 CDN 的效果, 支持用户访问达到全球覆盖的效果,数据可以有一个安全储存和快速获取的方式。
- And software is designed to be agent-accesible, permissionable 软件以 Agent 交互协议为主来设计,方便 Agent 访问和管理权限
- Agent can use the SaaS real quick, base on our budgets and requests 这样 Agent 可以作为一个单位,根据我们提供的预算和需求访问快速链接 SaaS 帮助我们制作软件。
有没有可能出现 Bridge as a Service?这个描述可能不够准确。
我可以做个假设,如果所有的 SaaS 服务都可以以一种通用的协议被直接使用,通过预算控制配合 AI Agent 使用。
而 Bridger 可以帮忙搜集和规划必要的功能组合,这不就成了一套完善的 Agent 软件生态循环了嘛。
What if, all the SaaS online follow a set of protocol, and we can call AI agent to utilize them?
我想肯定市场上应该有相当多公司在做这件事默默 build 的,如由 Anthropic MCPLLM <-> Agent <-> Application
互通协议。
Anyway,如果对这些想法感兴趣的话,请联系我。这个领域相当有趣,市场也正在不断扩展,我们可以交流下 Idea 😂。
不管如何,通过这些探索的过程,逐渐看到了更加清晰的未来世界,是一段相当有趣的旅程,分享给大家,共勉。You can learn everything, amagi out
附录
https://huly.io/
一个比较前沿专注于优秀用户体验的企业级任务、知识管理应用。https://github.com/pages-cms/pages-cms
Pages CMS 一个以 Github Pages 为管理基础的 CMS 系统https://payloadcms.com/
应该是我所见过的 Programmatic 程度最高,应用能力极其丰富的 CMS 系统
Update 后文
文章同时发布到了我注册的公众号「编程魔法世界漫游指南」里,欢迎来捧场关注呀!
顺便吐槽下公众号,没想到修改文章是按字数来改的…成本可真大呀。
Footnotes
-
Huly 提出了
boundaryless cloud
的进一步计划。↩