Stripe 在开发者体验方面做对了什么,以及 Kinde 正在发生哪些变化
2011年,Stripe 将某些东西神圣化了:开发者的时间。
它的承诺很简单:只需几分钟,而不是几周,即可为您的应用程序添加支付功能。
Stripe的魅力不仅仅在于它的API,还在于它的开发者体验(DX):
- 可复制的代码片段
- 即时测试卡
- 托管结账页面
- Webhook 浏览器
- 精美的文档
Stripe并没有把开发者当作守门人,而是把他们当作主要客户。
这个想法改变了一切。
如今,新一代基础设施创业公司秉承着同样的理念。但如今的挑战更大:API 更加复杂,身份验证不再是可选项,“平台”的功能涵盖了用户界面、计费和访问控制等多个方面。
Kinde是致力于填补这一市场空白的公司之一。
如果 Stripe 完善了支付流程,那么Kinde正在尝试在身份、访问和增长基础方面也做到这一点——为技术栈中截然不同的层面带来全新的开发体验。
这篇文章详细分析了 Stripe 对开发者来说行之有效的原因,大多数 DX 平台的不足之处,以及Kinde如何在不让人抓狂的情况下悄然发展出一种新的模式来交付对增长至关重要的功能。
Stripe 的操作指南
我们先来探讨一下为什么 Stripe 会变成一个动词。
Stripe的DX之所以成功,是因为它实现了以下五件事:
1. 首次使用 = 首次获胜
你可以:
- 打开文档
- 复制 curl 请求
- 立即查看效果
几分钟内就得到了有效的回复。
2. 托管式,而不仅仅是无头式
Stripe并没有说“这是API,祝你好运”。
他们给了你:
- 托管结账
- 托管客户门户
- 托管 Webhook 控制面板
你可以深度融合,也可以浅度融合。这种选择范围至关重要。
3. 视觉效果 + API
Stripe 将低代码流程与真正的 API 相结合:
- 在仪表板中构建产品
- 通过 API 获取
- 实时查看事件日志
它尊重前端和后端开发人员。
4. 共享心智模型
Stripe 并没有发明“产品”、“计划”、“发票”或“订阅”这些概念。它只是对企业已有的认知进行了整合。
DX 的关键不在于耍小聪明,而在于与直觉相符。
5. 美观实用的文档
Stripe 的文档简洁明了、版本控制清晰、交互式且可直接复制粘贴。代码片段支持语言切换。错误代码可搜索。
它尊重你的时间。
如今大多数数字体验工具的故障点在哪里?
快进到2025年。
新平台试图“成为 X 领域的 Stripe”——用于身份验证、分析、使用情况计量和用户注册。
但他们中的大多数都无法复制同样的信任,因为:
- 文档无法运行。即使是“Hello World”示例也需要在三个不同的控制面板上进行设置。
- API 隐藏在销售环节背后,或者隐藏在模糊不清的 SDK 背后。
- 用户界面与后端不匹配。你在控制面板中创建了一些内容,但无法在代码中读取它们。
- 数字化转型被抽象概念所掩盖。
这就是金德吸引我的原因。
他们不仅仅是在复制 Stripe 精致的用户界面。他们正在重新思考如何将核心业务逻辑——身份验证、角色、定价、使用情况——融入到你的第一个可用产品中,而不是作为产品的最后附加功能。
我创建的产品:Learnflow AI
几周前,我开发并推出了Learnflow AI,这是一款以语音为先导的 AI 学习工具。
它使用了:
- Vapi的语音人工智能
- 凸面实时后端
- Next.js用于前端
- Kinde 用于身份验证、计划和门禁
我需要的不仅仅是登录框。我需要:
- 允许用户在注册时选择免费版或专业版。
- 跟踪使用情况(每次语音会话的积分)
- 按计划查看大门特征
- 情境上的助推升级
Kinde 实现了所有这些功能,而无需自定义后端层进行身份验证或计费。
让我来教你。
Kinde 作为开发者原语
Kinde 的 SDK 很简洁,但其托管流程才是使其类似于 Stripe 的原因:
1.托管定价页面
与其自己构建定价界面和结账流程:
- 我将用户重定向到 Kinde 托管的价格表。
- 然后 Kinde 处理了套餐选择和结账事宜。
- 成功后,元数据将被写入用户配置文件。
2. 规划会话元数据
来自服务器:
const { profile } = useUserContext();
const { isAuthenticated, getAccessTokenRaw } = useKindeAuth();
const [entitlements, setEntitlements] = useState<EntitlementsData | null>(null);
if (!isAuthenticated) {
return <div>You are not logged in, please log in.</div>;
}
useEffect(() => {
const fetchEntitlements = async () => {
const accessToken = await getAccessTokenRaw();
try {
const res = await fetch(`${process.env.NEXT_PUBLIC_KINDE_ISSUER_URL}/account_api/v1/entitlements`, {
headers: {
Authorization: `Bearer ${accessToken}`,
},
cache: "no-store",
});
const data = await res.json();
console.log("Entitlements payload:", data);
setEntitlements(data as EntitlementsData);
} catch (error) {
console.error("Error fetching entitlements:", error);
}
};
fetchEntitlements();
}, [getAccessTokenRaw]);
let plan: "free" | "pro" = "free";
const plans = entitlements?.data?.plans ?? [];
console.log("Plans:", plans);
if (plans.some((p: any) => p.key === "pro")) {
plan = "pro";
} else if (plans.some((p: any) => p.key === "free")) {
plan = "free";
}
console.log("Plan:", plan);
这种强大的用户界面门控和后端逻辑:
if (plan === 'free') throw new Error('Upgrade to access this tutor')- 根据计划显示/隐藏组件
信任设计:数字化转型作为产品原则
如果说我从 Kinde + Convex + Vapi 这三者结合使用中学到了什么,那就是:
DX 不是一个图层,它本身就是产品。
开发者信赖 Stripe,因为他们第一次尝试就成功了。
他们会出于同样的原因信任 Kinde——如果它能帮到你:
- 第一天就制定了船舶航行计划
- 无需后端粘合即可添加计费功能
- 用两行代码强制执行访问权限,而不是二十行。
Stripe 告诉我们,支付应该是一件枯燥乏味的事情。
Kinde可能会对定价和访问权限采取同样的做法。
最后想说的话
最好的DX并不令人眼花缭乱。
它消失了。
Stripe 让支付环节变得不那么重要,这样你就可以专注于产品开发。
Kinde也在身份、访问和定价方面做同样的事情。
如果你正在打造一个雄心勃勃的项目:
- 带有宿主基元的拾取工具
- 从第一天起就设计升级路径
- 让获取途径和价值显而易见
数字化转型(DX)的关键不在于速度,而在于信任。
信任始于你们的第一个电话。
轮到你了
哪款基础设施工具给您带来了出色的开发者体验?
是什么让你茅塞顿开?
请在评论区告诉我。
文章来源:https://dev.to/sholajgede/what-stripe-got-right-about-dev-experience-and-what-kinde-is-evolving-20p2