English العربية Deutsch Español Français हिन्दी Italiano 日本語 한국어 Português (BR) Русский Türkçe 中文

模块 E:执行手册

STREETS 开发者收入课程 — 付费模块 第9-10周 | 6课 | 交付物:你的第一个产品,已上线并接受付款

"从创意到部署只需48小时。不要过度思考。"


你有了基础设施(模块 S)。你有了护城河(模块 T)。你有了收入引擎的设计方案(模块 R)。现在是发布的时候了。

这个模块是大多数开发者永远到达不了的地方——不是因为它难,而是因为他们还在打磨代码库、重构架构、调整配色方案。他们在做除了真正重要的事情以外的一切:把产品摆在能付费的人面前。

发布是一项技能。像任何技能一样,练习越多越容易,拖延越久越难。等得越久,就越难开始。发布得越多,就越不害怕。你的第一次发布会很粗糙。这就是重点。

在这两周结束时,你将拥有:

没有假设。没有"理论上"。一个真实的产品,在互联网上运行,能够产生收入。

即使你还没有完成模块 R,你仍然可以使用本模块——但有一个收入引擎设计方案会让48小时冲刺顺畅得多。

让我们开始构建。


第1课:48小时冲刺

"周六早上到周日晚上。一个产品。零借口。"

为什么是48小时

帕金森定律说工作会膨胀以填满可用时间。给自己6个月来做一个产品,你会花5个月犹豫不决,1个月在压力下拼命赶工。给自己48小时,你就会果断决策、狠心砍需求、发布真实的东西。

48小时的限制不是为了构建完美的东西。而是为了构建存在的东西。存在永远胜过完美,因为上线的产品会产生数据——谁访问了、谁点击了、谁付费了、谁抱怨了——而数据告诉你下一步该做什么。

我研究过的每一个成功的开发者产品都遵循这个模式:快速发布、快速学习、快速迭代。失败的呢?它们都有漂亮的README文件,但用户数为零。

以下是你的分钟级操作手册。

第1天 — 周六

上午时段(4小时):验证需求

在写任何一行代码之前,你需要证据表明除了你自己之外还有人想要这个东西。不是确定性——是证据。两者的区别很重要。确定性是不可能的。证据在4小时内可以获得。

步骤 1:搜索量检查(45分钟)

访问以下来源,搜索你的产品创意和相关术语:

你在寻找的是:

好的信号:
- 核心关键词月搜索量500+
- 过去12个月呈上升趋势
- 多个"其他人还在问"的问题没有好的答案
- 竞争度低的相关长尾关键词

坏的信号:
- 搜索兴趣下降
- 搜索量为零(没人在找这个)
- 第一页被大公司主导
- 搜索词没有变化(太窄了)

真实例子:假设你的模块 R 收入引擎创意是"面向SaaS仪表盘的Tailwind CSS组件库"。

搜索: "tailwind dashboard components" — 月搜索2,900,上升趋势
搜索: "tailwind admin template" — 月搜索6,600,稳定
搜索: "react dashboard template tailwind" — 月搜索1,300,上升
相关: "shadcn dashboard", "tailwind analytics components"

结论: 需求强劲。多个关键词角度。继续推进。

另一个例子:假设你的创意是"基于Rust的日志文件匿名化工具"。

搜索: "log file anonymizer" — 月搜索90,持平
搜索: "anonymize log files" — 月搜索140,持平
搜索: "PII removal from logs" — 月搜索320,上升
相关: "GDPR log compliance", "scrub PII from logs"

结论: 利基但在增长。"PII removal"角度的搜索量
比"anonymizer"角度更大。重新定位你的定位方向。

步骤 2:社区帖子挖掘(60分钟)

去开发者提需求的地方,搜索你的问题领域:

你要记录的是:

## 帖子挖掘结果

### 帖子 1
- **来源:** Reddit r/reactjs
- **URL:** [链接]
- **标题:** "Is there a good Tailwind dashboard kit that isn't $200?"
- **点赞数:** 147
- **评论数:** 83
- **关键引用:**
  - "Everything on the market is either free and ugly, or $200+ and overkill"
  - "I just need 10-15 well-designed components, not 500"
  - "Would pay $49 for something that actually looks good out of the box"
- **要点:** 对$200+有价格敏感度,在$29-49有付费意愿

### 帖子 2
- ...

至少找到5个帖子。如果你找不到5个人们在你产品领域寻求解决方案的帖子,那是一个严重的警告信号。要么需求不存在,要么你在用错误的词搜索。在放弃这个创意之前,尝试不同的关键词。

步骤 3:竞品调研(45分钟)

搜索已经存在的产品。这不是在打击你——而是在验证。有竞争者意味着有市场。没有竞争者通常不意味着你发现了蓝海,而是意味着没有市场。

记录每个竞争者:

## 竞品调研

### 竞品 1: [名称]
- **URL:** [链接]
- **价格:** $XX
- **他们做得好的地方:** [具体事项]
- **他们的不足之处:** [来自评论/帖子的具体投诉]
- **他们的评价:** [查看G2、ProductHunt评论、Reddit提及]
- **你的切入角度:** [你会有什么不同]

### 竞品 2: [名称]
- ...

金矿在"他们的不足之处"。每一条对竞品的投诉都是对你产品的功能需求。人们在字面意义上告诉你该做什么以及该收多少钱。

步骤 4:"10个人愿意付费"测试(30分钟)

这是最后的验证关卡。你需要找到至少10个人愿意为此付费的证据。不是"表达了兴趣"。不是"说很酷"。是愿意付费。

证据来源:

如果你通过了这个测试:继续。去做。

如果你没通过这个测试:转换角度,而不是整个创意。需求可能存在于相邻的空间。在放弃之前尝试不同的定位。

说实话: 大多数开发者完全跳过验证,因为他们想写代码。他们会花200小时构建没人要的东西,然后纳闷为什么没人买。这4小时的调研将节省你196小时的徒劳。不要跳过这步。代码是容易的部分。

下午时段(4小时):构建MVP

你已验证了需求。你有了竞品研究。你知道人们想要什么以及现有解决方案缺少什么。现在构建解决核心问题的最小版本。

3功能法则

你的v0.1恰好有3个功能。不是4个。不是7个。3个。

如何选择:

  1. 你的产品做的那一件事是什么?(功能1 — 核心)
  2. 什么让它可用?(功能2 — 通常是认证、保存/导出或配置)
  3. 什么让它值得付费选择而非替代品?(功能3 — 你的差异化优势)

其他所有东西都放进"v0.2"列表,这个周末不碰。

真实例子 — Tailwind仪表盘组件库:

  1. 核心: 12个生产级仪表盘组件(图表、表格、统计卡片、导航)
  2. 可用性: 带实时预览的复制粘贴代码片段
  3. 差异化: 内置暗色模式,组件设计为协同工作(不是随机拼凑的集合)

真实例子 — PII日志清理CLI工具:

  1. 核心: 检测并清除日志文件中的PII(邮件、IP、姓名、SSN)
  2. 可用性: 作为CLI管道工作(cat logs.txt | pii-scrub > clean.txt
  3. 差异化: 可配置的规则文件,自动处理15+种日志格式

搭建项目脚手架

用LLM来加速你的工作,而不是替代。以下是实用工作流:

# 搭建Web应用脚手架(SaaS工具、带文档站的组件库等)
pnpm create vite@latest my-product -- --template react-ts
cd my-product
pnpm install

# 添加Tailwind CSS(开发者产品最常用)
pnpm install -D tailwindcss @tailwindcss/vite

# 如果需要多页面,添加路由
pnpm install react-router-dom

# 项目结构 — 48小时构建保持扁平
mkdir -p src/components src/pages src/lib
# 搭建CLI工具脚手架(用于开发者工具)
cargo init my-tool
cd my-tool

# CLI工具常用依赖
cargo add clap --features derive    # 参数解析
cargo add serde --features derive   # 序列化
cargo add serde_json                # JSON处理
cargo add anyhow                    # 错误处理
cargo add regex                     # 模式匹配
# 搭建npm包脚手架(用于库/工具)
mkdir my-package && cd my-package
pnpm init
pnpm install -D typescript tsup vitest
mkdir src

构建的LLM工作流

不要让LLM构建整个产品。那会产生通用的、脆弱的代码。相反:

  1. 编写架构:文件结构、数据流、关键接口
  2. LLM生成模板代码:重复的组件、工具函数、类型定义
  3. 编写核心逻辑:让你的产品与众不同的部分
  4. LLM生成测试:单元测试、边界情况、集成测试
  5. 审查和编辑所有内容:你的名字写在这个产品上

编码时的并行工作:打开第二个LLM对话窗口,让它起草你的着陆页文案、README和文档。你将在晚上编辑这些,但初稿会准备好。

时间纪律

下午 2:00 — 功能 1(核心功能):2小时
           如果到下午4点还不能工作,砍需求。
下午 4:00 — 功能 2(可用性):1小时
           保持简单。打磨的事以后再做。
下午 5:00 — 功能 3(差异化优势):1小时
           这是让你值得付费的部分。集中精力在这里。
下午 6:00 — 停止编码。不需要完美。

常见错误: "在我停之前再加一个功能。"这就是周末项目变成月级项目的方式。3个功能就是你的范围。如果在构建过程中想到一个好主意,写在v0.2列表上然后继续前进。你可以在有付费客户后下周再加。

晚间时段(2小时):编写着陆页

你的着陆页只有一个任务:说服访客付费。它不需要漂亮。它需要清晰。

5段式着陆页

每个成功的开发者产品着陆页都遵循这个结构。不要重新发明轮子:

段落 1:标题 + 副标题
  - 用8个词或更少描述它做什么
  - 它面向谁,他们能获得什么结果

段落 2:问题
  - 目标客户能认同的3个痛点
  - 使用你从帖子挖掘中获得的他们自己的话

段落 3:解决方案
  - 产品截图或代码示例
  - 3个功能分别对应上面的3个痛点

段落 4:定价
  - 一个或两个套餐。v0.1保持简单。
  - 如果是订阅制,提供年付选项。

段落 5:CTA(行动号召)
  - 一个按钮。"开始使用"、"立即购买"、"下载"。
  - 重复核心利益。

真实文案示例 — Tailwind仪表盘套件:

# 段落 1
## DashKit — 生产级 Tailwind 仪表盘组件
几小时而非几周发布你的SaaS仪表盘。
12个复制粘贴组件。暗色模式。$29。

# 段落 2
## 问题
- 通用UI套件给你500个组件但零一致性
- 从零构建仪表盘UI需要40+小时
- 免费选项看起来像2018年的Bootstrap

# 段落 3
## 你获得什么
- **12个组件** 设计为协同工作(不是随机集合)
- **暗色模式** 内置 — 一个prop切换
- **复制粘贴代码** — 无需npm install,无依赖,无锁定
[组件示例截图]

# 段落 4
## 定价
**DashKit** — $29 一次性付款
- 全部12个组件及源代码
- 12个月免费更新
- 可用于无限项目

**DashKit Pro** — $59 一次性付款
- DashKit全部内容
- 8个完整页面模板(分析、CRM、管理、设置)
- Figma设计文件
- 优先功能请求

# 段落 5
## 这个周末就发布你的仪表盘。
[购买 DashKit — $29]

真实文案示例 — PII日志清理工具:

# 段落 1
## ScrubLog — 秒级清除日志文件中的PII
你的日志的GDPR合规。一条命令。

# 段落 2
## 问题
- 你的日志包含不应该存储的邮件、IP和姓名
- 手动脱敏需要几小时且容易遗漏
- 企业级工具月费$500且需要博士学位才能配置

# 段落 3
## 工作原理
```bash
cat server.log | scrublog > clean.log

段落 4

定价

Personal — 免费

Pro — $19/月

段落 5

别再存储你不需要的PII了。

[获取 ScrubLog Pro — $19/月]


**文案的LLM工作流:**

1. 把竞品调研和帖子挖掘结果输入给LLM
2. 让它用5段式模板起草着陆页文案
3. 无情地编辑:把每个模糊的表述替换成具体的
4. 大声朗读。如果任何句子让你尴尬,就重写。

**构建着陆页:**

在48小时冲刺中,不要从零构建自定义着陆页。使用以下之一:


- **你的产品自身的站点** — 如果是Web应用,把着陆页做成未登录首页
- **Astro + Tailwind** — 静态站点,2分钟部署到Vercel,极快
- **Next.js** — 如果你的产品已经是React,添加一个营销页面路由
- **Framer** (https://framer.com) — 可视化构建器,导出干净代码,有免费版
- **Carrd** (https://carrd.co) — $19/年,极简单页站点

```bash
# 最快路径:Astro静态站点
pnpm create astro@latest my-product-site
cd my-product-site
pnpm install
# 添加Tailwind
pnpm astro add tailwind

周六结束前你应该有一个带文案的着陆页。不需要自定义插画。不需要动画。需要清晰的文字和一个购买按钮。

第2天 — 周日

上午时段(3小时):部署

你的产品需要在互联网上通过真实URL上线。不是localhost。不是带随机哈希值的Vercel预览URL。一个真实的域名,有HTTPS,可以分享,人们可以访问。

步骤 1:部署应用(60分钟)

根据你构建的内容选择部署平台:

静态站点 / SPA(组件库、着陆页、文档站点):

# Vercel — 静态站点和Next.js的最快路径
pnpm install -g vercel
vercel

# 它会问你一些问题。全部选是。
# 你的站点大约60秒后就上线了。

带后端的Web应用(SaaS工具、API服务):

# Railway — 简单,有不错的免费套餐,支持数据库
# https://railway.app
# 连接你的GitHub仓库并部署。

# 或 Fly.io — 更多控制权,全球边缘部署
# https://fly.io
curl -L https://fly.io/install.sh | sh
fly launch
fly deploy

CLI工具 / npm包:

# npm注册表
npm publish

# 或通过GitHub Releases分发二进制文件
# Rust项目使用cargo-dist
cargo install cargo-dist
cargo dist init
cargo dist build
# 上传二进制文件到GitHub release

步骤 2:购买域名(30分钟)

一个真实域名每年$12。如果你连$12都不愿投资到你的生意中,你对做生意不是认真的。

在哪里购买:

域名命名建议:

# 将域名指向Vercel
# 在Vercel仪表盘中:Settings > Domains > 添加你的域名
# 然后在注册商的DNS设置中添加:
# A记录: @ -> 76.76.21.21
# CNAME记录: www -> cname.vercel-dns.com

# 或者如果使用Cloudflare做DNS:
# 只需在Cloudflare的DNS面板中添加相同记录
# SSL在Vercel和Cloudflare中都是自动的

步骤 3:基础监控(30分钟)

你需要知道两件事:站点是否正常运行,人们是否在访问。

可用性监控(免费):

设置监控:
1. 你的着陆页URL
2. 你的应用健康检查端点(如适用)
3. 你的支付webhook URL(关键——你需要知道支付是否出了问题)

分析工具(注重隐私的):

不要用Google Analytics。你的开发者受众会屏蔽它,对新产品来说大材小用,而且是隐私风险。

<!-- Plausible — 在<head>中一行 -->
<script defer data-domain="yourdomain.com"
  src="https://plausible.io/js/script.js"></script>

<!-- Umami — 在<head>中一行 -->
<script defer
  src="https://your-umami-instance.com/script.js"
  data-website-id="your-website-id"></script>

说实话: 是的,为一个还没赚钱的产品每月花$9在分析工具上感觉没必要。但你无法改善你无法衡量的东西。第一个月的分析数据会告诉你的市场信息比一个月的猜测多得多。如果$9/月会超出你的预算,在Railway上免费自托管Umami。

下午时段(2小时):设置支付

如果你的产品不能接受付款,它就是一个业余项目。设置支付比大多数开发者想的耗时更少——基本流程大约20-30分钟。

选项 A:Lemon Squeezy(数字产品推荐)

Lemon Squeezy (https://lemonsqueezy.com) 在一个平台上处理支付处理、消费税、VAT和数字交付。从零到接受付款的最快路径。

对你的第一个产品选择Lemon Squeezy而非Stripe的原因:

设置步骤:

  1. 在 https://app.lemonsqueezy.com 注册
  2. 创建商店(你的业务名称)
  3. 添加产品:
    • 名称、描述、价格
    • 上传数字交付文件(如适用)
    • 设置许可证密钥(如果卖软件)
  4. 获取结账URL——这是"购买"按钮链接到的地方
  5. 设置webhook用于购买后自动化
// Lemon Squeezy webhook处理器 (Node.js/Express)
// POST /api/webhooks/lemonsqueezy

import crypto from 'crypto';

const WEBHOOK_SECRET = process.env.LEMONSQUEEZY_WEBHOOK_SECRET;

export async function handleLemonSqueezyWebhook(req, res) {
  // 验证webhook签名
  const signature = req.headers['x-signature'];
  const hmac = crypto.createHmac('sha256', WEBHOOK_SECRET);
  const digest = hmac.update(JSON.stringify(req.body)).digest('hex');

  if (signature !== digest) {
    return res.status(401).json({ error: 'Invalid signature' });
  }

  const event = req.body;

  switch (event.meta.event_name) {
    case 'order_created': {
      const order = event.data;
      const customerEmail = order.attributes.user_email;
      const productId = order.attributes.first_order_item.product_id;
      const orderId = order.id;

      console.log(`New order: ${orderId} from ${customerEmail}`);

      // 发送欢迎邮件、授权访问、创建许可证密钥等
      await grantProductAccess(customerEmail, productId);
      await sendWelcomeEmail(customerEmail, orderId);

      break;
    }

    case 'subscription_created': {
      const subscription = event.data;
      const customerEmail = subscription.attributes.user_email;

      console.log(`New subscription from ${customerEmail}`);
      await createSubscription(customerEmail, subscription);

      break;
    }

    case 'subscription_cancelled': {
      const subscription = event.data;
      const customerEmail = subscription.attributes.user_email;

      console.log(`Subscription cancelled: ${customerEmail}`);
      await revokeAccess(customerEmail);

      break;
    }

    default:
      console.log(`Unhandled event: ${event.meta.event_name}`);
  }

  return res.status(200).json({ received: true });
}

选项 B:Stripe(更多控制,更多工作)

Stripe (https://stripe.com) 给你更多控制权,但需要你单独处理税务合规。更适合有复杂计费的SaaS。

// Stripe Checkout会话 (Node.js)
// 创建托管的结账页面

import Stripe from 'stripe';

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);

export async function createCheckoutSession(req, res) {
  const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    line_items: [
      {
        price_data: {
          currency: 'usd',
          product_data: {
            name: 'DashKit Pro',
            description: '12 Tailwind dashboard components + 8 templates + Figma files',
          },
          unit_amount: 5900, // $59.00(以美分计)
        },
        quantity: 1,
      },
    ],
    mode: 'payment', // 订阅用'subscription'
    success_url: `${process.env.DOMAIN}/success?session_id={CHECKOUT_SESSION_ID}`,
    cancel_url: `${process.env.DOMAIN}/pricing`,
    customer_email: req.body.email, // 如有则预填
  });

  return res.json({ url: session.url });
}

// Stripe webhook处理器
export async function handleStripeWebhook(req, res) {
  const sig = req.headers['stripe-signature'];

  let event;
  try {
    event = stripe.webhooks.constructEvent(
      req.body, // 原始body,不是解析后的JSON
      sig,
      process.env.STRIPE_WEBHOOK_SECRET
    );
  } catch (err) {
    console.error(`Webhook signature verification failed: ${err.message}`);
    return res.status(400).send(`Webhook Error: ${err.message}`);
  }

  switch (event.type) {
    case 'checkout.session.completed': {
      const session = event.data.object;
      await fulfillOrder(session);
      break;
    }
    case 'customer.subscription.deleted': {
      const subscription = event.data.object;
      await revokeSubscriptionAccess(subscription);
      break;
    }
  }

  return res.json({ received: true });
}

两个平台通用 — 发布前测试:

# Lemon Squeezy:在仪表盘中使用测试模式
# 在Lemon Squeezy仪表盘右上角切换"Test mode"
# 使用卡号: 4242 4242 4242 4242,任意未来过期日期,任意CVC

# Stripe:使用测试模式API密钥
# 测试卡: 4242 4242 4242 4242
# 测试拒绝卡: 4000 0000 0000 0002
# 需要验证的测试卡: 4000 0025 0000 3155

在测试模式下自己走一遍完整的购买流程。点击购买按钮,完成结账,验证webhook触发,验证访问权限已授予。如果测试模式下任何步骤失败,真实客户也会失败。

常见错误: "我先获得一些用户再设置支付。"这是本末倒置。设置支付不是为了今天收钱——而是为了验证是否有人愿意付费。没有价格的产品是一个免费工具。有价格的产品是一次商业测试。价格本身就是验证的一部分。

晚间时段(3小时):发布

你的产品上线了。支付可以工作。着陆页清晰明了。现在你需要让人看到它。

软发布策略

不要为你的第一个产品搞"大型发布"。大型发布会产生必须完美的压力,而你的v0.1并不完美。相反,做一个软发布:在几个地方分享,收集反馈,修复关键问题,然后在1-2周后做大型发布。

发布平台 1:Reddit(30分钟)

在 r/SideProject 和一个与你产品相关的利基子版块发帖。

Reddit发帖模板:

Title: I built [它做什么] in a weekend — [核心收益]

Body:
Hey [子版块],

I've been frustrated with [问题] for a while, so I built
[产品名] this weekend.

**What it does:**
- [功能 1 — 核心价值]
- [功能 2]
- [功能 3]

**What makes it different from [竞品]:**
[关于你的差异化优势的一段诚实描述]

**Pricing:**
[透明化。"$29 one-time" 或 "Free tier + $19/mo Pro"]

I'd love feedback. What am I missing? What would make this
useful for your workflow?

[产品链接]

Reddit发帖规则:

发布平台 2:Hacker News(30分钟)

如果你的产品技术性强且有趣,发一个Show HN。在"技术细节"部分,提到你的技术栈(your primary stack)并解释为什么选择它——HN读者喜欢有理有据的技术决策。

Show HN模板:

Title: Show HN: [产品名] – [它做什么,70字符以内]

Body:
[产品名] is [一句话解释它做什么].

I built this because [真实动机——你在为自己解决什么问题].

Technical details:
- Built with [技术栈]
- [有趣的技术决策及其原因]
- [实现中值得注意的地方]

Try it: [URL]

Feedback welcome. I'm particularly interested in [给HN受众的
具体问题].

HN技巧:

发布平台 3:Twitter/X(30分钟)

写一个公开构建的发布帖子串:

推文 1(钩子):
I built [产品] in 48 hours this weekend.

It [为特定受众解决特定问题].

Here's what I shipped, what I learned, and the real numbers. Thread:

推文 2(问题):
The problem:
[用2-3句描述痛点]
[包含展示痛点的截图或代码示例]

推文 3(解决方案):
So I built [产品名].

[产品运行中的截图/GIF]

It does three things:
1. [功能 1]
2. [功能 2]
3. [功能 3]

推文 4(技术细节):
Tech stack for the nerds:
- [前端]
- [后端]
- [托管——提及具体平台]
- [支付——提及Lemon Squeezy/Stripe]
- Total cost to run: $XX/month

推文 5(定价):
Pricing:
[清晰的定价,和着陆页一样]
[产品链接]

推文 6(请求):
Would love feedback from anyone who [描述目标用户].

What am I missing? What would make this a must-have for you?

发布平台 4:相关社区(30分钟)

找出目标受众聚集的2-3个社区:

发布后首48小时 — 关注什么:

要跟踪的指标:
1. 独立访客(从分析工具)
2. 着陆页 → 结账点击率(应该是2-5%)
3. 结账 → 购买转化率(应该是1-3%)
4. 跳出率(超过80%说明标题/首屏有问题)
5. 流量来源(你的访客从哪里来?)
6. 评论和反馈(定性——人们在说什么?)

示例计算:
- 48小时内500访客(Reddit + HN + Twitter加起来合理的数字)
- 3%点击"购买" = 15个结账访问
- 10%完成购买 = 1-2笔销售
- $29/笔 = 第一个周末$29-58

这不是退休金。这是验证金。
来自互联网陌生人的$29证明了你的产品有价值。

如果前48小时零销售不要恐慌。看看你的漏斗:

每种情况有不同的修复方法。这就是指标重要的原因。

轮到你了

  1. 锁定时间。 现在打开日历,封锁下周六上午8点到晚上8点和周日上午8点到晚上8点。标注为"48小时冲刺"。像对待不能改签的航班一样对待它。

  2. 选择你的创意。 从模块 R 中选一个收入引擎。写下v0.1的3功能范围。如果选不出来,选那个你能用一句话向非开发者解释的。

  3. 预备工作。 在周六之前,在以下平台创建账号:

    • Vercel、Railway 或 Fly.io(部署)
    • Lemon Squeezy 或 Stripe(支付)
    • Namecheap、Cloudflare 或 Porkbun(域名)
    • Plausible、Fathom 或 Umami(分析)
    • Better Uptime 或 UptimeRobot(监控)

    在工作日晚上完成,这样周六就是纯粹的构建,而不是创建账号。

  4. 准备发布平台。 如果你没有有一些积分的Reddit账号,本周开始在相关子版块参与讨论。只发自我推广的账号会被标记。如果你没有Hacker News账号,创建一个并先参与几次讨论。


第2课:"先发布,再改进"的心态

"带3个功能的v0.1比永远发不出去的v1.0强。"

完美主义陷阱

开发者特别容易陷入一种特定的失败模式:永远在私下构建。我们知道"好代码"长什么样。我们知道v0.1不是好代码。所以我们重构。添加错误处理。写更多测试。改进架构。做了除了真正重要的事以外的一切:给人看。

这里有一个能帮你节省数千小时的真相:你的客户不读你的源代码。 他们不关心你的架构。他们不关心你的测试覆盖率。他们只关心一件事:这个东西能解决我的问题吗?

代码很乱但解决真实问题的产品会赚钱。架构很美但不解决任何问题的产品什么都赚不到。

这不是写烂代码的借口。这是一个优先级声明。先发布。再重构。重构在有真实使用数据后会做得更好。

"先发布,再改进"的实际展开

考虑这个场景:一个开发者发布了面向软件工程经理的Notion模板包。发布时的样子:

在Reddit和Twitter上发帖。这就是全部营销策略。

第1个月结果:

"完美"吗?不。模板有格式不一致。部分描述很泛。客户不在乎。他们在乎的是不用自己做模板了。

到第3个月,基于客户反馈,开发者:

发布时的产品在各个方面都比90天后的产品差。但90天后的版本之所以存在,是因为发布版本产生了引导开发方向的反馈和收入。

注意: 关于"先发布粗糙版本,快速改进"模型的真实验证:Josh Comeau的CSS for JavaScript Developers课程在第一周就预售了$550K(来源:failory.com)。Wes Bos通过迭代式发布总共产生了$10M+的开发者课程销售额(来源:foundershut.com)。两者都从不完美的v1产品开始,并根据真实客户反馈进行迭代。

前10个客户告诉你一切

你的前10个付费客户是你业务中最重要的人。不是因为他们的钱——10笔$29的销售是$290,只够买菜。他们重要是因为他们是你产品开发团队的志愿者。

对前10个客户该做的事:

  1. 发送一封个人感谢邮件。 不是自动化的。个人的。"嗨,我看到你购买了[产品]。谢谢。我正在积极开发——有什么你希望它能做但目前做不到的吗?"

  2. 阅读每一封回复。 有些人不会回复。有些会回复"看起来不错,谢谢"。但10个人中有2-3个会写大段大段他们想要什么。那些大段文字就是你的产品路线图。

  3. 寻找规律。 如果10个人中有3个要求同一个功能,就去做。这是来自付费客户的30%需求信号。没有任何调查问卷能给你这么好的数据。

  4. 询问他们愿意多付多少。 "我计划推出一个带[功能X]的Pro套餐。对你来说值$49吗?"直接。具体。给你定价数据。

前10个客户的邮件模板:

主题: Quick question about [产品名]

Hey [名字],

I noticed you picked up [产品名] — thanks for being
one of the first customers.

I'm building this actively and shipping updates weekly.
Quick question: what's the ONE thing you wish it did that
it doesn't?

No wrong answers. Even if it seems like a big ask,
I want to hear it.

Thanks,
[你的名字]

如何处理负面反馈

你的第一条负面反馈会让你觉得是针对个人的。不是针对个人的。是数据。

处理负面反馈的框架:

1. 暂停。30分钟内不要回复。你的情绪反应
   没有用。

2. 将反馈分类:
   a) Bug报告 — 修复它。感谢他们。
   b) 功能请求 — 加入待办。感谢他们。
   c) 价格投诉 — 记下来。检查是否形成趋势。
   d) 质量投诉 — 调查。是否合理?
   e) 喷子/不合理 — 无视。继续前进。

3. 回复(仅针对a、b、c、d):
   "感谢反馈。[承认具体问题]。
   我正在[立即修复 / 加入路线图 / 调查此问题]。
   处理好后会通知你。"

4. 行动。如果你承诺修复某些东西,一周内修复。
   没有什么比让客户看到他们的反馈带来了
   真实改变更能建立忠诚度的了。

说实话: 会有人说你的产品是垃圾。会很刺痛。但如果你的产品已经上线并在赚钱,你已经做到了大多数开发者从未做到的事。在评论区批评的人什么都没发布。你发布了。继续发布。

每周迭代循环

发布后,你的工作流变成一个紧凑的循环:

周一:   审查上周的指标和客户反馈
周二:   规划本周的改进(一件事,不是五件)
周三:   构建改进
周四:   测试并部署改进
周五:   写一篇更新日志/更新帖子
周末:   营销——一篇博客、一条社交帖子、一次社区互动

循环往复。

关键词是每周一个改进。不是功能大改。不是重新设计。一件让产品对现有客户略微变好的事。12周下来,就是基于真实使用数据的12次改进。经过12周这样的循环后,你的产品会比你在封闭状态下设计的任何东西都好得多。

收入比调查问卷验证更快

调查问卷会撒谎。不是有意的——人们只是不擅长预测自己的行为。"你会为这个付$29吗?"很容易得到"会"的回答。但"这是结账页面,请输入你的信用卡"会得到诚实的回答。

这就是为什么你从第一天就带着支付功能发布:

验证方法 信号获取时间 信号质量
调查问卷 / 投票 1-2周 低(人们会撒谎)
带邮件注册的着陆页 1-2周 中(是兴趣,不是承诺)
有价格但没有结账的着陆页 1周 中高(价格接受度)
带真实结账的上线产品 48小时 最高(实际购买行为)

$0的价格什么都揭示不了。$29的价格揭示一切。

轮到你了

  1. 写下你的"粗糙发布"承诺。 打开一个文本文件写下:"我会在[日期]发布[产品名],即使它不完美。v0.1范围:[3个功能]。发布前我不会添加第4个功能。"签名(象征性的)。当打磨的冲动来袭时参考它。

  2. 起草你的前10个客户邮件。 现在就写个人感谢邮件模板,在你有客户之前。当第一笔销售到来时,你要在一小时内发出去。

  3. 设置你的迭代追踪器。 创建一个简单的电子表格或Notion页面,列:周 | 做的改进 | 指标影响 | 客户反馈。这成为你决定下一步做什么的决策日志。


第3课:开发者产品的定价心理学

"$0不是一个价格。它是一个陷阱。"

为什么免费反而昂贵

销售开发者产品中最违反直觉的真相:免费用户比付费客户花你更多成本。

免费用户:

付费客户:

提供免费版的唯一理由是作为付费版的获客机制。如果你的免费版好到没人升级,你就没有免费版——你有一个带捐赠按钮的免费产品。

常见错误: "我先免费获得用户,以后再收费。"这几乎从来不奏效。你以$0吸引来的用户永远期望$0。当你加价时他们就走了。那些从第一天就愿意付$29的用户永远找不到你的产品,因为你把它定位成了免费工具。你吸引了错误的受众。

开发者产品定价层级

分析了数百个成功的开发者产品后,这些价格点始终有效。以下所有价格以美元计——如果你以your local currency定价,根据当地购买力和市场惯例调整。

层级 1:$9-29 — 开发者工具和实用程序

这个价位的产品解决具体的、狭窄的问题。一次购买,今天就能用。

示例:
- 带高级功能的VS Code扩展:$9-15
- 带专业功能的CLI工具:$15-19
- 单一用途的SaaS工具:$9-19/月
- 小型组件库:$19-29
- 浏览器DevTools扩展:$9-15

购买者心理:冲动购买区间。开发者看到了,
认出了问题,不用问经理就买了。
不需要预算审批。信用卡 → 完成。

关键洞察:在这个价位,你的着陆页必须在
2分钟内转化。购买者不会阅读长长的功能列表。
展示问题,展示方案,展示价格。

层级 2:$49-99 — 模板、套件和综合工具

这个价位的产品节省大量时间。多个组件协同工作。

示例:
- 完整UI模板套件:$49-79
- 带认证、计费、仪表盘的SaaS模板:$79-99
- 综合图标/插图集:$49-69
- 多用途CLI工具箱:$49
- 文档详尽的API封装库:$49-79

购买者心理:考虑型购买。开发者会花5-10分钟
评估。和替代品比较。计算节省的时间。
"如果这能帮我省10小时,我的时间价值$50/小时,
$79完全划算。"

关键洞察:你需要一个对比基准。展示从零构建
这些东西的时间/精力与购买你的套件的对比。
如果有推荐语就加上。

层级 3:$149-499 — 课程、综合解决方案、高级模板

这个价位的产品改变一项技能或提供完整的系统。

示例:
- 视频课程(10小时以上):$149-299
- 带完整源码+视频讲解的SaaS入门套件:$199-299
- 企业级组件库:$299-499
- 综合开发者工具包(多个工具):$199
- "从零构建X"完整代码库+课程:$149-249

购买者心理:投资型购买。购买者需要证明
这笔花费合理(对自己或对经理)。他们需要
社会证明、详细预览和清晰的ROI叙述。

关键洞察:在这个层级,提供退款保证。
它降低购买焦虑并提高转化率。
数字开发者产品的退款率通常是3-5%。
转化率的提升远超退款的损失。

3级定价策略

如果你的产品支持,提供三个价格层级。这不是随意的——它利用了一个被广泛记录的认知偏差,叫做"中心舞台效应"。当面对三个选项时,大多数人会选择中间的。

层级结构:

BASIC          PRO(高亮)         TEAM/ENTERPRISE
$29             $59                   $149
核心功能        Basic全部内容         Pro全部内容
                + 高级功能            + 团队功能
                + 优先支持            + 商用许可

转化分布(典型):
- Basic: 20-30%
- Pro: 50-60% ← 这是你的目标
- Team: 10-20%

如何设计层级:

  1. Pro层级开始。这是你真正想卖的产品,定价反映其价值。先设计这个。

  2. 通过从Pro中移除功能创建Basic层级。移除足够多,让Basic能解决问题但Pro能很好地解决问题。Basic应该让人感到略有挫折——可以用,但明显受限。

  3. 通过在Pro基础上添加功能创建Team层级。多座位许可、商用权利、优先支持、自定义品牌、源码访问、Figma文件等。

真实定价页面示例:

DashKit

STARTER — $29                    PRO — $59                        TEAM — $149
                                 ★ 最受欢迎                       适合代理机构

✓ 12个核心组件                    ✓ Starter全部内容                 ✓ Pro全部内容
✓ React + TypeScript             ✓ 8个完整页面模板                 ✓ 最多5个团队成员
✓ 暗色模式                       ✓ Figma设计文件                   ✓ 商用许可
✓ npm install                    ✓ 高级数据表格                    (无限客户项目)
✓ 6个月更新                      ✓ 图表库集成                      ✓ 优先支持
                                 ✓ 12个月更新                      ✓ 终身更新
                                 ✓ 优先功能请求                     ✓ 自定义品牌选项

[获取Starter]                    [获取Pro]                        [获取Team]

价格锚定

锚定是指人们最先看到的数字会影响他们对后续数字感知的认知偏差。合乎道德地利用它:

  1. 先展示贵的选项(在西方布局中放在右边)。看到$149让$59感觉合理。

  2. 展示"节省时间"的计算。

    "从零构建这些组件大约需要40小时。
    按$50/小时计算,那是$2,000的时间成本。
    DashKit Pro:$59。"
    
  3. 订阅使用"每天"的换算。

    "$19/月" → "每天不到$0.63"
    "$99/年" → "$8.25/月" 或 "每天$0.27"
    
  4. 年付折扣。 年付计划提供2个月免费。这是标准做法且被期望的。年付减少30-40%的流失率,因为取消需要在单一续费点做出有意识的决定,而不是持续的月度决定。

月付: $19/月
年付: $190/年(省$38 — 免费2个月)

显示为:
月付: $19/月
年付: $15.83/月(按年计费$190)

价格A/B测试

测试价格有价值但需要技巧。以下是不失信用的做法:

可接受的方法:

不可接受的方法:

何时提价

以下任何一条为真时,提价:

  1. 转化率超过5%。 你太便宜了。开发者产品着陆页的健康转化率是1-3%。超过5%意味着几乎每个看到价格的人都觉得划算——这意味着你在把钱留在桌上。

  2. 没人抱怨价格。 如果100人中零人说太贵了,那就是太便宜了。一个健康的产品大约有20%的访客觉得价格偏高。这意味着80%觉得公平或划算。

  3. 自发布以来添加了重大功能。 你以$29发布了3个功能。现在有8个功能和更好的文档。产品价值更高了。收更多。

  4. 你有了推荐语和社会证明。 社会证明增加感知价值。有了5+条好评后,你的产品在购买者心中更值钱了。

如何提价:

说实话: 大多数开发者的定价低了50-200%。你$29的产品可能值$49。你$49的产品可能值$79。我知道这一点是因为开发者总是锚定在自己的支付意愿上(低——我们在工具上很抠),而不是客户的支付意愿上(更高——他们在购买一个解决他们时间问题的方案)。比你以为的更早提价。

轮到你了

  1. 给你的产品定价。 基于上面的层级分析,为v0.1发布选择一个价位。写下来。如果你因为觉得"太贵"而不舒服,你可能在正确的范围内。如果觉得舒适,加50%。

  2. 设计你的定价页面。 使用3级模板,设计你的定价页面文案。确定哪些功能放在哪个层级。确定你的"高亮"层级(你希望最多人购买的那个)。

  3. 计算你的数学。 填写:

    • 每笔售价:$___
    • 目标月收入:$___
    • 每月需要的销售笔数:___
    • 预计需要的着陆页访客数(按2%转化率):___
    • 以你的分发计划,这个访客数可以实现吗?(是/否)

第4课:最小可行法律设置

"现在30分钟的法律设置,省去以后30小时的恐慌。"

关于法律设置的诚实真相

大多数开发者要么完全忽略法律(有风险),要么被它吓住了(浪费时间)。正确的方法是最小可行法律设置:足够的保护来合法运营,但不用在赚到$5之前就花$5,000请律师。

以下是你第一笔销售前真正需要的、第100笔销售前需要的,以及很久之后才需要的。

第一笔销售前(这个周末做)

1. 检查你的雇佣合同(30分钟)

如果你有全职工作,在构建任何东西之前阅读雇佣合同的知识产权条款。具体查找:

你在找的:

安全:"使用公司时间或公司资源创建的发明
属于公司。" → 你在个人电脑上的周末项目属于你。

模糊:"与公司当前或预期业务相关的所有发明。"
→ 如果你的副业项目在和雇主同一个领域,请寻求法律建议。

限制性:"在雇佣期间构思的所有发明属于公司。"
→ 这很激进但在一些公司常见。在发布产品之前
请寻求法律建议。

加州、特拉华州、伊利诺伊州、明尼苏达州、华盛顿州等州有法律限制雇主可以多广泛地声称你的个人发明。但合同的具体措辞很重要。

常见错误: "我保密就行了。"如果你的产品成功到足以引起注意,有人会发现。如果它违反了你的雇佣合同,你可能同时失去产品和工作。现在花30分钟阅读合同可以防止这种情况。

2. 隐私政策(15分钟)

如果你的产品收集任何数据——哪怕只是购买用的邮箱地址——你需要一份隐私政策。这是欧盟(GDPR)、加州(CCPA)以及越来越多地方的法律要求。

不要从零写。用生成器:

你的隐私政策必须涵盖:

# [产品名]隐私政策
最后更新:[日期]

## 我们收集什么
- 邮箱地址(用于购买确认和产品更新)
- 支付信息(由[Lemon Squeezy/Stripe]处理,
  我们永远不会看到或存储你的卡片信息)
- 基本使用分析(页面浏览、功能使用 —
  通过[Plausible/Fathom/Umami],注重隐私,无cookie)

## 我们不收集什么
- 我们不会在整个网络中追踪你
- 我们不会向任何人出售你的数据
- 我们不使用广告cookie

## 我们如何使用你的数据
- 交付你购买的产品
- 发送产品更新和重要通知
- 基于汇总的使用模式改进产品

## 数据存储
- 你的数据存储在[托管提供商]的[地区]服务器上
- 支付数据完全由[Lemon Squeezy/Stripe]处理

## 你的权利
- 你可以随时请求你的数据副本
- 你可以随时请求删除你的数据
- 联系方式:[你的邮箱]

## 变更
- 重大变更将通过邮件通知你

放在 yourdomain.com/privacy。从结账页面的页脚链接过去。

3. 服务条款(15分钟)

服务条款保护你免受不合理的索赔。对于数字产品,很简单。

# [产品名]服务条款
最后更新:[日期]

## 许可
购买[产品名]后,你获得将其用于[个人/商业]目的的
许可。

- **单一许可:** 在你自己的项目中使用(无限)
- **团队许可:** 最多[N]个团队成员使用
- 你不得重新分发、转售或共享访问凭据

## 退款
- 数字产品:[30天 / 14天]退款保证
- 如果你不满意,发邮件到[你的邮箱]获得全额退款
- 退款窗口内无需理由

## 责任
- [产品名]按"原样"提供,不附带保证
- 我们不对因使用产品而产生的损害承担责任
- 最大责任限于你支付的金额

## 支持
- 通过[你的邮箱]提供邮件支持
- 我们目标在[48小时 / 2个工作日]内回复

## 修改
- 我们可能在通知后更新这些条款
- 继续使用即表示接受更新后的条款

放在 yourdomain.com/terms。从结账页面的页脚链接过去。

第100笔销售前(最初几个月)

4. 商业实体(1-3小时 + 处理时间)

以个体经营者身份运营(在不成立企业的情况下销售东西时的默认状态)在最初几笔销售时可以用。但随着收入增长,你会想要责任保护和税收优惠。

美国 — LLC:

LLC(有限责任公司)是独立开发者业务的标准选择。

费用:根据州不同$50-500(申请费)
时间:处理1-4周
在哪里申请:你的居住州,除非有特定理由
使用特拉华或怀俄明

DIY申请(最便宜):
1. 访问你所在州的州务卿网站
2. 提交"Articles of Organization"(表格通常1-2页)
3. 支付申请费(根据州$50-250)
4. 在IRS.gov获取EIN(税号)— 免费,在线即时获得

独立开发者的州比较:
- 怀俄明:申请$100,年报$60/年。无州所得税。
           隐私保护好(不需要公开成员信息)。
- 特拉华:申请$90,年税$300/年。受欢迎但对
          独立开发者不一定更好。
- 新墨西哥:申请$50,无年报。维护费最低。
- 加州:申请$70,最低特许权税$800/年。
        贵。即使你赚$0也要付这笔钱。

Stripe Atlas(如果你想让别人帮你处理):

Stripe Atlas (https://atlas.stripe.com) 费用$500,为你设置特拉华LLC、美国银行账户(通过Mercury)、Stripe账户,并提供税务和法律指南。如果你在美国以外或只是想让别人处理文书工作,$500值得。

英国 — 有限公司(Ltd):

费用:在Companies House (https://www.gov.uk/set-up-limited-company) 注册GBP 12
时间:通常24-48小时
持续:年度确认声明(GBP 13),年度账目提交

对独立开发者:有限公司在利润超过约GBP 50,000/年时
提供责任保护和税收效率。
低于此金额,个体经营者更简单。

欧盟:

每个国家有自己的结构。常见选项:

澳大利亚:

个体经营者:通过ABN申请 (https://www.abr.gov.au) 免费注册
公司(Pty Ltd):在ASIC注册AUD 538
对独立开发者:先以个体经营者身份开始。当收入证明
会计开销合理时(约AUD 100K+/年)再注册公司。

5. 税务义务

如果你使用Lemon Squeezy作为支付平台,它们作为销售代理商处理消费税和VAT。这是一个巨大的简化。

如果你直接使用Stripe,你要负责:

说实话: 对独立开发者来说,Lemon Squeezy相对Stripe的最大优势不是结账页面或功能。而是它帮你处理全球税务合规。国际消费税是一场噩梦。Lemon Squeezy每笔交易收5% + $0.50让噩梦消失。在你月入$5,000以上之前,5%是值得的。之后再评估用Stripe + TaxJar自己管理税务是否在金钱和精力上更划算。

6. 知识产权基础

你需要知道的:

# 检查项目的依赖许可证 (Node.js)
npx license-checker --summary

# 具体检查有问题的许可证
npx license-checker --failOn "GPL-2.0;GPL-3.0;AGPL-3.0"

# Rust项目
cargo install cargo-license
cargo license

7. 保险

$29的组件库不需要保险。以下情况需要保险:

需要的时候,专业责任保险(errors and omissions / E&O)对独立开发者业务年费$500-1,500。

轮到你了

  1. 阅读你的雇佣合同。 如果你在职,找到知识产权条款和竞业禁止条款。分类:安全 / 模糊 / 限制性。如果是模糊或限制性的,在发布前咨询劳动律师(许多提供免费30分钟咨询)。

  2. 生成你的法律文件。 去Termly或Avodocs为你的产品生成隐私政策和服务条款。保存为HTML或Markdown。部署到产品域名的 /privacy/terms

  3. 做出实体决定。 根据上面的指导和你在your country的居住地,决定:以个体经营者身份发布(最快)还是先成立LLC/Ltd/equivalent(更多保护)。写下你的决定和时间表。

  4. 检查你的依赖。 在项目上运行许可证检查器。在销售商业产品之前解决任何GPL/AGPL依赖。


第5课:2026年有效的分发渠道

"构建它是20%的工作。让它出现在人们面前是另外80%。"

分发的现实

大多数开发者产品失败不是因为产品不好,而是因为没人知道它存在。分发——让你的产品出现在潜在客户面前——是大多数开发者最薄弱的技能。而这是最重要的技能。

以下是按努力程度、时间线和预期回报排名的七个分发渠道。你不需要全部七个。选择2-3个匹配你的优势和受众的。

渠道 1:Hacker News

努力: 高 | 时间线: 即时(0-48小时) | 特性: 非成即败

Hacker News (https://news.ycombinator.com) 是开发者产品中杠杆最高的单次事件分发渠道。一篇上了首页的Show HN帖子可以在24小时内带来5,000-30,000访客。但不可预测——大多数帖子零关注。

在HN上有效的:

在HN上无效的:

Show HN操作手册:

发帖前:
1. 研究你所在类别的近期成功Show HN帖子
   https://hn.algolia.com — 筛选"Show HN",按分数排序
2. 准备帖子标题:"Show HN: [名字] – [它做什么,70字符以内]"
   好的: "Show HN: ScrubLog – Strip PII from Log Files in One Command"
   差的: "Show HN: Introducing ScrubLog, the AI-Powered Log Anonymization Platform"
3. 准备在线演示(HN读者想试用,不想只是阅读)
4. 准备好可能问题的回答(技术决策、定价理由)

发帖时:
5. 在周二至周四美东时间上午7-9点发帖
   (流量最高,获得关注的概率最大)
6. 帖子正文应为4-6段:
   - 是什么(1段)
   - 为什么要做(1段)
   - 技术细节(1-2段)
   - 你在寻找什么(反馈、具体问题)

发帖后:
7. 发帖后保持在线4小时。回复每一条评论。
8. 保持谦虚和技术性。HN奖励对局限性的诚实。
9. 如果有人找到bug,当场修复并回复"Fixed, thanks."
10. 不要请朋友投票。HN有投票圈检测。

预期结果(现实的):

这是一个可以通过努力加载的彩票。一个好产品配一个好帖子大约有30%的概率获得有意义的关注。不保证。但上行空间巨大。

渠道 2:Reddit

努力: 中 | 时间线: 1-7天 | 特性: 可持续、可重复

Reddit是开发者产品最一致的分发渠道。与HN(一次机会)不同,Reddit有数百个与你产品相关的利基子版块。

子版块选择:

通用开发者子版块:
- r/SideProject (140K+成员) — 就是为此而设
- r/webdev (2.4M成员) — 巨大,竞争激烈
- r/programming (6.3M成员) — 非常竞争,新闻导向
- r/selfhosted (400K+成员) — 如果你的产品可以自托管

框架/语言专属:
- r/reactjs, r/nextjs, r/sveltejs, r/vuejs — 前端工具
- r/rust, r/golang, r/python — 语言专属工具
- r/node — Node.js工具和包

领域专属:
- r/devops — 基础设施/部署工具
- r/machinelearning — AI/ML工具
- r/datascience — 数据工具
- r/sysadmin — 管理/监控工具

长尾:
- 搜索与你特定利基相关的子版块
- 较小的子版块(10K-50K成员)通常比
  巨大的转化率更好

Reddit互动规则:

  1. 在发布产品之前有真实的Reddit历史。只发自我推广的账号会被标记和影子禁令。
  2. 遵守每个子版块关于自我推广的规则。大多数允许,只要你是一个有贡献的成员。
  3. 真诚互动。 回答问题,提供价值,在其他帖子的评论中有帮助。然后分享你的产品。
  4. 在不同子版块不同时间发帖。 查看 https://later.com/reddit 或类似工具了解高峰活跃时间。

预期结果(现实的):

渠道 3:Twitter/X

努力: 中 | 时间线: 2-4周建立势头 | 特性: 随时间复利增长

Twitter是一个缓慢建设的渠道。你的第一条发布推文会从朋友那里获得5个赞。但如果你持续分享构建过程,你的受众会复利增长。

公开构建策略:

第1周:开始分享你的构建过程(发布前)
- "正在做一个[产品类型]。我在解决的问题是:[截图]"
- "构建[产品]第3天。[功能]跑起来了:[GIF/截图]"

第2周:分享构建中的技术洞察
- "今天学到:构建[产品类型]时需要[技术教训]"
- "架构决策:因为[原因]选择了[X]而不是[Y]"

第3周:发布
- 发布帖子串(第1课的格式)
- 分享具体指标:"第1天:X访客,Y注册"

第4周以后:持续
- 分享客户反馈(经许可)
- 分享收入里程碑(人们喜欢真实数字)
- 分享挑战及如何解决

和谁互动:

预期结果(现实的):

Twitter是6个月的投资,不是发布当天的策略。即使产品还没准备好,现在就开始。

渠道 4:Product Hunt

努力: 高 | 时间线: 1天密集活动 | 特性: 一次性提升

Product Hunt (https://producthunt.com) 是一个专门的发布平台。日排名前5可以带来3,000-15,000访客。但需要准备。

Product Hunt发布清单:

2周前:
- [ ] 创建Product Hunt的maker个人资料
- [ ] 构建PH列表:标语、描述、图片、视频
- [ ] 准备4-5张高质量截图/GIF
- [ ] 写一条解释你动机的"首条评论"
- [ ] 安排10-20人在发布日支持(不是假投票——
      会试用产品并留下真实评论的真人)
- [ ] 找一个"hunter"(PH粉丝多的人来提交你的产品)
      或自己提交

发布日(太平洋时间凌晨0:01):
- [ ] 从太平洋时间午夜开始在线。PH在午夜重置。
- [ ] 立即发布"首条评论"
- [ ] 在Twitter、LinkedIn、邮件、Discord分享PH链接
- [ ] 回复PH列表上的每一条评论
- [ ] 全天发布更新("刚发布了[X]的修复!")
- [ ] 监控到太平洋时间午夜

之后:
- [ ] 感谢每一个支持的人
- [ ] 写一篇"经验教训"帖子(适合作为Twitter/博客内容)
- [ ] 在着陆页嵌入PH徽章(社会证明)

常见错误: 在产品准备好之前就在Product Hunt发布。PH只给你一次机会。一旦你发布了一个产品,就不能重新发布了。等到你的产品打磨好、着陆页能转化、支付流程可以工作时再发。PH应该是你的"大型发布"——不是软发布。

预期结果(现实的):

渠道 5:Dev.to / Hashnode / 技术博客文章

努力: 低到中 | 时间线: SEO效果1-3个月 | 特性: 长尾,永远复利

写解决与你产品相关问题的技术博客文章,并提到你的产品作为解决方案。

内容策略:

为每个产品写3-5篇博客:

1. "2026年如何[解决你的产品所解决的问题]"
   - 教手动方法,然后提到你的产品作为捷径

2. "我在48小时内构建了[产品]——这是我学到的"
   - 公开构建内容。技术细节+诚实反思。

3. "[竞品] vs [你的产品]:诚实比较"
   - 真正公平。提到竞品胜出的地方。
   - 捕获比较购物的搜索流量。

4. "[与你产品相关的技术概念]详解"
   - 纯教育。最后提一次你的产品。

5. "2026年我用于[你产品领域]的工具"
   - 列表格式。在其他工具旁包含你的产品。

在哪里发布:

每篇帖子的预期结果:

一篇写得好的博客文章可以在数年内每月带来200+访客。五篇就是每月1,000+。这就是复利。

渠道 6:直接触达

努力: 高 | 时间线: 即时 | 特性: 最高转化率

冷邮件和私信在所有渠道中有最高的转化率——但每个线索的努力也最高。用于高价产品($99+)或B2B销售。

触达潜在客户的邮件模板:

主题: Quick question about [他们的具体痛点]

Hi [名字],

I saw your [推文/帖子/评论] about [他们提到的具体问题].

I built [产品名] specifically for this — it [一句话描述
它做什么].

Would you be open to trying it? Happy to give you free access
for feedback.

[你的名字]
[产品链接]

冷触达规则:

预期结果:

对于$99的产品,联系100人 = 1-4笔销售 = $99-396。不可规模化,但获取早期客户和反馈非常好。

渠道 7:SEO

努力: 低持续成本 | 时间线: 3-6个月见效 | 特性: 永远复利

SEO是最好的长期分发渠道。起步慢但一旦起效就会无限期地送来免费流量。

面向开发者的SEO策略:

1. 瞄准长尾关键词(更容易排名):
   不要瞄准:"dashboard components"
   瞄准:"tailwind dashboard components react typescript"

2. 每个关键词创建一个页面:
   每篇博客文章或文档页面瞄准一个具体搜索查询

3. 技术实现:
   - 使用静态站点生成以获得快速加载(Astro, Next.js SSG)
   - 每个页面添加meta description
   - 使用语义化HTML(h1, h2, h3层级)
   - 每张图片添加alt文本
   - 向Google Search Console提交站点地图

4. 开发者工具能排名的内容:
   - 文档页面(SEO效果意外地好)
   - 比较页面("X vs Y")
   - 教程页面("如何用Y做X")
   - 更新日志页面(给Google的新鲜内容信号)
# 向Google Search Console提交站点地图
# 1. 访问 https://search.google.com/search-console
# 2. 添加属性(域名或URL前缀)
# 3. 验证所有权(DNS TXT记录或HTML文件)
# 4. 提交站点地图URL:yourdomain.com/sitemap.xml

# 如果使用Astro:
pnpm add @astrojs/sitemap
# 站点地图自动生成在 /sitemap.xml

# 如果使用Next.js,添加到next-sitemap.config.js:
# pnpm add next-sitemap

预期结果:

渠道选择框架

你不能把七个都做好。根据这个矩阵选2-3个:

如果你... 优先 跳过
这周末就发布 Reddit + HN SEO, Twitter(太慢了)
先建立受众 Twitter + 博客文章 直接触达, PH
卖$99+的产品 直接触达 + HN Dev.to(受众期望免费)
打长期战 SEO + 博客文章 + Twitter PH(一次性的,以后再用)
非英语母语 Dev.to + Reddit(全球化) HN(以美国为中心)

轮到你了

  1. 选择你的2-3个渠道。 根据上面的矩阵和你的产品类型,选择你要集中精力的渠道。连同每个渠道的计划时间线一起写下来。

  2. 写你的Reddit帖子。 使用第1课的模板,现在就写你的 r/SideProject 帖子草稿。保存。你将在发布日发布它。

  3. 写你的第一篇博客文章。 起草一篇"如何[解决你的产品所解决的问题]"的帖子。在发布的第一周内发到Dev.to或你的博客。目标1,500-2,000字。

  4. 设置Google Search Console。 这只需要5分钟,从第一天就给你SEO数据。在发布前做好,这样你就有基线数据。


第6课:你的发布清单

"希望不是发布策略。清单才是。"

发布前清单

逐项检查。所有"必需"项勾选之前不要发布。"推荐"项如果需要可以在第1周完成。

产品(必需):

- [ ] 核心功能按着陆页描述的那样工作
- [ ] 购买 → 交付流程没有严重bug
- [ ] 在Chrome、Firefox和Safari中工作(Web产品)
- [ ] 移动端响应式着陆页(50%+流量来自移动端)
- [ ] 错误信息有帮助,而不是堆栈跟踪
- [ ] 异步操作有加载状态

着陆页(必需):

- [ ] 清晰的标题:8个词或更少描述它做什么
- [ ] 问题陈述:用客户的话描述3个痛点
- [ ] 解决方案部分:产品截图或演示
- [ ] 定价:可见、清晰,有购买按钮
- [ ] 行动号召:一个主要按钮,在首屏可见
- [ ] 隐私政策在页脚有链接
- [ ] 服务条款在页脚有链接

支付(必需):

- [ ] 结账流程在测试模式下端到端测试过
- [ ] 结账流程在正式模式下端到端测试过($1测试购买)
- [ ] Webhook收到支付确认
- [ ] 客户在支付后获得产品访问权
- [ ] 退款流程已记录文档(你一定会收到退款请求)
- [ ] 收据/发票自动发送

基础设施(必需):

- [ ] 自定义域名指向上线的站点
- [ ] HTTPS工作正常(绿色锁标)
- [ ] 可用性监控已激活
- [ ] 分析脚本已安装并在接收数据
- [ ] 联系邮箱工作正常(you@yourdomain.com)

分发(必需):

- [ ] Reddit帖子已起草并准备好
- [ ] Show HN帖子已起草并准备好(如适用)
- [ ] Twitter发布帖子串已起草
- [ ] 已确定2-3个社区用于分享

推荐(第1周):

- [ ] 社交分享预览的OpenGraph元标签
- [ ] 自定义404页面
- [ ] FAQ页面或区域
- [ ] 客户引导邮件序列(欢迎+使用指南)
- [ ] 更新日志页面(即使是空的——显示对更新的承诺)
- [ ] 博客文章:"我在48小时内构建了[产品]"
- [ ] Google Search Console已验证且站点地图已提交

发布后行动项

第1天(发布日):

上午:
- [ ] 在Reddit发帖(r/SideProject + 1个利基子版块)
- [ ] 发Show HN帖子(如适用)
- [ ] 发布Twitter发布帖子串

全天:
- [ ] 回复Reddit、HN和Twitter上的每一条评论
- [ ] 实时监控错误日志和分析
- [ ] 立即修复用户发现的任何bug
- [ ] 给每个客户发送个人感谢邮件

晚上:
- [ ] 检查指标:访客数、转化率、收入
- [ ] 截图你的分析仪表盘(以后你会想要这个)
- [ ] 写下最常见的3条反馈

第1周:

- [ ] 24小时内回复所有反馈和支持请求
- [ ] 修复发布期间发现的前3个bug/问题
- [ ] 写并发布你的第一篇博客文章
- [ ] 给所有客户发送请求反馈的跟进邮件
- [ ] 审查分析:哪些页面跳出率最高?
- [ ] 设置简单的反馈收集方式(邮件、Typeform或Canny)

要记录的周指标:
| 指标              | 目标    | 实际 |
|-------------------|---------|------|
| 独立访客          | 500+    |      |
| 结账点击率        | 2-5%    |      |
| 购买转化率        | 1-3%    |      |
| 收入              | $50+    |      |
| 支持请求          | <10     |      |
| 退款请求          | <2      |      |

第1个月:

- [ ] 基于客户反馈发布4次周改进
- [ ] 发布2+篇博客文章(SEO建设)
- [ ] 从客户收集3+条推荐语
- [ ] 把推荐语添加到着陆页
- [ ] 评估定价:太高?太低?(审查转化数据)
- [ ] 规划Product Hunt的"大型发布"(如适用)
- [ ] 开始为未来产品发布建立邮件列表
- [ ] 审查并调整你的分发渠道策略

月度财务审查:
| 类别              | 金额    |
|-------------------|---------|
| 毛收入            | $       |
| 支付处理器手续费   | $       |
| 托管/基础设施费用  | $       |
| API费用           | $       |
| 净利润            | $       |
| 投入的时间         |         |
| 有效时薪           | $       |

指标仪表盘

设置一个你每天检查的简单指标仪表盘。不需要花哨——电子表格就行。

=== 日指标(每天早上检查)===

日期: ___
昨天访客数: ___
昨天新客户数: ___
昨天收入: $___
支持请求: ___
可用时间: ___%

=== 周指标(每周一检查)===

所在周: ___
总访客数: ___
总客户数: ___
总收入: $___
转化率: ___% (客户数 / 访客数)
最多访问的页面: ___
最大流量来源: ___
最多的反馈主题: ___

=== 月指标(每月1日检查)===

月份: ___
总收入: $___
总支出: $___
净利润: $___
总客户数: ___
退款: ___
流失率(订阅): ___%
MRR(月经常性收入): $___
同比上月增长率: ___%

注重隐私的分析设置:

// 如果使用Plausible,大部分数据在他们的仪表盘中就能看到。
// 自定义事件追踪:

// 追踪结账点击
document.querySelector('#buy-button').addEventListener('click', () => {
  plausible('Checkout Click', {
    props: { tier: 'pro', price: '59' }
  });
});

// 追踪成功购买(从webhook成功处理器调用)
plausible('Purchase', {
  props: { tier: 'pro', revenue: '59' }
});

何时加码、转向或放弃

有了30天的数据,你就有足够的信号做出决策:

加码(继续,投入更多):

信号:
- 收入在逐周增长(哪怕缓慢)
- 客户在提供具体的功能请求(他们想要更多)
- 转化率稳定或在改善
- 你在获得有机流量(不用你发帖人们就在找到你)
- 至少有一个客户说"这帮我节省了[时间/金钱]"

行动:
- 增加分发力度(添加一个渠道)
- 发布最被请求的功能
- 略微提价
- 开始为未来发布建立邮件列表

转向(改变角度,保留核心):

信号:
- 有访客但没有销售(人们感兴趣但不购买)
- 来自意想不到的受众的销售(和你目标不同的人在购买)
- 客户以不同于你预期的方式使用产品
- 反馈一致指向一个不同于你正在解决的问题

行动:
- 为实际的受众/用例重写着陆页
- 根据真实受众的支付意愿调整定价
- 把功能优先级调整到人们实际在用的方向
- 保留代码,改变定位

放弃(停下来,学习,做别的):

信号:
- 尽管有分发努力但没有访客(需求问题)
- 有访客但零结账点击(调整后仍然持续的
  定位/定价问题)
- 收入连续4周以上停滞,没有增长趋势
- 你害怕去做这件事(独立产品动力很重要)
- 市场发生了变化(竞品发布、技术改变)

行动:
- 写一份复盘:什么有效、什么无效、学到了什么
- 保存代码——下一个产品可能用得上其中的部分
- 休息一周不做构建
- 开始新创意的验证流程
- 这不是失败。这是数据。大多数产品不行。
  能赚钱的开发者不是在一个产品上花一年的人,
  而是发布5个产品的人。

发布文档模板

这是模块 E 的交付物。创建这个文档并在执行发布时填写。

# 发布文档:[产品名]

## 发布前

### 验证摘要
- **搜索量:** [Google Trends/Ahrefs的数据]
- **帖子证据:** [5+个显示需求的帖子链接]
- **竞品调研:** [3+个竞品及其优劣]
- **"10人愿意付费"证据:** [你如何验证的]

### 产品
- **URL:** [上线产品URL]
- **域名:** [购买的域名]
- **托管:** [平台]
- **核心功能(v0.1):**
  1. [功能 1]
  2. [功能 2]
  3. [功能 3]

### 定价
- **价格:** $[金额]
- **层级结构:** [Basic/Pro/Team 或单一层级]
- **支付平台:** [Lemon Squeezy/Stripe]
- **结账URL:** [链接]

### 法律
- **隐私政策:** [URL]
- **服务条款:** [URL]
- **商业实体:** [类型 或 "个体经营者"]

## 发布

### 分发渠道
| 渠道    | 帖子URL   | 发布日期    | 结果 |
|---------|----------|------------|------|
| Reddit  | [链接]   | [日期]     | [访客数, 赞数] |
| HN      | [链接]   | [日期]     | [访客数, 分数] |
| Twitter | [链接]   | [日期]     | [展示数, 点击数] |

### 第1天指标
- 访客数: ___
- 结账点击数: ___
- 购买数: ___
- 收入: $___

### 第1周指标
- 总访客数: ___
- 总购买数: ___
- 总收入: $___
- 转化率: ___%
- 最多的反馈: ___

### 第1个月指标
- 总收入: $___
- 总支出: $___
- 净利润: $___
- 总客户数: ___
- 决定: [ ] 加码 [ ] 转向 [ ] 放弃

## 发布后路线图
- 第2周: [计划的改进]
- 第3周: [计划的改进]
- 第4周: [计划的改进]
- 第2个月: [计划的功能/扩展]

## 经验教训
- 有效的: ___
- 无效的: ___
- 下次会改变的: ___

4DA集成

4DA集成: 4DA的可操作信号按紧急度分类内容。一个关于热门包中漏洞的"严重"信号意味着:现在就构建修复工具或迁移工具,在任何人之前。一个关于新框架的"上升趋势"信号意味着:在竞争接近零的这个周末构建入门套件。第1课的48小时冲刺在创意来自时间敏感信号时最有效。把你的4DA情报源连接到冲刺日历——当高紧急度的机会出现时,封锁下一个周末并执行。能抓住机会的开发者和错过机会的开发者之间的区别不是天赋。是速度。4DA给你雷达。本模块给你发布序列。合在一起,把信号变成收入。

轮到你了

  1. 完成发布前清单。 逐项检查。每项标记完成或安排何时完成。不要跳过"必需"项。

  2. 创建你的发布文档。 把上面的模板复制到你喜欢的文档工具。填写你现在知道的一切。发布期间和之后要填的指标留空。

  3. 设定你的发布日期。 打开日历。选择未来2周内的一个特定周六。写下来。告诉某人——朋友、伴侣、Twitter粉丝。问责制让它变得真实。

  4. 设定你的放弃标准。 在发布之前决定:"如果在[Y]分发努力后30天内销售少于[X]笔,我将[转向/放弃]。"写在你的发布文档中。有预先承诺的标准能防止你因为沉没成本谬误而在一个死产品上投入数月。

  5. 发布它。 你有操作手册。你有工具。你有知识。剩下的只有行动。互联网在等你。


模块 E:完成

两周内你构建了什么

看看你现在拥有的、在开始本模块时还没有的东西:

  1. 一个48小时执行框架,你可以为你构建的每一个产品重复使用——从验证创意到上线产品,一个周末。
  2. 一种发布心态,优先考虑存在而非完美,数据而非猜测,迭代而非计划。
  3. 一套定价策略,基于真实心理学和真实数字,而非希望和低价。
  4. 一个法律基础,保护你而不会让你瘫痪——隐私政策、服务条款、实体计划。
  5. 一本分发操作手册,七个渠道的具体模板、时间安排和预期结果。
  6. 一套发布清单和追踪系统,把混乱变成流程——可重复、可衡量、可改进。
  7. 一个上线的产品,正在接受付款,真实的人在访问它。

最后一个才是重要的。其他一切都是准备。产品就是证明。

下一步:模块 E2 — 进化优势

模块 E1让你成功发布。模块 E2让你保持领先。

模块 E2涵盖的内容:

能持续获得收入的开发者不是发布一次就完事的人。他们是发布、迭代、并持续领先于市场的人。模块 E2给你保持领先的系统。

STREETS完整路线图

模块 标题 焦点 时长
S 主权设置 基础设施、法律、预算 第1-2周
T 技术护城河 可防御的优势、专有资产 第3-4周
R 收入引擎 带代码的具体变现方案 第5-8周
E 执行手册 发布序列、定价、第一批客户 第9-10周(完成)
E 进化优势 保持领先、趋势检测、适应 第11-12周
T 战术自动化 为被动收入自动化运营 第13-14周
S 叠加收入流 多个收入来源、组合策略 第15-16周

你已经过了中点。你有了上线的产品。这意味着你领先于95%想要建立独立收入但永远走不到这一步的开发者。

STREETS进度: 0 / 7 模块完成。

现在让它增长。


你的产品已上线。结账可以工作。人们可以付钱给你。

从现在开始的一切都是优化。而优化才是有趣的部分。

你的设备。你的规则。你的收入。

← 上一个 模块 R:收入引擎 下一个 → 模块 E:进化前沿