TinyPilot:第六个月
原文由 Michael Lynch 于 发布,订阅该博客
一句话总结
我意外地创造了销售纪录。
亮点
目标完成情况
每个月初,我都会定下当月想要完成的目标。以下是本月的完成情况:
发布 TinyPilot Pro 的首个版本
- 结果:发布了 TinyPilot Pro 的测试版
- 评分:B
我原以为发布 TinyPilot Pro 最难的部分是为付费用户搭建独立的分发渠道。Pro 首版的功能看起来很简单,但实际做起来却比预想的要难得多。
本来我打算发布 TinyPilot Pro 的正式版,但在发布前几天才意识到,除了我自己,还没有任何人做过测试。我联系了几位用户,询问他们是否愿意提前试用,但适逢假期,进展不大。于是我最终以“测试版”的形式发布,并提供了五折优惠。
获得两位拥有相关受众的博主或 YouTuber 对 TinyPilot 的评测
- 结果:已有两位 YouTuber 答应做评测,但尚未发布。
- 评分:D
TinyPilot Pro 打乱了我的计划。我一直在和一个大型 YouTube 频道沟通,对方有意评测 TinyPilot。但随后他们发来邮件问:“嘿,你们官网上说的那个即将发布的 TinyPilot Pro 是怎么回事?”
他们不想录制一个一周后就过时的评测。因此,他们现在计划等 TinyPilot Pro 支持路线图上的下一个功能——远程挂载硬盘——之后再做评测。
另一位 YouTuber 也答应了评测,我寄出免费样机后对方就没了回音,希望只是因为手头积压的工作太多还没排上。
为我的 Hacker News 课程录制七部分中的五部分
- 结果:已录制五部分,并向预购用户开放
- 评分:A
我算是压哨完成,在除夕下午五点发出了最后一条视频,总算赶上了!所有预购用户现在都可以提前观看前五节内容。
数据一览
TinyPilot
| 指标 | 2020年11月 | 2020年12月 | 变化 |
|---|---|---|---|
| 独立访客 | 3,118 | 3,486 | +368 (+12%) |
| 总浏览量 | 9,021 | 5,785 | -3,236 (-36%) |
| 销售收入 | $12,313.25 | $15,358.31 | +$3,045.06 (+25%) |
| 捐赠 | $0.00 | $9.00 | +$9.00 (+inf%) |
| 总收入 | $12,313.25 | $15,367.05 | +$3,053.80 (+25%) |
TinyPilot 本月表现依然强劲,营收增长了 25%。想想都觉得不可思议,我 2020 年全年的目标才只是 2 万美元的营收,而现在几乎每个月都能达到这个数字。
尽管保持增长,我依然觉得自己在运营 TinyPilot 上有些手忙脚乱。12 月除了几次失败的 YouTuber 评测邀约外,我几乎没做任何营销。甚至连开发进度也因为精力不足而放缓。我已经决定,既然收入足够稳定,就请一位兼职开发者来帮忙,目前已经开始物色人选了。
冲上 Hacker News 首页
| 指标 | 2020年12月 |
|---|---|
| 总浏览量 | 2,243 |
| 订单数 | 30 |
| 总收入 | $1,181.40 |
12 月是我为博客课程 Hit the Front Page of Hacker News 开放预售的第一个月。
销售首日我着实慌了一下,因为只卖出了两单,总共才 160 美元,前景不妙。好在之后陆续有稳定的零散订单,12 月最终销售额突破了 1000 美元。
我发现触达新用户最有效的方式之一就是在 Twitter 上分享幕后进展,但最近实在太忙,一直抽不出时间更新。
意外创造的销售纪录
在 TinyPilot 最初的几个月里,我一直为库存发愁,常常不得不将所有产品标为缺货预订而错失销售。好不容易连续两个月避免了缺货,这个纪录在 12 月还是被打破了。
一批 HDMI 采集芯片的货运延误了,而我需要它们来组装更多Voyager,也就是我的高端款 TinyPilot。

要组装更多 TinyPilot Voyager,需要一批从中国发出的 HDMI 采集芯片,而它们正滞留在运输途中。
那是周一,芯片预计周六才能到。我手头只剩下 6 台 Voyager。平时大概一两天卖出一台,我以为还能勉强撑过去。结果当天就卖出了两台。
还剩四台。好吧,也许还能挺过去……
周二,又有两位顾客买走了 Voyager。卖出利润最高的产品,我却从未如此沮丧。
库存只剩两台时,我试图放缓销售,把 Voyager 的价格从 249 美元提高到了 299 美元。两小时后,我却收到一封邮件,有位顾客说他想买 7 台!
我向他说明了库存情况,他表示可以先发两台,剩下的五台等几天也没关系。幸运的是,芯片在接下来的一周内到货了,这位顾客也按时收到了全部 7 台。这笔来自单一顾客的订单就高达 2093 美元,当天总销售额也因此冲上了 TinyPilot 的历史新高——3298 美元。

将 Voyager 提价 50 美元后,我在一天内创下了 3298 美元的销售纪录。
靠自觉来执行软件授权
好几个月来我一直在拖延 TinyPilot Pro 的工作。很大程度上是因为第一步实在太枯燥:分发。
免费版的 TinyPilot 分发起来很容易,因为所有软件都是开源的。我发布一个安装脚本,对付费和非付费用户都一样适用。
TinyPilot Pro 就复杂多了。如果我公开源代码,顾客可能会想:“既然网上能免费找到,我为什么还要付费?”我需要某种方式来限制只有付费用户才能访问。
我开始设计一套授权系统。听起来并不难:根据顾客的设备 ID 生成一个哈希值,然后在服务器上校验是否匹配。哦,但授权过期怎么处理?好吧,那我就维护一个带过期时间的授权数据库。可万一数据库丢了怎么办?嗯……

我为 TinyPilot 设计授权密钥服务器已经完成了约 60%,随后意识到自己把问题想得过于复杂了。
这感觉就是过度设计。我去看了 Shopify 上提供数字授权的插件,但它们质量都不高,也无法满足我的需求。接入这些方案花的时间比自己从头做还要长。
然后我突然想到:如果完全不做授权校验会怎样?
这让我想起朋友 Cory Zue 销售他的 Django 起步模板 Pegasus 的经历。顾客购买后可以用来建一个网站,但 Cory 其实无法强制执行这一限制。顾客一旦下载了 Pegasus 的源代码,就完全可以拿去复用在成百上千个网站上。
销售几个月后,Cory 欣慰地发现,有顾客在搭建新网站时会再次购买 Pegasus。从技术角度看,他们是在为之前已经买过的同一份代码再次付费。但顾客们都诚实地遵守了 Pegasus 的授权协议,并为他的产品付了费。
Cory 意识到可以提供一个更好的方案:无限站点授权。尽管不诚实的顾客完全可以只买单站点授权然后重复使用代码来占便宜,仍有许多顾客会主动购买无限授权。

尽管可以通过复用单站点授权来作弊,顾客们依然会购买 无限授权。
如果自觉遵守的模式对 Cory 行之有效,对我大概也适用。于是我搁置了搭建授权服务器的计划,只是把 TinyPilot Pro 放在一个难以被猜到的链接地址上。
不诚实的顾客当然可以通过在多台设备上复用授权,或把链接分享给未付费的用户来占便宜,但这两种情况的风险和影响都很小。TinyPilot Pro 开售还不到一周,就已经有一位顾客购买了四个独立的授权。
给自己设了太多截止日期
12 月我显然给自己安排得太满了。
我通常会避免向顾客承诺某个具体的交付日期。TinyPilot 还很年轻,变化很快。与此同时,过去六个月里我一直说 TinyPilot Pro“很快就会发布”,却毫无进展,这让我越来越尴尬。最后,我开始向顾客承诺会在年底前发布首个版本。

我以测试版的形式发布了 TinyPilot Pro,以满足急于体验新高级功能的顾客。
同时,我开始制作我的第一门视频课程。我估计写稿、录制、剪辑和发布大概需要 40 小时,这差不多就是我写一篇博客文章的时间,所以我想就用做博客的时间来做这门课。我定下的发布日期是 1 月 13 日,原以为用这么宽松的时间来做几个小时的视频绰绰有余。

我的博客课程 Hit the Front Page of Hacker News 中的一个画面
我大大低估了完成这门课所需的工作量。实际上可能需要 150 到 200 小时,而且已经占用了 TinyPilot 的大量时间。
还不止如此,我还有一个传统:在 2 月 1 日发布年度回顾,那是我辞去 Google 工作、开始为自己打拼的纪念日。我想延续这个传统,因为它总能引起很大的反响。但这意味着我必须在 2 月 1 日前准备好这篇博客。
就这样,在短短一个月内,我不知不觉给自己设下了四个紧迫的截止日期。以后我一定会更谨慎地对外公布时间节点。
旧项目
以下是我仍在维护、但已不再是开发重心的项目的简要更新:
Is It Keto
| 指标 | 2020年11月 | 2020年12月 | 变化 |
|---|---|---|---|
| 独立访客 | 43,911 | 49,373 | +5,462 (+12%) |
| 总浏览量 | 102,143 | 93,242 | -8,901 (-9%) |
| 域名评分(Ahrefs) | 10.0 | 10.0 | 0 |
| AdSense 收益 | $357.51 | $334.72 | -$22.79 (-6%) |
| Amazon 联盟收益 | $74.01 | $149.99 | +$75.98 (+103%) |
| 总收入 | $431.52 | $484.71 | +$53.19 (+12%) |
我预计 1 月会有明显的增长,因为人们通常会在新年伊始更关注健康饮食。我花了一小时更新了 Amazon 联盟链接,以便在接下来的高峰期获得最大收益。除此之外,Is It Keto 仍在后台自动运行。
Zestful
| 指标 | 2020年11月 | 2020年12月 | 变化 |
|---|---|---|---|
| 独立访客 | 484 | 507 | +23 (+5%) |
| 总浏览量 | 1,393 | 1,511 | +118 (+8%) |
| RapidAPI 收益 | $28.37 | $103.33 | +$74.96 (+264%) |
| 企业版收益 | $872.63 | $0.00 | -$872.63 (-100%) |
| 总收入 | $901.00 | $103.33 | -$797.67 (-89%) |
Zestful 也比较平静。企业客户为期一个月的套餐已到期,按预期没有续订。RapidAPI 的收入有所上涨,但其中 95% 来自一位似乎只是做了一次批量解析的单次用户。
总结
完成了什么?
- 发布了 TinyPilot Pro 测试版
- 完成了《Hit the Front Page of Hacker News》的五个章节
- 移除了本博客中的所有联盟链接
- 有两篇博客文章登上了 Hacker News 首页
经验教训
- 少承诺一些截止日期。
- 绝对不要在一个月内给自己定下四个紧迫的截止日期。
- 销售副业项目时,用候补名单而非预售。
- 预售的好处是能及早验证顾客是否愿意付费。
- 弊端在于,一旦以特定主题和时间为承诺完成销售,我就很难再去调整范围或推迟发布日期,总觉得不自在。
- 今后如果再销售电子书或课程,我会改用候补名单的方式。
- Adam Wathan 在这场很有启发的 Microconf 演讲中更详细地谈到了预售与候补名单的区别。
- 其实,写到这里我觉得,自己完全没必要如此刻板地执着于当初宣传的课程大纲。我不认为有人会那么在意我是否完全按大纲来讲。如果真有人在意,我也提供无忧退款。
下月目标
- 聘请一位自由职业开发者来协助 TinyPilot 的开发。
- 获得两位拥有相关受众的博主或 YouTuber 对 TinyPilot 的评测。
- 通过《Hit the Front Page of Hacker News》获得 4000 美元的收入。
随机一篇博客
评论
登录后参与讨论