Web 应用、SaaS 与 MVP 开发

Dardo 为创始人和企业开发 Web 应用、SaaS 产品与 MVP,打造客户可以登录、付费并长期依赖的软件,而不是营销网站。我们围绕一个核心工作流确定第一个版本的范围,然后完成设计、开发、测试和上线,内容包括账户、权限、支付、管理后台和数据分析,代码和账户都归您所有。

通过 WhatsApp 联系我们
Dardo / 编辑插画
本页内容

Web 应用或 MVP 项目包含哪些内容

我们会根据实际需求来制定合作方案。方案中会列明包含哪些交付内容、由谁提供所需素材,以及每一项如何验收。

  • 第一版范围:核心工作流、角色,以及暂缓的内容
  • 关键页面设计,包含空状态、加载状态和错误状态
  • 数据模型、服务器端访问规则,以及专门尝试突破这些规则的测试
  • 账户、角色和团队邀请
  • 通过经验证的支付服务商回调确认的支付或订阅
  • 管理后台、产品分析事件和错误监控
  • 部署、文档,以及代码仓库和账户的交接

应该先做 Web 应用、网站还是产品设计?

如果客户或员工需要登录后在产品中完成工作,例如购买、预订、提交、审批或管理某些事项,就选这项服务。如果您需要的是介绍并销售产品或服务的网站,网站开发更合适。如果工作流程还没有确定,建议先做产品设计,等关键页面经过用户测试后再开发。

第一个版本是如何构建的

我们从范围界定阶段开始:明确用户和角色、第一版必须完成的那个工作流、每一步产生的数据,以及会影响成本的决策,比如支付、集成和权限。产出包括书面的范围说明、可点击的关键页面,以及列明暂缓事项的发布计划。

随后我们以短周期在您可以使用的预发布环境中开发。第一个里程碑是让核心工作流的精简版本端到端跑通,具备真实的登录和真实的数据规则,然后再补全其余页面。上线时包括生产环境监控、回滚方案,并将代码仓库、托管、数据库、支付和分析账户以您的名义交接给您。

MVP 的第一个版本应该包含什么?

第一个版本需要具备让真实用户完成一个工作流所需的一切,而不包含只有在您尚未达到的规模下才有意义的功能。实际上包括五项:带有工作流所需角色的账户、核心工作流本身、让团队无需开发人员就能查看和修正记录的管理后台、商业模式从第一天起就收费时所需的支付,以及显示用户在哪里流失的分析事件。

可以人工完成或日后再购买的功能则暂缓:原生移动应用、面向企业客户的单点登录、可配置的权限矩阵、第二个集成、应用内聊天,以及没有人要求过的报表。每个暂缓的事项仍会在范围说明中列出一行,让数据模型为它预留空间。

大多数产品都由常见模块组合而成。其中有两个值得一提:预订与排期,以及面向目前仍靠手工跟踪咨询的小企业的销售线索管道。两者看起来简单,却隐藏着关于时区、状态和归属的决策,在纸面上先定下来成本更低。

MVP 的第一个版本应该包含什么?
模块需要什么开发前需要确定
账户与角色注册、登录、找回账户,以及对每个服务器请求进行角色检查有哪些角色?一个人可以属于多个组织吗?
团队邀请会过期的邀请链接、席位数量、所有权转移,以及移除后立即撤销访问权限谁可以发出邀请?被移除成员的记录如何处理?
计费与套餐托管结账或订阅、经验证的回调,以及在服务器端强制执行的套餐限制每个套餐包含什么?支付失败时会怎样?
预订与排期可用时间规则、时区、缓冲时间、防重复预订机制、提醒和改期谁来设置可用时间?客户付款期间是否保留时段?
咨询与销售线索管道带垃圾信息防护的表单、从新建到成交或丢失的状态、分配、来源和授权同意记录团队实际会用到哪些状态?线索下一步流向哪里?
管理与报表搜索、记录历史、手动修正和导出团队每周查看哪些数据?谁可以编辑记录?
自定义域名主机名接入、DNS 验证、证书状态和套餐检查哪些套餐包含域名?适用哪些主机限制?
审计日志只增不改的记录,说明谁在何时更改了什么客户或审计人员必须能够追溯哪些操作?
通知电子邮件和应用内消息、模板、发送日志和用户偏好设置哪些事件通知谁?哪些可以关闭?

Dardo 使用什么技术栈?什么时候会选择其他方案?

我们的默认方案是全程使用 TypeScript:用 Astro 实现服务器端渲染的页面和交互式组件,用 Cloudflare Workers 提供托管和 API,用 Cloudflare D1 或 Postgres 存储数据,用 PostHog 做分析和实验。Superame 运行在 Astro 上,排名数据存储在 Neon Postgres 中。一种语言、一个部署目标,让小型产品易于运行,也易于交接。

当产品有需要时,我们会选择其他方案。需要整天保持打开的高密度界面,可以采用客户端 React 应用,Shiimain 原型就是这样。长时间运行的任务、大量数据处理,或者内部团队已经在使用其他框架,也会改变答案。如果上线后由您的开发人员接手代码,通常以他们的技术栈为准。

访问控制是我们首先测试的内容。OWASP 的 Top 10:2025 仍将失效的访问控制列为第一位,并指出所测试的每个应用都存在某种形式的此类问题。我们对每个请求都在服务器端强制执行权限,默认拒绝,将每次查询限定在已登录用户所属的组织范围内,并编写自动化测试,尝试读取其他客户的记录。

网页应用中的支付应该如何运作?

支付是否成功,由支付服务商在服务器端确认;从结账页返回的浏览器永远不负责确认。Dardo 已发布作品中的公开项目排行榜 Superame 就体现了这一模式。买家在 Dodo Payments 的托管结账页完成付款,因此银行卡信息不会经过应用。随后,服务商会发送带签名的回调,服务器先验证签名并核对支付详情,再增加额度。

退款和争议也遵循同样的流程。服务商的每个事件只会被处理一次,因此即使回调重复、延迟或乱序到达,也不会重复增加或扣减额度。Superame 不公布用户采用量或收入数据;它证明的是支付逻辑的构建方式,而不是销售业绩。

  • 买家在跳转前关闭了标签页,回调到达后仍会正常入账。
  • 重放或伪造的回调会被拒绝。
  • 退款或争议会准确撤销原始支付所授予的内容。
  • 套餐限制在服务器端校验,而不只是在界面中隐藏。
  • 测试密钥和正式密钥是各自独立的机密信息,绝不存放在代码仓库中。

让客户使用自己的域名

B2B SaaS 客户通常希望产品使用他们自己的网址,例如 portal.theircompany.com。Cloudflare for SaaS 通过自定义主机名来实现:Free、Pro 和 Business 套餐包含 100 个,每增加一个主机名收费 $0.10,上限为 50,000 个。通配符自定义主机名仅限 Enterprise 套餐。

客户添加一条指向你的目标地址的 CNAME 记录。根域名需要用 A 记录指向该目标,但默认不支持这种方式,而且顶级域名代理是 Enterprise 的附加功能,因此大多数客户应使用子域名。证书可通过 HTTP、TXT 或电子邮件验证,也可使用 Delegated DCV,即一条一次性记录,让 Cloudflare 自动续期证书。证书由 Let's Encrypt、Google Trust Services 或 SSL.com 签发。

围绕它的产品设计同样重要:只有付费套餐才能绑定域名,引导页面会显示需要添加的确切记录,验证状态用通俗的语言解释“等待中”和“失败”的情况,而当客户更改了 DNS 导致证书无法续期时,监控会提醒你的团队。其他托管平台的限制各不相同:Vercel 的 Hobby 套餐每个项目允许 50 个域名,Pro 和 Enterprise 不限数量,软限制分别为 100,000 和 1,000,000;Netlify 建议每个站点的域名别名不超过 50 个。

选择之前的常见疑问

网页应用或 MVP 的成本由什么决定?

成本取决于角色数量、核心工作流程的复杂程度、支付、集成,以及需要迁移多少现有数据。权限和状态比界面数量更重要:一个包含五种角色和审批环节的界面,比五个只读界面的工作量更大。我们在完成范围界定阶段后,根据书面范围报价,而不是按功能逐项计价。

开发第一个版本需要多长时间?

这取决于工作流程的明确程度、决策和内容提供的速度,以及支付服务商或客户 IT 团队等第三方是否需要批准访问权限。方案会设定里程碑,首个里程碑是核心工作流程的可运行切片。该切片验收后,再确定完整发布的日期。

Dardo 可以接手现有的代码库吗?

可以,但需要先做审查。我们会检查代码仓库、依赖项、数据模型、访问校验、部署方式以及各账户由谁控制,然后报告哪些可以保留、哪些必须先修复,以及修复还是重写更合理。在阅读代码之前,我们不会承诺保留或替换代码库。

你们开发原生 iOS 和 Android 应用吗?

不开发。Dardo 专注于网页开发,包括可以从主屏幕图标打开的可安装网页应用。如果产品依赖浏览器无法调用的设备功能、需要应用商店分发或大量离线使用,原生应用会更合适,我们也会如实告知。网页应用及其 API 仍可作为原生开发团队的后端。

代码和账户归谁所有?

归你所有。代码仓库、托管、数据库、域名、支付服务商和分析账户都以你的名义创建,或在交接时转移给你;方案中会列出无法转移的授权依赖项。Dardo 只保留你为支持工作授予的访问权限。

你们需要我们提供什么?

需要一位能在几天内回答范围问题的决策人、产品需要对接的系统的访问权限,以及工作流程所用数据和文档的真实示例。请尽早以贵公司名义开通支付服务商账户,因为服务商在启用正式支付前会审核企业资质。

上线之后会怎样?

方案中可以包含一段支持期,用于在真实用户陆续进入时处理缺陷、监控和小改动。之后的后续开发,可按月度范围约定,或作为新项目另行商定。安全更新和依赖升级并非可选项,因此无论采用哪种方式,都需要明确指定负责人。

来自博客

资料来源与延伸阅读

本页内容的资料来源,并附有原出版方提供的更多详情。

相关作品与研究

superame.lol 网站,Dardo 的项目实践案例 / 精选作品superame.lol查看项目

规划你的第一个版本

请描述客户或员工需要完成的工作流程,以及哪些人参与其中。我们会回复决定项目范围的关键问题;如果市面上已有现成工具能满足需求,我们也会坦率告知。