返回探索
指南VibeFix 编辑部更新于 2026年10月9日

不看价格页的都流失了:vibe 项目的定价与收费墙设计实战

面向一人/小团队 vibe coding 项目的定价实战:三档锚点怎么摆、诱饵效应在小项目里不被识破的用法;免费与付费的分界线(用量额度 vs 功能开关 vs 座位)按成本结构选;免卡试用 vs 先绑卡的真实转化数据;收费墙的三个正确时机与高转化文案写法;五个说明定价错了的危险信号;Stripe 价格对象、计量计费、试用转正的实战细节;附可直接抄的 Next.js 收费墙代码与发布前检查清单。

定价与收费墙设计指南封面:三档 SaaS 价格卡片与升级弹窗界面示意

先讲一个你可能正在经历的场景。你用两周 vibe 出一个 AI 简历优化工具,上线 Product Hunt 拿了 400 多个注册,Google Analytics 里用户停留时长不错,啊哈时刻也有——有人一条推文说"这玩意儿改完的简历真拿到了面试"。然后你打开 Stripe 面板:0 笔付费。不是 1 笔,是 0。

问题大概率不在产品,在你把"要钱"这件事藏得太深了。收费入口在设置页三级菜单里,定价页只有从 footer 才能点进去,免费额度给到 200 次——用户根本没机会看到价格,更没理由掏钱。不看价格页的都流失了,这句话反过来说就是:用户看不到价格,等于你没定价。

这篇指南不谈"定价策略"那种 MBA 课件,谈的是一个人或两三人小团队,给 vibe coding 项目定价和设计收费墙时,真正会被坑到的具体问题:三档价格怎么摆、免费和付费的线砍在哪、试用要不要绑卡、收费墙什么时候弹、哪些数据说明定价错了,以及 Stripe 里那些文档不会告诉你的实战细节。最后附一段可以直接抄的 Next.js 收费墙代码。

定价心理学的三把刀,怎么砍在小项目上

定价心理学在大公司是 AB 测试跑出来的,在小项目里只能靠抄结论。好消息是结论很稳定,抄对三条就够了。

第一把刀:锚点,最贵那档不是拿来卖的

三档定价里,最高档的存在意义是让中间档显得便宜。这不是理论,是 POS 机前反复验证过的事实:三档布局下,中间档通常拿走 55% 到 65% 的付费用户;改成两档,便宜档会吃掉 80% 以上的选择——因为用户失去了参照系,只能选"不心疼的那个"。

给 vibe 项目一个可以直接抄的起手式:$9 / $29 / $79,或者人民币语境的 ¥19 / ¥59 / ¥129。$79 那档(Team/Scale 之类的名字)可以功能堆得夸张一点,没关系,它大概率一个月卖不出几单,它的 KPI 是让 $29 看起来"就贵了 20 块,但东西多一倍"。

有个反直觉的判断:一人项目最大的定价错误,几乎永远是定便宜了,而不是定贵了。$5/月的产品,support 工单量和 $29/月的产品差不多——用户不会因为便宜就少找你。但 $5 吸引来的是价格敏感型用户,流失率是 $29 用户的 2 到 3 倍,客诉还更多。你省下的不是用户的钱,是你自己的命。

第二把刀:诱饵效应,小项目慎用价格诱饵,多用功能诱饵

经典诱饵长这样:单月 $29,包年 $290,包年+优先支持 $349。中间那个"包年 $290"就是诱饵,它的存在只是为了让 $349 看起来"加 59 块多一堆东西,真划算",顺带让单月 $29 显得"不精明"。

但在小项目里,价格诱饵很容易被识破——你的用户就几百人,个个精得像猴,看到"明显不划算的中间档"第一反应不是"哇划算",而是"这作者在玩我"。更安全的做法是功能诱饵:中间档和低档价格接近,但中间档多一个用户正好想要的功能(比如"导出 PDF"或"API 访问")。用户会觉得是自己"算明白了",而不是被算计了。被算计的感觉,是小产品口碑的慢性毒药。

第三把刀:尾数 9,只在低价位灵

$29 和 $30 的差别,在 $50 以下的价格带能带来 3% 到 8% 的转化提升,这是真实存在的"左位效应"。但价格一旦过 $200,规律就反过来了:$299 看起来像促销,$300 看起来像"正经服务"。给企业客户看的 Team 档,整数价反而显得专业、可报销。

所以抄作业要抄全:低档用 9 尾($9/$29),高档用整数($79/$300)。半吊子的"全档 9 尾"等于把高档也做成了地摊感。

免费和付费之间,那条线到底砍在哪

免费额度是 vibe 项目最烧钱的地方——注意,是"烧钱",不是"花钱"。你的免费用户每调一次 GPT-4o,每生成一张图,都是从你的 API 账单里直接扣。分界线画错了,等于你花钱请用户来薅你。

分界线有三种画法,选哪种不看喜好,看你的成本结构:

画法适合什么样的产品典型形态致命坑
用量额度每次使用都有明确 AI/算力成本每月 100 次生成 / 1000 credits额度给太大,用户住下来不走了
功能开关边际成本接近零的工具型产品免费版不能导出、不能用 API锁错功能,免费版直接没法用
座位数协作、多人用的产品免费 3 个席位起一人项目早期根本没人需要协作

判断标准就一句话:免费额度必须让用户摸到啊哈时刻,但不能让他住下来。AI 生图工具,免费 20 张足够让用户看到"这质量确实行",给 200 张他就把你的免费额度当生产力用了。SaaS 写作工具,免费 3 篇深度改写能让人上瘾,免费无限改写你就是在做慈善。

还有个更隐蔽的坑:额度给太大,养的不只是用户,还有爬虫和套壳党。你的免费 API 配额,是别人"借"你服务器做竞品的完美燃料。额度设计里一定要加两道锁——单日上限(防爆刷)和注册门槛(邮箱验证起步,别让脚本裸奔)。

用量额度和功能开关可以叠加,这是小项目最常见的组合:免费版每月 100 credits,且不能导出高清图。叠加的好处是给了用户两个付费理由:用完了,和想要更好的。只给一个理由,等于把一半转化机会扔了。

试用期:免卡还是绑卡,别凭感觉拍脑袋

这是定价设计里争论最多的题,但数据其实给得很干脆。两条路线的真实表现大概是这样:

  • 先绑卡再试用:试用到付费的转化率 40% 到 60%,非常漂亮。但代价是注册漏斗在"输入信用卡"这一步直接掉 70% 到 80%。你筛掉了所有"看看再说"的人。
  • 免卡试用:注册量是绑卡路线的 3 到 5 倍,但试用到付费只有 15% 到 25%。漏斗底下全是"用完就走"的观光客。

怎么选,看你缺什么。一人项目早期最缺的是用户池和反馈,不是那几十美金的 MRR——选免卡,先把 500 个试用用户攒出来,从里面筛出 80 个付费的,顺手拿到 200 条反馈。等你的自然流量稳定、产品啊哈时刻足够强(用户 10 分钟内就能"哇"出来),再切到绑卡试用,把观光客挡在门外。

试用时长也有讲究。14 天是行业惯性,但对大多数 vibe 工具来说,7 天足够了——工具的价值验证不需要两周。30 天试用是最差的选择:用户第 3 天忘了你,第 30 天收到"试用结束"邮件时一脸懵,转化率反而最低。反直觉但真实:试用期越短,转化率越高。紧迫感是免费的,比你写的任何催付文案都管用。

还有一个细节:试用结束前 3 天一定要发一封邮件,标题别写"您的试用即将结束"这种公事公办的废话,写"你的 100 次额度还剩 12 次,周四清零"。把"结束"翻译成用户能感知的损失,打开率和转化率完全不是一个量级。

收费墙什么时候跳出来:时机比文案重要十倍

先说一个残酷的排序:在收费墙这件事上,时机 > 触发条件 > 文案 > 设计。把弹窗做得再漂亮,在用户注册第一天就弹出来,转化率也是 0。时机错了,后面全白搭。

收费墙应该出现的三个时刻,记住这个口诀:爽完、见底、被拦。

  • 爽完——用户刚体验完啊哈时刻。比如 AI 简历工具,用户看到改写后的简历、心里"哇"了一声,这时候弹"保存这份简历需要升级",转化率是冷启动弹窗的 3 到 5 倍。情绪峰值是付费意愿的峰值,别浪费。
  • 见底——免费额度用完的那一刻。注意是"用完的那一刻",不是"用完三天后"。用户第 101 次点击生成按钮,弹窗说"本月 100 次额度已用完,升级继续",这是天经地义的收费。拖三天再发邮件提醒,人家早去竞品那儿了。
  • 被拦——用户主动去点一个付费功能。点"导出 PDF"被拦、点"API 访问"被拦,这种"我想要但被拦住"的瞬间,用户是带着明确意图撞上收费墙的,付费转化率最高。反过来,用户没想干这事你硬推,叫骚扰。

时机对了,文案才有意义。文案只有一条铁律:把"升级到 Pro"翻译成用户正在做的事。对比一下:"升级到 Pro,解锁无限生成" vs "继续生成第 101 张图,每月 $29"。前者是产品视角的功能罗列,后者是用户视角的动作延续。实测里,动作导向的文案比功能罗列的文案转化率高 30% 到 50%——因为用户不需要再脑内翻译一遍"这跟我有什么关系"。

还有三个文案细节,一人团队常年踩坑:第一,价格要写在按钮上("继续生成 · $29/月"),别让用户点进去才看到价格,多一次跳转多 20% 流失;第二,给年付一个一眼看懂的折扣("$29/月,或 $290/年,省两个月"),别写"年付 8.3 折"这种需要心算的;第三,弹窗一定要有关闭按钮,而且关闭后 7 天内别再弹——追着屁股要钱的样子,比不收费更劝退。

读懂五个危险信号:你的定价错了

定价不是发布那天定完就完事了,它是个需要读数据的活。下面五个信号,出现任意两个,说明你的定价已经错了,别犹豫,改。

信号一:定价页访问到注册的转化率低于 2%。健康的小产品这个数字一般在 3% 到 8%。低于 2% 说明两件事之一:价格把人吓跑了,或者定价页没讲清"这钱花得值"。先别急着降价,把定价页的价值陈述重写一遍——很多时候问题不在数字,在数字旁边的字。

信号二:付费用户 90 天内流失超过 40%。这不是获客问题,是价值错位:用户付钱时期望的东西,产品没给够。常见病因是免费版太慷慨——用户付费后发现"跟免费版也没差多少",下个月就跑了。解法是反向的:不是把付费版做更好,是把免费版砍得更狠一点。

信号三:support 工单里一半在问"能不能便宜点""有没有免费版"。这说明你的分界线画错了地方——用户想要的核心价值被你锁在了付费墙后面,而免费版给的东西人家不稀罕。分界线应该锁"进阶用法",而不是"核心价值"。核心价值锁死了,用户连啊哈时刻都摸不到。

信号四:年付比例低于 10%。健康的订阅产品,年付用户一般占 20% 到 40%。低于 10% 说明用户不信任你——不是不信任产品,是不信任"你明年还在不在"。一人项目的解法很实在:年付页面上写清楚退款政策("30 天无理由退款"),比任何"限时优惠"都管用。信任是小团队最稀缺的货币。

信号五:升档率几乎为零。所有人都买最低档,没人往上升。这说明你的档位之间没有"阶梯感"——中间档和低档的差距,用户感知不到。修法不是加功能,是把中间档的差异化功能放到用户每天都能看到的地方:比如低档用户每次导出时,都看到"Pro 用户可导出高清 PDF"的提示。看不见的价值等于没有价值。

Stripe 实战:文档不会告诉你的定价细节

Stripe 的文档会教你调 API,但不会教你别踩坑。下面这几个,是小项目计费里最常见的翻车点。

一个档位,一个 Price 对象,别拿 coupon 去模拟档位。coupon 是给促销用的,档位是给订阅用的。混用之后,你的 MRR 报表、流失分析全是乱的,年底对账想死的心都有。年付和月付是两个独立的 Price——别在代码里写"月付价 × 12 × 0.8"动态算,动态算价等于主动放弃 Stripe 的发票、税务和账单展示能力。Price 一旦创建金额不可改,但你随时可以新建一个,这就是它被设计成不可变的原因。

计量计费(metered billing)听起来很美,小项目先别碰。它适合 API 转售型产品,但"账单不可预测"是用户投诉之王。先固定额度跑三个月,等你摸清用户的用量分布(中位数、P90 在哪),再决定要不要上计量。过早引入计量,等于把定价复杂度转嫁给用户。

试用转正的关键不在 trial_period_days,在 trial_will_end 这个 webhook。订阅创建时设 7 天试用,Stripe 会在试用结束前 3 天触发 trial_will_end——这是你发"剩余额度提醒"邮件的官方时机,比你自己算日期靠谱。另外两个必须接的事件:checkout.session.completed(支付成功,激活订阅、发欢迎邮件)和 invoice.payment_failed(扣款失败,先给 7 天宽限期再降级,别当天就动手——误伤一个真用户的代价,比多养几天白嫖党贵得多)。

本地调试用 Stripe CLI 的 test clock,别真等 7 天。stripe listen --forward-to localhost:3000/api/webhooks/stripe 把事件打到本地,test clock 可以把一单订阅的时间拨到"试用第 6 天",完整走一遍转正、提醒、扣款失败的链路。上线前没跑过这条链路的项目,第一个月一定会在凌晨三点被叫醒。

下面是一段可以直接抄的 Next.js 实现:价格全部收敛到一个配置文件,收费墙是一个独立组件,额度见底时渲染,升级走 Stripe Checkout(支付页不用自己做,PCI 合规也是 Stripe 的事)。

// lib/pricing.ts —— 价格是配置,不是散落在组件里的魔法数字
// 先在 Stripe Dashboard 建好 Product + Price,把 price id 填进来
export const PLANS = [
  {
    id: "starter",
    name: "Starter",
    priceId: "price_1S...", // 月付 $9 的 Price id
    amount: 900,            // 美分,前端展示用
    credits: 100,           // 每月额度
    features: ["每月 100 次 AI 生成", "标清导出", "邮件支持"],
  },
  {
    id: "pro",
    name: "Pro",
    priceId: "price_1S...", // 月付 $29
    amount: 2900,
    credits: 1000,
    highlighted: true,      // 定价页高亮中间档:锚点效应的代码版
    features: ["每月 1000 次 AI 生成", "高清 PDF 导出", "API 访问", "优先支持"],
  },
  {
    id: "scale",
    name: "Scale",
    priceId: "price_1S...", // 月付 $79:锚点档,卖不好也没关系
    amount: 7900,
    credits: 10000,
    features: ["每月 10000 次 AI 生成", "团队协作(5 席位)", "专属客服"],
  },
] as const;

export type PlanId = (typeof PLANS)[number]["id"];

// 免费档:额度只够摸到啊哈时刻,不够住下来
export const FREE_CREDITS = 20;
export const TRIAL_DAYS = 7;
// components/PaywallGate.tsx —— 额度见底时渲染,平时返回 null
"use client";
import { useState } from "react";
import { PLANS } from "@/lib/pricing";

export function PaywallGate({
  remaining,
  actionLabel,
}: {
  remaining: number;
  actionLabel: string; // 写用户正在做的事:"继续生成第 101 张图"
}) {
  const [loading, setLoading] = useState(false);
  if (remaining > 0) return null;

  async function upgrade(planId: string) {
    setLoading(true);
    const res = await fetch("/api/checkout", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ planId }),
    });
    const { url } = await res.json();
    window.location.href = url; // 跳 Stripe Checkout,不自己碰卡号
  }

  return (
    <div className="paywall">
      <h3>本月免费额度已用完</h3>
      <p>{actionLabel},升级后继续——随时可取消。</p>
      {PLANS.map((p) => (
        <button key={p.id} onClick={() => upgrade(p.id)} disabled={loading}>
          {p.highlighted ? "最受欢迎 · " : ""}
          {p.name} · ${(p.amount / 100).toFixed(0)}/月
        </button>
      ))}
    </div>
  );
}

// /api/checkout/route.ts 只做一件事:按 planId 找到 priceId,
// 建一个 trial_period_days=TRIAL_DAYS 的 Checkout Session,
// 用户绑卡但 7 天内不扣钱——免卡试用和绑卡试用的折中方案。

发布前抄一遍:定价检查清单

上线前花 20 分钟,把下面 10 条逐条打勾。任何一条没做到,定价页都等于没做。

  1. 定价页从首页一次点击可达,footer 也有入口——别让用户找价格像寻宝。
  2. 三档价格,中间档高亮,最高档功能堆满当锚点。
  3. 价格写在升级按钮上("$29/月"),不藏在跳转之后。
  4. 免费额度经过实测:找 3 个新用户走完流程,确认额度刚好够摸到啊哈时刻。
  5. 单日上限 + 邮箱验证已上线,脚本刷不动你的免费额度。
  6. 试用 7 天,结束前 3 天自动发"剩余额度"提醒邮件(接 trial_will_end)。
  7. 收费墙只出现在三个时刻:爽完、见底、被拦。注册当天不弹任何付费弹窗。
  8. 弹窗有关闭按钮,关闭后 7 天内不再打扰同一个用户。
  9. 年付折扣一眼看懂("省两个月"),退款政策写清楚("30 天无理由")。
  10. webhook 接全了:checkout.session.completed、trial_will_end、invoice.payment_failed(7 天宽限)、customer.subscription.deleted。

最后说句大实话:定价不是数学题,是心理学加账本。心理学那部分,上面这篇基本讲完了;账本那部分,只能你自己每个月打开 Stripe 面板看一次——看流失、看升档、看 support 工单在问什么。vibe coding 让一个人两周做出产品,但"让一个人养活一个产品",靠的是定价。产品是船,定价是帆,别只造船不挂帆。

浏览项目广场发布你的项目

相关文章

一只手拿着信用卡在一台刷卡机上支付的近景照片,象征在线支付接入主题
指南
支付是 vibe 项目里第一个「不能 vibe」的地方:一份手写级接入实战

Zephos 团队在一个 Agent 搭起来的 Next.js + Supabase + Stripe 笔记应用里埋了 16 个上线杀手级问题,其中 2 个和支付有关:webhook 没验签、拿客户端传的 plan 直接开 pro。这篇指南把这两个坑拆成一套可落地的实战方法:webhook 签名三件套、服务端唯一真相源、订阅状态机、测试时钟和沙盒到生产 checklist。核心判断:和钱相关的逻辑必须手写或逐行审计,agent 只能写样板。

StripeSupabaseAI 编程实践
网站界面上的产品反馈组件与用户评论区的特写照片
指南
别让用户对着空气说话:vibe 项目的用户反馈闭环实战

vibe coding 上线快,然后反馈就死在了散落的私信和冷清的频道里。这套实战方法专为一人团队设计:一个主入口加一个逃生通道、30 秒提交原则、修 bug / 加功能 / 不做的三分法、轻量 RICE 打分、changelog 来源回填、可直接照抄的三句话回复模板、差评四步处理流程、30 分钟月度复盘 SOP,并附可直接运行的反馈组件 + Discord webhook 代码示例。

用户研究产品策略独立开发
笔记本电脑屏幕上显示网站数据分析图表,象征 vibe 项目的 SEO 与流量增长
指南
以前是被搜索引擎看到,现在是被 Agent 读懂:vibe 项目的 SEO/AEO 实战手册

流量正在从搜索框搬到 AI 答案框里。vibe coder 一周做出产品,却没人发现——这篇指南把 SEO 基本盘(sitemap、JSON-LD、Core Web Vitals)和 AI 发现层新玩法(llms.txt、每页 Markdown 版本、FAQ schema、Agent 可读的定价与 API 文档)拆成可落地的 30 天清单。核心判断:文档化程度决定你的产品在 agent 经济里的上限。

增长与营销产品策略独立开发