<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Bryant Chen</title>
    <link>https://bryantchen.cc/zh</link>
    <description>Bryant 的个人网站 — 独立开发、AI、产品思考</description>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 14 May 2026 07:07:20 GMT</lastBuildDate>
    <atom:link href="https://bryantchen.cc/zh/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>形式即媒介，决定了用户/读者会看到什么——微信贴图，大家看图看帖子内容；视频号，大家看视频，文一般不太读。

而平台不同，代表的是背后审核机制、流量分发、用户画…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-05-12-form-is-medium</guid>
      <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
      <description>形式即媒介，决定了用户/读者会看到什么——微信贴图，大家看图看帖子内容；视频号，大家看视频，文一般不太读。

而平台不同，代表的是背后审核机制、流量分发、用户画像的差异。

真正开始面向商业化和产品发布做内容之后，对前面这些概念的理解才更具体一些。以前只知道大概念，但不是真正的「知道」。

知行合一，大概就是如此。</description>
      <content:encoded><![CDATA[形式即媒介，决定了用户/读者会看到什么——微信贴图，大家看图看帖子内容；视频号，大家看视频，文一般不太读。

而平台不同，代表的是背后审核机制、流量分发、用户画像的差异。

真正开始面向商业化和产品发布做内容之后，对前面这些概念的理解才更具体一些。以前只知道大概念，但不是真正的「知道」。

知行合一，大概就是如此。]]></content:encoded>
    </item>
    <item>
      <title>![从 50 分到 80 分](/images/thoughts/2026-05-01-50-to-80.png)

现阶段，用 AI 做一个 50 分的 De…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-05-01-from-50-to-80</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <description>![从 50 分到 80 分](/images/thoughts/2026-05-01-50-to-80.png)

现阶段，用 AI 做一个 50 分的 Demo，可能只要半天甚至一两个小时。但从 50 分到 80 分，中间往往存在巨大的鸿沟。

多数时候，交付一个 50 分的 Demo 不太能证明什么。**缩短从 50 到 80 的时间、交付完成度尽可能高的产品体验和服务，就显得尤为重要。**

当然，如果你用 50 分的产品已经找到了目标用户和商业模式，可能也是好的——想清楚自己想做的到底是几十分的产品，很重要。

&gt; 图片由 GPT-image-...</description>
      <content:encoded><![CDATA[![从 50 分到 80 分](/images/thoughts/2026-05-01-50-to-80.png)

现阶段，用 AI 做一个 50 分的 Demo，可能只要半天甚至一两个小时。但从 50 分到 80 分，中间往往存在巨大的鸿沟。

多数时候，交付一个 50 分的 Demo 不太能证明什么。**缩短从 50 到 80 的时间、交付完成度尽可能高的产品体验和服务，就显得尤为重要。**

当然，如果你用 50 分的产品已经找到了目标用户和商业模式，可能也是好的——想清楚自己想做的到底是几十分的产品，很重要。

> 图片由 GPT-image-2 生成。]]></content:encoded>
    </item>
    <item>
      <title>Vibe coding 有一个常见的弯路：先把 demo 做出来，过程中忽略了思考和调研，一直闷头让 AI 改或者干。

但有的时候停下来看看典型产品是怎么做的…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-05-01-look-before-vibing</guid>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <description>Vibe coding 有一个常见的弯路：先把 demo 做出来，过程中忽略了思考和调研，一直闷头让 AI 改或者干。

但有的时候停下来看看典型产品是怎么做的、同类问题别人是怎么处理的，能少走不少弯路。

写在开发 ColorWander 时踩的一些坑之后。</description>
      <content:encoded><![CDATA[Vibe coding 有一个常见的弯路：先把 demo 做出来，过程中忽略了思考和调研，一直闷头让 AI 改或者干。

但有的时候停下来看看典型产品是怎么做的、同类问题别人是怎么处理的，能少走不少弯路。

写在开发 ColorWander 时踩的一些坑之后。]]></content:encoded>
    </item>
    <item>
      <title>两个最近的想法：

1. 想法很容易被复制，但完成度和细节难以被抄袭，营销和推广渠道也难以被复制，积累的数据和语料短期内更难被快速追上。快速做出一个 demo …</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-29-completeness-and-humanity</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <description>两个最近的想法：

1. 想法很容易被复制，但完成度和细节难以被抄袭，营销和推广渠道也难以被复制，积累的数据和语料短期内更难被快速追上。快速做出一个 demo 的难度比以往小了很多，每个人都可以说「我快速 vibe 了一个 xx」，但真正交付一个完整体验的产品并不容易——让 100、1000 甚至更多人真正用上你提供的服务，是难的。

2. 朋友说：「我发现身边之前做生产力工具的朋友，现在都不想做纯生产力了。」我回答：「我觉得这是阶段问题——对模型和 Agent 的能力越乐观、用得越深，对纯生产力就越悲观，对好玩、有趣、有人文关怀的东西就越关注。」内心是...</description>
      <content:encoded><![CDATA[两个最近的想法：

1. 想法很容易被复制，但完成度和细节难以被抄袭，营销和推广渠道也难以被复制，积累的数据和语料短期内更难被快速追上。快速做出一个 demo 的难度比以往小了很多，每个人都可以说「我快速 vibe 了一个 xx」，但真正交付一个完整体验的产品并不容易——让 100、1000 甚至更多人真正用上你提供的服务，是难的。

2. 朋友说：「我发现身边之前做生产力工具的朋友，现在都不想做纯生产力了。」我回答：「我觉得这是阶段问题——对模型和 Agent 的能力越乐观、用得越深，对纯生产力就越悲观，对好玩、有趣、有人文关怀的东西就越关注。」内心是真的这样认为的。

**做出好玩、有人文关怀的产品，越来越重要了。**]]></content:encoded>
    </item>
    <item>
      <title>最近开始把一些开发任务放到 Codex 上完成，愈发觉得：完善的工具链（直接调用生图 API 出图、markdown 直接阅读、与各类工具良好的集成）、可靠的用…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-29-no-one-leads-forever</guid>
      <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
      <description>最近开始把一些开发任务放到 Codex 上完成，愈发觉得：完善的工具链（直接调用生图 API 出图、markdown 直接阅读、与各类工具良好的集成）、可靠的用户体验（可视化程度高），再加上重新站起来的 GPT-5.5 大脑——是真的好用。

各领风骚一两月，OpenAI 又站起来了。没有谁可以说自己永远领先，也永远不要低估一个强者拿下一块市场的决心。

作为工具使用者，在这个时代，大可不必为了所谓的忠诚和习惯把自己锁在某个工具上。什么好用、什么先进就用什么，是一点都没错的。

另外要注意的是：**尽量不要用免费或平替——便宜的东西永远是最贵的。**</description>
      <content:encoded><![CDATA[最近开始把一些开发任务放到 Codex 上完成，愈发觉得：完善的工具链（直接调用生图 API 出图、markdown 直接阅读、与各类工具良好的集成）、可靠的用户体验（可视化程度高），再加上重新站起来的 GPT-5.5 大脑——是真的好用。

各领风骚一两月，OpenAI 又站起来了。没有谁可以说自己永远领先，也永远不要低估一个强者拿下一块市场的决心。

作为工具使用者，在这个时代，大可不必为了所谓的忠诚和习惯把自己锁在某个工具上。什么好用、什么先进就用什么，是一点都没错的。

另外要注意的是：**尽量不要用免费或平替——便宜的东西永远是最贵的。**]]></content:encoded>
    </item>
    <item>
      <title>发现隐性知识/经验的关键在于多问，你不问就不会得到类似的知识和经验。

好在我愿意多问，多问就可以省去很多额外的折腾和烦恼。

记一次去医院检查收获的知识。</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-24-asking-unlocks-tacit-knowledge</guid>
      <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
      <description>发现隐性知识/经验的关键在于多问，你不问就不会得到类似的知识和经验。

好在我愿意多问，多问就可以省去很多额外的折腾和烦恼。

记一次去医院检查收获的知识。</description>
      <content:encoded><![CDATA[发现隐性知识/经验的关键在于多问，你不问就不会得到类似的知识和经验。

好在我愿意多问，多问就可以省去很多额外的折腾和烦恼。

记一次去医院检查收获的知识。]]></content:encoded>
    </item>
    <item>
      <title>做产品的时候我在想跑步。

1. 长期主义的核心是，让自己一直在跑道上，以平和、积极、适合自己的节奏，跑完这场马拉松。
2. 做产品很多时候第一下是迷茫的，做进…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-24-product-as-marathon</guid>
      <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
      <description>做产品的时候我在想跑步。

1. 长期主义的核心是，让自己一直在跑道上，以平和、积极、适合自己的节奏，跑完这场马拉松。
2. 做产品很多时候第一下是迷茫的，做进去之后会收获一些不一样的惊喜；做得差不多的时候，又会发现琐碎的细节特别多。再往后就是磨细节——细节是魔鬼，也决定了你的产品能不能被别人真正喜欢。
3. 不焦虑的核心其实是，相信自己可以跑完这场马拉松，并且能以相对舒服的节奏拿到自己的 PB（Personal Best）。</description>
      <content:encoded><![CDATA[做产品的时候我在想跑步。

1. 长期主义的核心是，让自己一直在跑道上，以平和、积极、适合自己的节奏，跑完这场马拉松。
2. 做产品很多时候第一下是迷茫的，做进去之后会收获一些不一样的惊喜；做得差不多的时候，又会发现琐碎的细节特别多。再往后就是磨细节——细节是魔鬼，也决定了你的产品能不能被别人真正喜欢。
3. 不焦虑的核心其实是，相信自己可以跑完这场马拉松，并且能以相对舒服的节奏拿到自己的 PB（Personal Best）。]]></content:encoded>
    </item>
    <item>
      <title>![ClawPuter star history](/images/thoughts/2026-04-22-clawputer-100-stars.svg)

…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-22-clawputer-100-stars</guid>
      <pubDate>Wed, 22 Apr 2026 12:00:00 GMT</pubDate>
      <description>![ClawPuter star history](/images/thoughts/2026-04-22-clawputer-100-stars.svg)

今天 ClawPuter 的 GitHub star 数正式破 100。佛系地发，结果就这样悄悄达成了。

这是我自己从 0 到 1 做出来的第一个百星项目，虽然只是一个数字，但值得给自己记一下这件小事。</description>
      <content:encoded><![CDATA[![ClawPuter star history](/images/thoughts/2026-04-22-clawputer-100-stars.svg)

今天 ClawPuter 的 GitHub star 数正式破 100。佛系地发，结果就这样悄悄达成了。

这是我自己从 0 到 1 做出来的第一个百星项目，虽然只是一个数字，但值得给自己记一下这件小事。]]></content:encoded>
    </item>
    <item>
      <title>最近的一个反思：我不太喜欢追求最佳实践，导致动手太快经常踩坑，特别是一些流程性的事情。写两个例子，引以为戒：

1. **Google AdSense 账号**…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-22-follow-best-practices</guid>
      <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
      <description>最近的一个反思：我不太喜欢追求最佳实践，导致动手太快经常踩坑，特别是一些流程性的事情。写两个例子，引以为戒：

1. **Google AdSense 账号**：手速太快，填了 HK 的资料，但我自己没有 HK 的收信地址。影响是后续可能无法兑换广告收益。在群里问了之后，只能先把账号关掉，不确定后面重新申请会不会受阻。
2. **域名注册**：手速太快又贪便宜，买了个 `.cc` 后缀的域名。后来做 SEO 的时候才发现，WTF，sitemap 没法自动收录，还会遇到各种坑。

验证想法的时候，动手要快；但遇到已经有规范、SOP 或行业最佳实践的事情，老...</description>
      <content:encoded><![CDATA[最近的一个反思：我不太喜欢追求最佳实践，导致动手太快经常踩坑，特别是一些流程性的事情。写两个例子，引以为戒：

1. **Google AdSense 账号**：手速太快，填了 HK 的资料，但我自己没有 HK 的收信地址。影响是后续可能无法兑换广告收益。在群里问了之后，只能先把账号关掉，不确定后面重新申请会不会受阻。
2. **域名注册**：手速太快又贪便宜，买了个 `.cc` 后缀的域名。后来做 SEO 的时候才发现，WTF，sitemap 没法自动收录，还会遇到各种坑。

验证想法的时候，动手要快；但遇到已经有规范、SOP 或行业最佳实践的事情，老老实实遵循是最省心的路，能少走很多弯路。

**遇事不决，多问问朋友、群友、有过经验的大佬。长嘴，有的时候比动手更重要。**]]></content:encoded>
    </item>
    <item>
      <title>![X 数据截图](/images/thoughts/2026-04-20-x-ship-before-perfect.png)

这条 X 下午发布后小火了一…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-20-ship-before-perfect</guid>
      <pubDate>Mon, 20 Apr 2026 02:15:00 GMT</pubDate>
      <description>![X 数据截图](/images/thoughts/2026-04-20-x-ship-before-perfect.png)

这条 X 下午发布后小火了一下。数据不算夸张，但已经是我有史以来数据最好的一条。

果然还是发布比完美更重要。发布前我还在想，要不晚点录一个英文讲解视频再发出去吧。但快到饭点了，我着急去做饭，所以最后只是发了一条图文：英文字幕 + 中文 demo 讲解。

结果反而有了这样的数据。

下次再犹豫前，一定在心里默念：先发了再说。</description>
      <content:encoded><![CDATA[![X 数据截图](/images/thoughts/2026-04-20-x-ship-before-perfect.png)

这条 X 下午发布后小火了一下。数据不算夸张，但已经是我有史以来数据最好的一条。

果然还是发布比完美更重要。发布前我还在想，要不晚点录一个英文讲解视频再发出去吧。但快到饭点了，我着急去做饭，所以最后只是发了一条图文：英文字幕 + 中文 demo 讲解。

结果反而有了这样的数据。

下次再犹豫前，一定在心里默念：先发了再说。]]></content:encoded>
    </item>
    <item>
      <title>iOS 翻墙客户端避坑：为什么免费 App 全军覆没，$2.99 就解决了</title>
      <link>https://bryantchen.cc/zh/posts/ios-proxy-client-pitfalls</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/ios-proxy-client-pitfalls</guid>
      <pubDate>Thu, 16 Apr 2026 12:00:00 GMT</pubDate>
      <description>VPS 自建代理，手机端连不上。换了 3 个免费 App 都失败，最后发现是底层核心的兼容性问题。完整排查过程、5 款 iOS 客户端对比、以及一个关于「该省的钱」的教训。</description>
      <content:encoded><![CDATA[> 本文基于我的实际踩坑经验，由我和 Claude（AI）共创完成。技术细节均来自实际环境验证。

## 背景

我在 VPS 上用 Xray 搭了代理，提供两种协议：

- **Shadowsocks**（SS）：经典方案，端口 `18388`
- **VLESS Reality**：新一代方案，端口 `443`，伪装成正常 HTTPS 流量

Mac 端通过 SSH 隧道连接，一直很稳。但某天发现手机突然连不上了——而且是「一直都连不上」的那种。

## 排查过程

### 第一步：确认 VPS 没问题

SSH 登录 VPS，检查三件事：

```bash
# Xray 在运行吗？
systemctl status xray
# ✅ active (running)

# 端口在监听吗？
ss -tlnp | grep xray
# ✅ 18388 和 443 都在

# VPS 能上网吗？
curl -s -o /dev/null -w '%{http_code}' https://www.google.com
# ✅ 200
```

VPS 没问题。

### 第二步：免费 App 轮番上阵

手机上依次试了三个免费客户端：

| App | 结果 |
|-----|------|
| **Streisand** | SS 超时，VLESS 超时 |
| **V2Box** | SS 超时，VLESS 超时 |
| **Hiddify** | SS 超时，VLESS 超时 |

全军覆没。

### 第三步：Mac 上复现

我在 Mac 上装了 `xray` 客户端，直接测试代理是否能通：

```bash
# 测试 SS
xray run -config ss-client.json &
curl -x socks5://127.0.0.1:10808 https://ifconfig.me
# ❌ 空响应，exit code 52

# 测试 VLESS Reality
xray run -config vless-client.json &
curl -x socks5://127.0.0.1:10809 https://ifconfig.me
# ✅ 返回 VPS IP
```

**发现一**：SS 从 Mac 也不通——说明是协议层面的问题，不是手机的问题。

**发现二**：VLESS Reality 从 Mac 完全正常。

### 第四步：VPS 本地环回测试

在 VPS 上跑一个 xray 客户端，连自己的 SS 端口（绕过外部网络）：

```bash
# VPS 本地 → localhost:18388 → 出口
curl -x socks5://127.0.0.1:10900 http://httpbin.org/ip
# ✅ 成功
```

VPS 本地 SS 是通的，但从外部连就不通——**GFW 精准拦截了 SS 协议流量。**

### 第五步：定位 VLESS 的手机端问题

VLESS Reality 从 Mac 通，从手机不通。三个免费 App 有什么共同点？

**它们都用 sing-box 作为底层核心。**

sing-box 是一个开源的代理内核，支持多种协议。但它对 Xray 的 Reality 实现存在兼容性问题，尤其是 `xtls-rprx-vision` 这个 flow 参数。

## 最终解决

换了 **Shadowrocket**（$2.99，美区 App Store），复制 VLESS Reality 链接，打开 App 自动导入，秒连。

整个过程花了不到 30 秒。

而之前折腾免费 App 花了两个多小时。

## 两个核心结论

### 1. Shadowsocks 已经不安全了

GFW 能精准识别 SS 协议特征并拦截。表现为：

- TCP 握手成功（端口是通的）
- 但协议层数据回不来（空响应）
- 换任何客户端都一样

如果你还在用 SS，建议尽快迁移到 VLESS Reality 或 Hysteria2。VLESS Reality 伪装成正常的 HTTPS 流量（SNI 指向 microsoft.com 等大站），目前 GFW 无法识别。

### 2. 免费 iOS 客户端共享一个致命缺陷

市面上主流免费客户端的底层核心对比：

| App | 底层核心 | VLESS Reality 兼容性 |
|-----|---------|---------------------|
| Streisand | sing-box | ⚠️ 不兼容 |
| V2Box | sing-box | ⚠️ 不兼容 |
| Hiddify | sing-box | ⚠️ 不兼容 |
| Shadowrocket | 自研 | ✅ 完美 |
| Surge 5 | 自研 | ✅ 完美 |

所有免费 App 都依赖 sing-box，而 sing-box 与 Xray 的 Reality 实现有兼容性问题。这不是某个 App 的 bug——是核心层面的问题，换再多免费 App 也一样。

## 5 款 iOS 代理客户端全对比

| | Shadowrocket | Surge 5 | Streisand | V2Box | Hiddify |
|---|---|---|---|---|---|
| **价格** | $2.99 买断 | $49.99/年 | 免费 | 免费 | 免费开源 |
| **底层核心** | 自研 | 自研 | sing-box | sing-box | sing-box |
| **SS** | ✅ | ✅ | ✅ | ✅ | ✅ |
| **VLESS Reality** | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ |
| **Hysteria2** | ✅ | ✅ | ✅ | ✅ | ✅ |
| **稳定性** | 高 | 高 | 中 | 中 | 低 |
| **推荐度** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐ | ⭐ |

**Shadowrocket 是性价比之王**：$2.99 一次性买断，自研核心，协议支持全面，更新频繁。Surge 功能更强但订阅制，适合重度用户。

## 踩坑清单

| 坑 | 表现 | 真实原因 | 解决方案 |
|----|------|----------|----------|
| SS 全面超时 | 所有客户端连不上 | GFW 识别 SS 协议拦截 | 弃用 SS，改用 VLESS Reality |
| 免费 App VLESS 超时 | Streisand/V2Box/Hiddify 全不行 | sing-box 核心与 Xray Reality 不兼容 | 换 Shadowrocket |
| `curl` 测端口通 ≠ 代理可用 | TCP 连接成功但代理不通 | TCP 握手不代表协议层正常 | 用 xray 客户端实际测代理 |
| Hiddify dev 版完全不可用 | 任何配置都连不上 | iOS dev 版 sing-box 核心有 bug | 不要用 dev 版 |
| Xray 长时间运行退化 | 跑了 45 天后行为异常 | 进程状态退化 | 定期 `systemctl restart xray` |

## 推荐配置方案

### 服务端

- **协议**：VLESS + Reality（Xray 最新版）
- **伪装**：SNI 指向 `www.microsoft.com`
- **端口**：443（看起来就是正常 HTTPS）

### 客户端

- **Mac**：SSH 隧道 (`ssh -D 1080`) 或 xray 客户端
- **iOS**：Shadowrocket，导入 `vless://` 链接即可

### 导入方式

配置好服务端后，生成 `vless://` 分享链接。iOS 端复制链接，打开 Shadowrocket 自动识别导入。具体参数：

```
协议：VLESS
安全：Reality
传输：TCP
Flow：xtls-rprx-vision
SNI：www.microsoft.com
Fingerprint：chrome
```

## 写在最后

在翻墙工具上花 $2.99 不是浪费——**它省掉的是两小时的排查时间和三个不同 App 之间反复横跳的挫败感**。

免费工具不是不好用，而是当你的服务端用了较新的协议（比如 VLESS Reality），它们共享的底层核心就可能成为瓶颈。这种问题从 App 的界面上完全看不出来，只会显示一个毫无信息量的「超时」。

最贵的成本从来不是工具本身的价格，而是你为了「省这点钱」花掉的时间。]]></content:encoded>
    </item>
    <item>
      <title>独立开发者广告变现：Adsterra 接入完整指南（附真实收入数据）</title>
      <link>https://bryantchen.cc/zh/posts/adsterra-integration-guide</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/adsterra-integration-guide</guid>
      <pubDate>Thu, 16 Apr 2026 00:30:00 GMT</pubDate>
      <description>AdSense 注册卡在手机验证，转投 Adsterra 一个晚上搞定；但后续发现广告会在用户端强制跳转，最终我选择先关掉，重新评估 AdSense。</description>
      <content:encoded><![CDATA[> 本文根据我和 Claude（AI）的实际项目对话记录整理而成。所有数据、踩坑经验、代码示例均来自 [AIBT](https://aibtapp.com) 的真实接入过程。

> **2026-04-16 下午更新**：上线后我发现，这种方式加上的广告在用户端总是会触发强制跳转。现在还不确定是我哪里没设置对，还是广告格式/广告网络本身的问题，但它已经明显影响用户体验，所以我先把这套广告关掉了。  
>  
> 这次体验之后，我对结论的判断也变了：Adsterra 的优势是接入快、门槛低，适合验证广告链路；但如果从用户体验出发，长期还是应该优先想办法接入 Google AdSense。

## 先说结论：AdSense 怎么把我卡住的

我的项目是 [AIBT](https://aibtapp.com)——一个 AI 版 MBTI 性格测试，72 个 SEO 页面、三语支持（中英日）、Cloudflare Pages 部署。按理说内容质量不差，但注册 AdSense 的时候遇到了一个致命问题：

**付款地区一旦选了就不能改。**

我选了 Hong Kong（因为有港卡），结果手机验证要求 +852 号码。我手上只有 +86 和美国号，验证过不了。这个 AdSense 账号就废了——不能改地区，不能删账号重来（同一个 Google 账号只能开一个 AdSense）。

如果你也没有对应地区的手机号，AdSense 这条路可能走不通。

## 为什么当时转向 Adsterra

| | Google AdSense | Adsterra |
|---|---|---|
| 审批时间 | 1-4 周 | **几小时** |
| 最低流量要求 | 无官方要求但低流量常被拒 | **无要求** |
| 手机号验证 | 必须匹配付款地区 | **不需要** |
| 付款门槛 | $100 | **$5**（Paxum/USDT） |
| 付款方式 | 仅银行电汇 | PayPal、USDT、Wire、Paxum |
| 广告质量 | 高 | 中等，且需要警惕跳转类体验问题 |

当时的判断是：AdSense 是"大厂审批制"，Adsterra 是"自助服务制"。对于日活百级的小站，Adsterra 的短期 ROI 更高——因为你至少能接上。

但这只是从"能不能快速跑通广告"出发的判断。如果把用户体验放在第一位，尤其是产品还需要用户停留、分享、二次访问时，强制跳转的伤害会远远大于那一点广告收入。

## 注册流程（5 分钟）

### 1. 创建账号

打开 [Adsterra](https://beta.publishers.adsterra.com/referral/DUEf5kCsSX) → Sign Up → 选 **Publisher**。

需要填的：
- **E-mail**：常用邮箱
- **Login**：用户名
- **Messenger**：随便选一个填社交账号（不会真的联系你）
- **Country**：选你实际所在的国家。**这个不影响收款**——不像 AdSense 会锁死，Adsterra 后面随时可以选 PayPal/USDT 等方式收款

不需要手机号，不需要银行信息，不需要身份验证。

### 2. 添加网站

Websites → ADD WEBSITE → 填域名和分类。

Adsterra 的分类很粗（Social / Movies / Downloads...），没有 Technology 或 Entertainment。选 **Other** 最安全。

**Adult ads 一定要关掉**——除非你是成人内容站。

### 3. 选广告格式（最关键的决策）

这步决定了你的收入水平和用户体验之间的平衡。

**相对克制的：**

- **Native Banner** — 和内容混排，看起来像推荐内容，CTR 较高，视觉干扰也相对低
- **Banner** — 传统展示广告。选 728x90（桌面横幅）+ 300x250（通用方块）+ 320x50（手机横条）三个尺寸就够

**现在我会非常谨慎的：**

- **Popunder** — 用户关闭/切换页面时弹窗。CPM 是 Banner 的 3-5 倍，但影响体验。之前我还觉得可以只在 SEO 流量页放，现在会更保守：如果站点还在早期、用户信任还没建立，最好不要上

**不要选的：**

- **Social Bar** — 浮动通知条，遮挡内容
- **Smartlink** — 跳转广告页，完全不适合

我的这次问题是：即使没有刻意做跳转页，用户端仍然出现了强制跳转。它不一定代表所有 Adsterra 配置都会这样，但足够说明一点：广告上线之后一定要自己用真实设备多测几轮，尤其要测移动端、无痕窗口、不同地区网络和首次访问场景。

### 4. 等待激活

提交后 3 分钟刷新页面，状态变成 Active。比泡一杯咖啡还快。

### 5. 获取代码

每个 Ad Unit 右侧 GET CODE → 复制 HTML/JS 代码。

## 投放策略：哪些页面放什么广告

**核心原则：越是需要用户分享/互动的页面，广告越要克制。**

| 页面类型 | Native Banner | 300x250 | 728x90 / 320x50 | Popunder |
|---|---|---|---|---|
| 首页 | 谨慎 | ❌ | ❌ | ❌ |
| 核心体验页（测试结果） | 谨慎 | ❌ | ❌ | ❌ |
| 内容详情页（SEO 页） | 可测试 | 可测试 | 可测试 | 不建议 |
| 工具页（统计/FAQ） | 可测试 | ❌ | 可测试 | 不建议 |

**为什么首页和结果页都要克制？**

首页弹窗 = 用户第一次来就被弹，直接走人。结果页是用户截图分享的页面——分享带来的免费流量，比那点广告收入值钱得多。

这次我遇到强制跳转之后，更确定了一件事：早期产品不要为了几美分收入牺牲第一印象。广告可以以后再补，信任一旦丢掉很难补回来。

**为什么详情页可以测试？**

这些页面的流量来自 Google 搜索，用户是"路人"，对广告容忍度高，是广告变现的主力。

但"可以测试"不等于"可以牺牲体验"。最小可行做法是：先只放一个最克制的展示广告，观察真实用户路径、跳出率和是否有异常跳转，再决定要不要扩大。

## 技术实现

### 响应式：桌面和手机显示不同广告

```html
<style>
.ad-desktop { display: block; }
.ad-mobile { display: none; }
@media (max-width: 768px) {
  .ad-desktop { display: none; }
  .ad-mobile { display: block; }
}
</style>

<!-- 桌面：728x90 -->
<div class="ad-desktop"><!-- 广告代码 --></div>

<!-- 手机：320x50 -->
<div class="ad-mobile"><!-- 广告代码 --></div>
```

### 批量注入：几十个页面不用手动加

AIBT 有 72 个 personality 页面 × 3 语言 = 216 个 HTML 文件。手动加太慢，写个 Python 脚本：

```python
from pathlib import Path

AD_CODE = '''<!-- 你的广告代码 -->'''

for html_file in Path('personality').rglob('index.html'):
    html = html_file.read_text()
    if '广告标识' not in html:  # 幂等检查，避免重复注入
        html = html.replace('<footer>', AD_CODE + '\n<footer>')
        html_file.write_text(html)
```

### 动态页面：JS 渲染后注入

SPA 或动态渲染的页面不能直接在 HTML 里写广告代码。用 JS 动态创建：

```javascript
const adContainer = document.getElementById('ad-slot');
if (adContainer && !adContainer.dataset.loaded) {
  adContainer.dataset.loaded = '1';
  const s = document.createElement('script');
  s.async = true;
  s.src = '你的广告脚本URL';
  adContainer.appendChild(s);
}
```

### 上线后一定要做体验回归

广告代码不是普通静态组件，它会加载第三方脚本，也可能根据地区、设备、广告库存返回不同内容。接上之后至少要检查：

- 首次访问会不会自动跳转
- 移动端是否遮挡核心按钮
- 返回上一页、切换标签页时有没有弹窗
- 无痕窗口和未登录状态是否表现不同
- 广告拦截器关闭后是否出现异常行为

这一步我之前做得不够，直到周四下午才发现用户端会强制跳转。以后接广告，我会把这类检查当成发布前的必选项。

## 别忘了更新隐私政策

接入广告后必须在隐私政策里披露，否则可能违反 GDPR/CCPA。在"第三方服务"部分加一行：

> **Adsterra**：内容页面的展示广告。适用 [Adsterra 的隐私政策](https://adsterra.com/privacy-policy/)。

如果后面像我一样临时关掉广告，也应该同步检查隐私政策和页面上的广告披露，避免文案和实际行为不一致。

## 真实收入数据

**第一天**：34 次展示、0 次点击、$0 收入、CPM $0.094。

别慌——新站就是这样。Adsterra 的算法需要几天到几周来学习你的流量质量，然后才会分配更高 CPM 的广告。

**合理预期：**

| 日均访问 | 月展示量 | 预估月收入 |
|---|---|---|
| 100 | 3,000 | $3-10 |
| 500 | 15,000 | $15-50 |
| 1,000 | 30,000 | $30-100 |

测试/娱乐类站点 CPM 通常在 $1-3。不会让你暴富，但如果广告体验不可控，"完全被动收入"也可能变成"完全被动伤害用户体验"。

所以我现在的判断更保守：早期可以用 Adsterra 跑通广告接入和收入链路，但不要把它当成默认长期方案。只要你还在意用户体验和品牌信任，最终还是要认真解决 AdSense 的接入问题，或者至少选择更可控的广告网络。

## 常见问题

**Q: 广告加了但看不到？**
三种可能：(1) 广告拦截器 → 关掉；(2) 新站填充率需要时间 → 等几小时；(3) 你的地区暂时没广告库存。

**Q: 可以同时接 AdSense 和 Adsterra 吗？**
可以，但建议不同页面放不同家的广告，避免同页面抢资源拉低 CPM。

**Q: 网站两侧空白能放广告吗？**
单栏布局的两侧空白是 body 背景，要放广告需要改整个页面结构，成本远大于收益。考虑底部悬浮横幅作为替代。

**Q: Popunder 会不会让用户反感？**
会，而且比我一开始预期的影响更大。现在我的建议是：早期产品先不要放 Popunder。SEO 页也可以等流量更稳定、埋点更完整之后再小范围测试。

**Q: 这次踩坑之后，还推荐 Adsterra 吗？**
如果你的目标是"快速接上广告，看看收入链路能不能跑通"，可以试。但如果你的目标是"在不明显伤害用户体验的前提下长期变现"，我现在会优先考虑 AdSense。Adsterra 的接入门槛低，但低门槛不等于低风险。

---

*本文整理自我和 Claude（AI）的实际项目对话记录。如果你也在做独立项目的广告变现，希望这篇能帮你少踩几个坑。*

---

如果你也想试试 Adsterra，欢迎通过[我的邀请链接](https://beta.publishers.adsterra.com/referral/DUEf5kCsSX)注册——对你没有任何额外费用，也是对本博客的一点支持。但基于我这次的实际体验，建议你先小范围测试，不要一上来就在核心页面全量打开。]]></content:encoded>
    </item>
    <item>
      <title>对于一些基础设施类的工具和服务，能付费就不要轻易自己折腾。费时间、费力气，有的时候还搞不定。今天在手机端 Shadowrocket 这个工具的选择上被狠狠上了一…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-16-pay-for-infra-tools</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <description>对于一些基础设施类的工具和服务，能付费就不要轻易自己折腾。费时间、费力气，有的时候还搞不定。今天在手机端 Shadowrocket 这个工具的选择上被狠狠上了一课——其实早就该选它了，之前一直用开源或免费的客户端，各种兼容性问题。来来回回折腾了三个 App 两个多小时，最后 $2.99 买断，30 秒搞定。

最贵的成本从来不是工具本身的价格，而是你为了「省这点钱」花掉的时间。

详细踩坑记录：[iOS 翻墙客户端避坑](/zh/posts/ios-proxy-client-pitfalls)</description>
      <content:encoded><![CDATA[对于一些基础设施类的工具和服务，能付费就不要轻易自己折腾。费时间、费力气，有的时候还搞不定。今天在手机端 Shadowrocket 这个工具的选择上被狠狠上了一课——其实早就该选它了，之前一直用开源或免费的客户端，各种兼容性问题。来来回回折腾了三个 App 两个多小时，最后 $2.99 买断，30 秒搞定。

最贵的成本从来不是工具本身的价格，而是你为了「省这点钱」花掉的时间。

详细踩坑记录：[iOS 翻墙客户端避坑](/zh/posts/ios-proxy-client-pitfalls)]]></content:encoded>
    </item>
    <item>
      <title>读朋友三年前写的一篇关于黑客松参赛感悟的文章。我上次读这篇文章的感受已经记不起来了，不过昨晚再读的时候，有些地方挺有趣的：

会发现里面技术的部分变化的真快，我…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-15-hackathon-essay-time</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <description>读朋友三年前写的一篇关于黑客松参赛感悟的文章。我上次读这篇文章的感受已经记不起来了，不过昨晚再读的时候，有些地方挺有趣的：

会发现里面技术的部分变化的真快，我三年前读的时候有些其实都没太 get，现在看，觉得这些技术都是上个世纪的东西了。

但不变的是，关于产品的洞察、比如散步、BGM、一些人文的东西，我觉得现在都还是有意义的，我也会时不时想到这些 idea。

另外就是说，很难想象三年前大家用了 6 个人做了 48 小时的东西，在今天可能一个人一小时就可以做出来了。

很好的一篇文章。人就是要多写，即便书写的不是历史，在人类的长河中留下自己的一点痕迹...</description>
      <content:encoded><![CDATA[读朋友三年前写的一篇关于黑客松参赛感悟的文章。我上次读这篇文章的感受已经记不起来了，不过昨晚再读的时候，有些地方挺有趣的：

会发现里面技术的部分变化的真快，我三年前读的时候有些其实都没太 get，现在看，觉得这些技术都是上个世纪的东西了。

但不变的是，关于产品的洞察、比如散步、BGM、一些人文的东西，我觉得现在都还是有意义的，我也会时不时想到这些 idea。

另外就是说，很难想象三年前大家用了 6 个人做了 48 小时的东西，在今天可能一个人一小时就可以做出来了。

很好的一篇文章。人就是要多写，即便书写的不是历史，在人类的长河中留下自己的一点痕迹也是不错的。]]></content:encoded>
    </item>
    <item>
      <title>前几周我总说产品闭环，产品闭环的一个好处就是用数据来让你自己彻底死心或者 pivot，不然你总是心存侥幸。</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-15-product-loop-pivot</guid>
      <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
      <description>前几周我总说产品闭环，产品闭环的一个好处就是用数据来让你自己彻底死心或者 pivot，不然你总是心存侥幸。</description>
      <content:encoded><![CDATA[前几周我总说产品闭环，产品闭环的一个好处就是用数据来让你自己彻底死心或者 pivot，不然你总是心存侥幸。]]></content:encoded>
    </item>
    <item>
      <title>科比退役之战十周年，那一年我大四，在实验室里看完了这场比赛。时间过得太快了，转眼十年又过去了，联盟又安排了湖人 vs 爵士作为这个赛季常规赛的最后一场。

睡前…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-13-kobe-last-game</guid>
      <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
      <description>科比退役之战十周年，那一年我大四，在实验室里看完了这场比赛。时间过得太快了，转眼十年又过去了，联盟又安排了湖人 vs 爵士作为这个赛季常规赛的最后一场。

睡前看了尼克尔森和摩根弗里曼的《遗愿清单》，尼克尔森是湖人和科比的死忠粉丝。</description>
      <content:encoded><![CDATA[科比退役之战十周年，那一年我大四，在实验室里看完了这场比赛。时间过得太快了，转眼十年又过去了，联盟又安排了湖人 vs 爵士作为这个赛季常规赛的最后一场。

睡前看了尼克尔森和摩根弗里曼的《遗愿清单》，尼克尔森是湖人和科比的死忠粉丝。]]></content:encoded>
    </item>
    <item>
      <title>里程碑：产品的第一笔付费收入</title>
      <link>https://bryantchen.cc/zh/posts/milestone-first-paid-revenue</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/milestone-first-paid-revenue</guid>
      <pubDate>Sat, 11 Apr 2026 16:30:00 GMT</pubDate>
      <description>AIBT 上线那天，打车路上收到第一笔 2.99 美元的付款通知。这笔小钱背后，是过去一个月所有积累的回响。</description>
      <content:encoded><![CDATA[## 打车路上的那条通知

昨天看到 SBTI 项目爆火之后，我脑子里一个想了很久的念头被点燃了——AIBT（AI Behavior Test）。连夜开工，从开始写代码到上线，只花了几个小时。

然后，今天下午临时有事打车出门，就在车上，手机震了一下：**你收到了一笔 2.99 美元的付款。**

那一瞬间的惊讶我现在还记得。金额很小，2.99 美元甚至都不够一杯咖啡，但这是我作为独立开发者的第一笔产品付费收入，值得写下来。

## 什么是 AIBT

简单说，AIBT 是一个让 AI 通过分析你过去的对话历史，来给你做行为画像的小工具。灵感来自 SBTI，但加入了我最近一直在研究的东西——通过历史对话分析人和 AI 的交互模式。

其实如果更功利一点，我应该直接复刻 SBTI 的内容和测试形式，那或许是流量最大的一条路。但我还是想做点不一样的——蹭热点可以，但最好蹭得有自己的东西。

一个典型的「十几秒 idea，几小时实现」的项目。

## 为什么这件事对我意义重大

说实话，意义不在那 2.99 美元，而在于——我在这个项目里看到了自己过去一个月的进步。一种知行合一的进步。

### 一、最小闭环原则，第一次跑通

前几天写过一条碎碎念：商业产品的最小闭环才算开发完成——demo、登录、支付订阅、官网、发布、有付费用户。这次 AIBT 严格按这个闭环走了一遍：

- Demo 做完
- 支付接好（LemonSqueezy）
- 独立域名
- 对外发布
- 第一个付费用户

从「自嗨做产品」到「真的让用户掏钱」，这中间有一道我之前一直绕着走的坎。这次第一次完整走完，心态完全不同。

### 二、功不唐捐

更让我感慨的是——AIBT 能在几小时内上线，几乎所有基础设施都是我之前做别的事情时顺手搭的：

- **LemonSqueezy** 是为 MemoryX 的订阅系统申请的，但现在任何项目都能直接用
- **Cloudflare Pages + 域名配置** 在做 bryantchen.cc 和 memoryx.cc 时变熟练了
- **SEO 基础** 是最近做 memoryx.cc 才开始学的
- **历史对话分析逻辑** 是我研究 memory 积累的东西

每件事当时看都在做别的，但这些东西最后都在 AIBT 上汇合了。

「功不唐捐」——大概就是这个意思吧。你做的每一件事都在为某个未来的时刻做准备，哪怕当下完全没意识到。

## 另一个更让我开心的信号

除了那 2.99 美元，还有一个让我更开心的时刻——我发完朋友圈之后，陆陆续续看到一些朋友自发地把自己的测试结果发到朋友圈，或者把 AIBT 分享到其他群里。

这种自发的传播，比任何点击量和付费金额都更让人心安。它说明这个东西对他们来说是有趣的、值得分享的，他们愿意把自己的名字和这个产品绑在一起，哪怕只是一条朋友圈。

对独立开发者来说，这是最珍贵的信号。

## 一个好的开始

2.99 美元是一个小里程碑，但它证明了一件事：**持续 build、持续输出、一点点积累**，是有用的。

不用急着造大东西，先把小的闭环跑通。不用急着做对的事，先把手边能做的事做完。基础设施会在某一天自动发挥作用，知识会在某一天自动拼起来。

接下来继续。]]></content:encoded>
    </item>
    <item>
      <title>每个人对于日记、成长的理解都不一样，深夜突然看到了一个自己特别喜欢的设计，有一些想法好像打通了。

Drift</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-11-drift</guid>
      <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
      <description>每个人对于日记、成长的理解都不一样，深夜突然看到了一个自己特别喜欢的设计，有一些想法好像打通了。

Drift</description>
      <content:encoded><![CDATA[每个人对于日记、成长的理解都不一样，深夜突然看到了一个自己特别喜欢的设计，有一些想法好像打通了。

Drift]]></content:encoded>
    </item>
    <item>
      <title>一个没什么用的小里程碑达成了：通过贡献了几次 PR，和 OpenClaw 之父 Peter 在他的另一个开源项目 CodexBar 的 Contributors…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-09-codexbar-contributor</guid>
      <pubDate>Thu, 09 Apr 2026 10:30:00 GMT</pubDate>
      <description>一个没什么用的小里程碑达成了：通过贡献了几次 PR，和 OpenClaw 之父 Peter 在他的另一个开源项目 CodexBar 的 Contributors 头像同框了。

AI 时代 GitHub 的 PR 逻辑其实变了。参与开源项目，我只是从使用者的角度，修复一些我觉得很基础且不好用的 Bug。

可能贡献的是一些屎山代码（因为也不是我写的，都是我的 Agent 写的，我只做作为用户和产品经理该做的事情），但是在我贡献屎山代码前，这个基础的功能/逻辑设计的也和屎没啥区别。

我要做的就是尽量从用户视角为这个产品贡献自己的一份力量。

![code...</description>
      <content:encoded><![CDATA[一个没什么用的小里程碑达成了：通过贡献了几次 PR，和 OpenClaw 之父 Peter 在他的另一个开源项目 CodexBar 的 Contributors 头像同框了。

AI 时代 GitHub 的 PR 逻辑其实变了。参与开源项目，我只是从使用者的角度，修复一些我觉得很基础且不好用的 Bug。

可能贡献的是一些屎山代码（因为也不是我写的，都是我的 Agent 写的，我只做作为用户和产品经理该做的事情），但是在我贡献屎山代码前，这个基础的功能/逻辑设计的也和屎没啥区别。

我要做的就是尽量从用户视角为这个产品贡献自己的一份力量。

![codexbar-contributors](https://img.bryantchen.cc/blog/2026-04-09-codexbar-contributors.png)

![my-commits](https://img.bryantchen.cc/blog/2026-04-09-codexbar-my-commits.png)]]></content:encoded>
    </item>
    <item>
      <title>关于良好生活的反思</title>
      <link>https://bryantchen.cc/zh/posts/reflections-on-a-good-life</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/reflections-on-a-good-life</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <description>最近两周状态最好的一周，我试着把原因写下来：作息、持续 build、目标用户、写作与运动，以及记得把 AI 当作手段而不是目的。</description>
      <content:encoded><![CDATA[洗澡的时候有很多想法，洗完全都忘了，得再仔细想想才想起来。

今天是最近两周以来状态最好的一周，值得记录一下。仔细想了想，为什么？

1. 相对规律的作息，在凌晨三点前睡，早上九点起床。中午两点前吃饭，吃完饭在河边和公园里散步，下午全力做产品。傍晚乏了泡个茶，晚上继续干活。干到九点半，去户外跑步三公里。十点吃晚饭。（想了下，吃饭的时间有点不规律哈，其他都还行，可以睡的更早点，起的也更早一点）

2. 持续 build，不要有任何畏惧情绪、即便有，通过持续 build 和调整心态、一边看其他好的产品一边想自己的产品要怎么构建来弥补。

3. 今天我有点回过神来，即便有很多人做类似的事情，或者说我做的慢了，但不代表一点机会都没有，还是得找准目标用户、做出差异化、想想别人为什么选择你…独立开发者，好像很难通过拼速度拼资源拼得过团队，但是我可以做我自己。

4. 装修自己的个人主页、不停地写自己的碎碎念真的可以治愈自己啊。

5. 何为良好生活啊？写字、读书、运动、晒太阳、良好的饮食和作息。如此而已，但不少时间我总是因为在路上而忘了这些啊。区别目标和手段很重要，AI 其实就是手段，并不是我生而为人的目的啊。别本末倒置了，做出好的作品、过良好的生活。]]></content:encoded>
    </item>
    <item>
      <title>什么时候我觉得 AI 真的懂我，上面这张图能说明一切，在给我写周计划的时候告诫我：

- 本周不做：任何新 side project（全部冻结）、bryantc…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-08-it-gets-me</guid>
      <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
      <description>什么时候我觉得 AI 真的懂我，上面这张图能说明一切，在给我写周计划的时候告诫我：

- 本周不做：任何新 side project（全部冻结）、bryantchen.cc 功能开发（RSS 已加，够了）、线下社交活动（除非直接带来付费用户）

- 一句话目标：距离 4 月底还有 23 天，本周唯一的事是让 **MemoryX 被真实用户用起来**

它真的太懂我了。

![weekly-plan](https://img.bryantchen.cc/blog/2026-04-08-it-gets-me.png)</description>
      <content:encoded><![CDATA[什么时候我觉得 AI 真的懂我，上面这张图能说明一切，在给我写周计划的时候告诫我：

- 本周不做：任何新 side project（全部冻结）、bryantchen.cc 功能开发（RSS 已加，够了）、线下社交活动（除非直接带来付费用户）

- 一句话目标：距离 4 月底还有 23 天，本周唯一的事是让 **MemoryX 被真实用户用起来**

它真的太懂我了。

![weekly-plan](https://img.bryantchen.cc/blog/2026-04-08-it-gets-me.png)]]></content:encoded>
    </item>
    <item>
      <title>AI 时代构建产品有一个充分不必要条件：在做产品的第一天，可能你就得想好如何打造“产品奇观”。

产品奇观这个东西，很多时候不一定是想出来的，但是如果你第一天不…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-07-product-spectacle</guid>
      <pubDate>Tue, 07 Apr 2026 14:17:00 GMT</pubDate>
      <description>AI 时代构建产品有一个充分不必要条件：在做产品的第一天，可能你就得想好如何打造“产品奇观”。

产品奇观这个东西，很多时候不一定是想出来的，但是如果你第一天不想的话，它一定是不存在的。包括说当你构建了一个产品之后，如果你觉得它很难构成产品奇观，那大概率它是不会成功或者火爆的。</description>
      <content:encoded><![CDATA[AI 时代构建产品有一个充分不必要条件：在做产品的第一天，可能你就得想好如何打造“产品奇观”。

产品奇观这个东西，很多时候不一定是想出来的，但是如果你第一天不想的话，它一定是不存在的。包括说当你构建了一个产品之后，如果你觉得它很难构成产品奇观，那大概率它是不会成功或者火爆的。]]></content:encoded>
    </item>
    <item>
      <title>看到朋友的项目被别人逆向后在 Github 开源，一个感慨是现在 build in public 变了。你必须以相对高的完成度发布、宣发、卖出去。否则很被动，另…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-07-ship-before-open</guid>
      <pubDate>Tue, 07 Apr 2026 13:27:00 GMT</pubDate>
      <description>看到朋友的项目被别人逆向后在 Github 开源，一个感慨是现在 build in public 变了。你必须以相对高的完成度发布、宣发、卖出去。否则很被动，另外和你的真实用户在一起，远离开发者。</description>
      <content:encoded><![CDATA[看到朋友的项目被别人逆向后在 Github 开源，一个感慨是现在 build in public 变了。你必须以相对高的完成度发布、宣发、卖出去。否则很被动，另外和你的真实用户在一起，远离开发者。]]></content:encoded>
    </item>
    <item>
      <title>商业产品的最小闭环才意味着开发完成，所谓最小闭环指的是：产品 demo 、基本的登录、基础的支付与订阅、官网。完成发布和内测，有之前一个付费用户，这才是最小闭环…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-07-minimum-viable-loop</guid>
      <pubDate>Tue, 07 Apr 2026 11:46:00 GMT</pubDate>
      <description>商业产品的最小闭环才意味着开发完成，所谓最小闭环指的是：产品 demo 、基本的登录、基础的支付与订阅、官网。完成发布和内测，有之前一个付费用户，这才是最小闭环。

否则都不算。</description>
      <content:encoded><![CDATA[商业产品的最小闭环才意味着开发完成，所谓最小闭环指的是：产品 demo 、基本的登录、基础的支付与订阅、官网。完成发布和内测，有之前一个付费用户，这才是最小闭环。

否则都不算。]]></content:encoded>
    </item>
    <item>
      <title>一人公司到底是在追求什么？

最近总有人问我这个问题。我现在的答案很简单：一个是为了自由，另一个是为了养成独立造血的能力，真正对结果负责。不要自嗨，要做有人买单…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-04-04-one-person-company-pmf</guid>
      <pubDate>Sat, 04 Apr 2026 00:27:00 GMT</pubDate>
      <description>一人公司到底是在追求什么？

最近总有人问我这个问题。我现在的答案很简单：一个是为了自由，另一个是为了养成独立造血的能力，真正对结果负责。不要自嗨，要做有人买单的产品，形成一个完整的商业闭环。

另外，我最近一直在想的一个命题是：到底什么样的切入点适合小团队和一人公司去做？哪些方向其实更像是在讲故事，并不适合我这样的阶段？想清楚这件事之后，很多东西都会自然变得清楚。

早点跑通 PMF，加油。</description>
      <content:encoded><![CDATA[一人公司到底是在追求什么？

最近总有人问我这个问题。我现在的答案很简单：一个是为了自由，另一个是为了养成独立造血的能力，真正对结果负责。不要自嗨，要做有人买单的产品，形成一个完整的商业闭环。

另外，我最近一直在想的一个命题是：到底什么样的切入点适合小团队和一人公司去做？哪些方向其实更像是在讲故事，并不适合我这样的阶段？想清楚这件事之后，很多东西都会自然变得清楚。

早点跑通 PMF，加油。]]></content:encoded>
    </item>
    <item>
      <title>当你发现一个产品形态不对劲的时候，应该果断放弃还是先再挣扎一下？最近在思考这个问题。

我觉得成为独立开发者后，最大的不爽之处是，Vibe Coding 容易稀…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-03-31-vibe-coding-trap</guid>
      <pubDate>Tue, 31 Mar 2026 17:23:00 GMT</pubDate>
      <description>当你发现一个产品形态不对劲的时候，应该果断放弃还是先再挣扎一下？最近在思考这个问题。

我觉得成为独立开发者后，最大的不爽之处是，Vibe Coding 容易稀释自己作为产品经理的产品定义浓度，反而将大量的时间放在了 build 和疲于应付发布上。要警醒这一点啊，做产品首先要抓住真正的需求和定义出差异化的体验。要牢记的一点是「424：时间精力分配上，40% 找需求 + 20%开发 + 40%宣传」，千万不要本末倒置啊。</description>
      <content:encoded><![CDATA[当你发现一个产品形态不对劲的时候，应该果断放弃还是先再挣扎一下？最近在思考这个问题。

我觉得成为独立开发者后，最大的不爽之处是，Vibe Coding 容易稀释自己作为产品经理的产品定义浓度，反而将大量的时间放在了 build 和疲于应付发布上。要警醒这一点啊，做产品首先要抓住真正的需求和定义出差异化的体验。要牢记的一点是「424：时间精力分配上，40% 找需求 + 20%开发 + 40%宣传」，千万不要本末倒置啊。]]></content:encoded>
    </item>
    <item>
      <title>周日晚上重温贾科长《山河故人》，科长对于 2025 的电子设备的想象是透明的液态玻璃，虽然 GUI 还是套用了 2014 年的，但不得不说，人类想象的 2025…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-03-31-mountains-may-depart-software</guid>
      <pubDate>Tue, 31 Mar 2026 17:01:00 GMT</pubDate>
      <description>周日晚上重温贾科长《山河故人》，科长对于 2025 的电子设备的想象是透明的液态玻璃，虽然 GUI 还是套用了 2014 年的，但不得不说，人类想象的 2025 年硬件还是没有达到，但软件却超出了人们的想象。普通人往往会低估软件的发展、高估了硬件的发展。</description>
      <content:encoded><![CDATA[周日晚上重温贾科长《山河故人》，科长对于 2025 的电子设备的想象是透明的液态玻璃，虽然 GUI 还是套用了 2014 年的，但不得不说，人类想象的 2025 年硬件还是没有达到，但软件却超出了人们的想象。普通人往往会低估软件的发展、高估了硬件的发展。]]></content:encoded>
    </item>
    <item>
      <title>关于自己和周遭的几个洞察</title>
      <link>https://bryantchen.cc/zh/posts/several-observations-about-myself-and-the-world</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/several-observations-about-myself-and-the-world</guid>
      <pubDate>Sat, 28 Mar 2026 01:26:00 GMT</pubDate>
      <description>关于熬夜、AI、发布、春天、自然节律与旁观者视角的一组记录。</description>
      <content:encoded><![CDATA[关于自己和周遭的几个洞察：

## 1. 熬夜与节律

熬夜是个坏东西，过去的几个工作日，我好像有点时间颠倒了，当然对于一人公司的我也没有工作日一说，但熬夜让人没有规律的作息和工作时间，总归是不好的。

## 2. 多和没怎么接触 AI 的人聊天

最近和做 AI 的人聊得太多之后，我觉得接下来要多和没怎么接触过 AI 的人多聊，他们的需求和痛点可能才是最关键的。做 AI 的人一是都太疯癫了，觉得自己无所不能；二是觉得不拥抱 AI 的人都是傻子。对，我也是在骂我自己。但我从学《控制论》的第一天起就牢记祖师爷说过的一句话：“人有人的用处”。

## 3. 异动之前的活跃

一个人如果发表暴论或者在公众场合很活跃，可以证明几个事情，一是 ta 要有工作上的异动了，二是在孔雀开屏准备拿融资或者要创业了。

## 4. 关于发布与工匠精神

看到总有人鼓吹“产品做到 30% 就可以发布了”，但身边也有把产品做到尽可能好再发布的人，特别是我今天听到《诗梳风》的最新一期和谜底 61 的对谈，让人感到踏实，我希望有工匠精神的人可以得到用户的奖励。

## 5. 北京的春天

我今天最受到触动的瞬间是 —— 下午出门骑车在路边看到一句花开，原来这才是北京的春天啊，我 25-30 岁的春天都看到了些什么啊。一生之计在于春！

## 6. 一日之计在于晨

话说回来了，一日之际在于晨，别熬夜了，我忽然有点理解 Birdwatcher 了，除了亲近大自然外，和自然的节律一起醒来、作为旁观者参与进来是很美妙的事情。

## 7. 猫头鹰视角

说到这里，我想到上周末看《巴斯特·斯特鲁格斯的歌谣》中的一段，以猫头鹰视角记录淘金山谷中的故事，这种视角真好。人到三十好几了，终于懂了这部电影，也终于懂了“天地不仁，以万物为刍狗”到底在说啥了。]]></content:encoded>
    </item>
    <item>
      <title>我慢慢接受了一件事：

不一定非要把一个完整的大产品推到面前，才算发布。

对我来说，MemoryX 也许已经错过了“作为完整产品被推出”的最好时机。
但这不意…</title>
      <link>https://bryantchen.cc/zh/thoughts</link>
      <guid isPermaLink="false">https://bryantchen.cc/zh/thoughts/2026-03-28-memoryx-plugin-first</guid>
      <pubDate>Sat, 28 Mar 2026 01:16:00 GMT</pubDate>
      <description>我慢慢接受了一件事：

不一定非要把一个完整的大产品推到面前，才算发布。

对我来说，MemoryX 也许已经错过了“作为完整产品被推出”的最好时机。
但这不意味着里面的东西没有价值。

更现实的做法，也许是先把插件发出去。
让一个更小、更具体的切口先见人，先收集真实信号。

有时候，发布不是把所有东西一次讲完。
而是先把最有生命力的那一部分交给世界。</description>
      <content:encoded><![CDATA[我慢慢接受了一件事：

不一定非要把一个完整的大产品推到面前，才算发布。

对我来说，MemoryX 也许已经错过了“作为完整产品被推出”的最好时机。
但这不意味着里面的东西没有价值。

更现实的做法，也许是先把插件发出去。
让一个更小、更具体的切口先见人，先收集真实信号。

有时候，发布不是把所有东西一次讲完。
而是先把最有生命力的那一部分交给世界。]]></content:encoded>
    </item>
    <item>
      <title>创业中做事的三个原则与坐标轴</title>
      <link>https://bryantchen.cc/zh/posts/entrepreneurship-three-axes</link>
      <guid isPermaLink="true">https://bryantchen.cc/zh/posts/entrepreneurship-three-axes</guid>
      <pubDate>Thu, 26 Mar 2026 01:11:00 GMT</pubDate>
      <description>深夜反思：在『自己喜欢』之外，更要关注『用户需要』和『市场买单』。</description>
      <content:encoded><![CDATA[创业中做事的几个原则。

有三条坐标轴：

1. **自己喜欢**：衡量这个事情是不是你喜欢的、你愿不愿意为它投入精力和愿力、是不是符合你的个人审美的。但这一个轴上不能决定太多的事情，只能决定你能走多远、做的产品是不是符合你的性格和品味的。
2. **用户需要**：这一条其实是最重要的，很多时候你喜欢的不一定是用户需要的，或者说不一定有那么多用户需要。在评估一个项目立项的时候，一定要做用户需要的东西，而不仅仅是我自己喜欢。
3. **市场买单、赚取足够多的商业回报**：没有这一条一切都不成立，创业是一场长跑，如果想要抵达终点，一定要做市场愿意买单、能赚取正向商业回报的事情。

评价自己最近两个月做的事情，大部分都落在了 1 ，对于 2 和 3 关于的有点少。反思之。

另外，考虑竞争还是必须的，有些事情真不是你想卷就卷得过的。自省之，但是也还要尽量做到啊！这样才能提高胜率。]]></content:encoded>
    </item>
  </channel>
</rss>
