TinyPilot: Month 17

Michael Lynch

TinyPilot:第 17 个月

一句话总结

如何仅靠删除一个链接就实现了 62% 的销售额增长

亮点

  • TinyPilot 的销售额跃升至 5.7 万美元,而且这个水平可能是可持续的。
  • 我即将发布 TinyPilot 的新产品和品牌形象。
  • 我把自己的副业项目在 Google Cloud Platform 上的费用降低了 90%。

目标评分

每个月初,我都会声明本月想要完成的事情。以下是我对这些目标的完成情况:

完成 TinyPilot 的网站品牌重塑

  • 结果:重塑工作已完成 95%,但尚未发布。
  • 评分:B

我已经和设计公司敲定了标志概念和配色方案,但在正式启用新品牌形象之前,我们仍在处理一些细节。

硬件一就绪就立即发布 Voyager 2

  • 结果:一切准备就绪,收到硬件后一周内即可发布
  • 评分:A-

为 Voyager 2 采购定制硬件的过程漫长而艰难,但制造已完成,上周我们收到了第一批硬件,所以本周应该可以发布。由于 Voyager 1 的需求一直供不应求,我们比预期稍微落后了一点,但这只会让发布推迟一两天。

聘请营销公司或自由职业者,帮助 TinyPilot 探索付费营销渠道

  • 结果:因优先事项变化而搁置
  • 评分:不适用

我联系了几家营销公司,但还没有准备好聘用任何人。TinyPilot 不断增长的销售额我们已经应接不暇了,所以我暂停营销工作,专注于扩大产能以满足当前需求。

TinyPilot 数据统计

指标2021 年 10 月2021 年 11 月变化
独立访客数6,8987,983+1,085(+16%)
总页面浏览量13,00814,596+1,588(+12%)
销售收入$34,927.55$56,626.33+$21,698.78(+62%)
企业版订阅收入$48.00$47.75-$0.25(-1%)
特许使用费收入$6,804.53$8,185.78+$1,381.25(+20%)
总收入$41,780.08$64,859.86+$23,079.78(+55%)
利润$1,936.22$12,758.39+$10,822.17(+559%)

精简为单一产品后,销售额几乎翻倍

由于供应短缺,我在 10 月下架了 TinyPilot 的低价产品,专注于我们的高端产品 TinyPilot Voyager。这样一来,产品目录就只剩 Voyager 和一些销量不高的配件,于是我决定干脆取消目录页面。

我基本上就是从网站导航栏里删掉了一个链接。

旧产品目录页面的截图
旧产品目录页面的截图

我对 TinyPilot 网站做过的所有改动中,影响最大的一次就是删除了导航栏中指向产品目录页面的链接。

在上个月的回顾中,我提到自己开始注意到销售呈上升趋势,并猜测这是否与简化产品线有关。又经过一个月的数据积累,我相当确信这一改动带来了巨大影响:

TinyPilot 销售额随时间变化的图表,在整合为单一产品后呈上升趋势

将网站整合为单一产品前后,TinyPilot 的周销售额对比

我们之前也出现过销售高峰,但那总是伴随某些明显的事件,比如在 YouTube 上被提及,或是在热门网站上获得评测。销售额会飙升,然后慢慢回落。

自从整合为单一产品以来,销售额达到了以往高峰期的水平,但似乎并没有像一次性事件那样逐渐消退。

如果我判断正确,销售额增长确实来自删除目录页面,那这将是我对 TinyPilot 所做的一切事情中投资回报率最高的一次。删掉一个链接就换来了 62% 的销售额增长!

成长烦恼卷土重来

TinyPilot 创立后的头六个月里,我一直手忙脚乱地追赶增长。销售额每四到八周翻一番,所以我不得不不断寻找新供应商,并重新设计流程来扩大业务规模。虽然这种增长令人兴奋,但也让人精疲力竭。我很庆幸在 2021 年的大部分时间里,业务进入了一种更平稳、更可预测的节奏。

最近的销售额增长让一些成长烦恼卷土重来。我们为销售高峰准备了应急预案,今年这些预案一直很管用,但对于这种持续性的增长,我们却没有相应的计划。

电源连接器告急

首先,我们注意到电源连接器的消耗速度快到在下一次电路板到货之前就会用完,这会导致我们无法继续销售 Voyager。

TinyPilot 电源连接器的照片

我们距离 TinyPilot 电源连接器断货只差几天。

我把它标记为单售缺货,这刚好把消耗速度放慢到足以撑到新一批货到。

[题外话:如果你好奇为什么我刚大张旗鼓地宣布只卖 Voyager、不卖其他产品之后,还在卖电源连接器,我可以解释一下。通过我的DIY TinyPilot 指南,仍然有一些链接可以访问 TinyPilot 的次要产品页面,但用户很难通过访问 TinyPilot 网站发现这些页面。]

排线告急

接下来,排线开始不够用了。我们通常大批量采购排线,库存多到根本不值得在库存系统里登记。但正因为没有登记,我们没有发现上一次订单延迟了。当时我们只剩下 30 根排线,只够生产几天份的 Voyager。

我们用于 TinyPilot 的排线照片

TinyPilot 的销售几乎因为 70mm 排线耗尽而陷入停顿。

我们使用的是非标准尺寸的排线,所以需要特别订购。难道要因为排线这种愚蠢的东西而让销售中断几个星期吗?

幸运的是,供应商能够加急处理我们的订单,几天内就送来了新排线。我还恐慌性地又买了 1,500 根,所以短期内应该没问题了。

此外,我们准备开始把这些排线纳入正常的库存系统。我们意识到,非正式的管理让我们很难区分“该从容地下个新订单了”和“这是紧急情况!”这两种状态。

扩大 3D 打印规模

最后一个短缺问题是我们至今还没解决的:外壳。我们一直用 3D 打印来制作外壳,因为这让我们可以快速迭代。我们使用一种质感高级的 3D 打印材料,经常收到客户和评测者对外壳质量的正面反馈。

问题是 3D 打印很慢,尤其是我们用的这种材料。打印一个 Voyager 1 外壳需要八个小时,Voyager 2 则需要十二个小时。我们的 3D 打印供应商已经为我们增购了一台打印机,但我预计切换到 Voyager 2 后仍会超出新的产能。遗憾的是,供应商不可能每次销量增长就添购新打印机。

短期内,TinyPilot 的欧盟分销商将在本地打印外壳,而不是从我们这里购买,这样可以把我们打印机的负载减轻大约 30%。从长远来看,我正在和 3D 打印供应商一起寻找打印速度更快但仍保持高级质感的其他材料。也许也是时候重新考虑注塑成型(Injection Molding)了——它前期需要投入 2 万到 4 万美元,但每周可以产出数千个外壳。

把我的副业项目从 Google Cloud Platform 迁移出去

在这些回顾中我主要关注主营业务,但上个月我做了一件有趣的事:把我的副业项目从 Google Cloud Platform(GCP)迁移出去。

我大约八年前开始使用 GCP。当时,大多数云服务商托管一个 Web 应用每月要收 10 到 20 美元,而 AppEngine 和 Firebase 这类 Google 服务可以把小项目的费用降到每月 0 美元,这让做实验很有吸引力。如果我不用承诺每月无限期地支付 20 美元,我就更愿意发布一个新项目。

如今,对于小项目来说,GCP 通常是一个糟糕的选择。这些服务臃肿而复杂,光是创建并部署一个基础的新 Web 应用,我就要花大约一小时折腾各种设置和权限。幸运的是,有很多优秀的 GCP 替代方案,费用更低、开发体验更好、客户支持也更出色(我的意思是,至少有客户支持)。

由于使用 GCP 太久,我的许多副业项目仍然跑在 Google Cloud Platform 上,而且它们积累的服务费越来越多。上个月,我利用晚上和周末把最昂贵的服务从 GCP 迁移了出去。

以下是大规模迁移之前我的 GCP 费用:

GCP 费用图表,8 月到 10 月共计 $252.71

2021 年 8 月至 10 月在 GCP 上托管副业项目的费用

以下是我完成迁移之后的费用:

GCP 服务费用趋向于零的图表

11 月迁移到 Google Cloud 替代方案后的 Google Cloud 服务费用

HTTP 负载均衡 - 每月 $37

HTTP 负载均衡是一个大坑。

在 What Got Done 和 WanderJest 上,用户可以上传图片,我把上传的文件存储在 Google Cloud Storage(GCS)存储桶中。默认情况下,GCS 的 URL 又长又丑,比如 https://storage.googleapis.com/whatgotdone-public/...。我想要一个整洁的 URL,比如 https://media.whatgotdone.com

Google 官方文档用这个简单的80 步流程讲解了如何从子域名提供 GCS 文件。这涉及申请一个静态 IPv4 地址、配置一个 HTTP 负载均衡器、生成 TLS 证书。我照着做完了所有步骤,却没意识到这个负载均衡器会让每个网站的成本增加大约每月 18 美元。

我通过切换到 BunnyCDN 大幅降低了这项成本。我原本担心配置一整套 CDN 会很麻烦,但实际上简单得出奇。在发现 BunnyCDN 这项服务不到 30 分钟后,它就已经通过 media.whatgotdone.com 域名为我的 Google Cloud Storage 存储桶提供服务了。我只需要告诉 Bunny GCS 存储桶的 URL 和我想要的子域名,然后添加一条 DNS 记录即可。

BunnyCDN 拉取区域设置页面的截图

BunnyCDN 让我只用三步就为我的 GCS 存储桶自定义了域名。

BunnyCDN 的最低收费是每月总计 1 美元,而 Google 的收费是每个网站约每月 18 美元。我的用量远低于最低收费。到目前为止我只用了 78.55 MB 带宽,折算费用大约 0.0008 美元。而且即使我超过了 BunnyCDN 的最低收费,他们的带宽价格也不到 Google 的十分之一。

带宽 - 每月 $21

我的出站带宽费用主要来自这个博客和 Is It Keto。我把这两个网站都托管在 Google Firebase 上,那里的带宽费用是每 GB 0.15 美元。我的网站加起来每月大约消耗 150 GB 带宽,但博客读者激增时,这个数字可能会涨到三倍。

我找过其他的静态文件托管商,但不知为何,几乎每家静态托管服务商都想接管整个持续集成(CI)流程。我不想要这个。我想用一个 CI 供应商做 CI,用一家托管服务商做托管。

我以前研究过 Netlify,但当时把它归为“坚持要当你的 CI”的那类托管商。后来,Siddhant Goel 告诉我 Netlify 有一种“手动构建”模式,可以跳过他们所有关于 CI 的花哨东西。他们有一个每月 19 美元的套餐,包含 400 GB 带宽,超出部分每 GB 0.20 美元,所以即使在我偶尔遇到访问量暴增的月份,我每月也只需支付约 20 美元。

AppEngine - 每月 $13

我最后一项大额开支是 What Got Done 在 AppEngine 上的托管费。多年来,这项费用一直约每月 2 美元。7 月,账单突然涨到了每月 10 到 15 美元,我也不知道为什么。

幸运的是,What Got Done 是一个标准的 Go Web 应用,不需要运行在 AppEngine 上。更棘手的依赖是对 Google Firestore 的数据依赖。我本可以分别迁移 AppEngine 和 Firestore,但处理 Google 的服务账号和权限实在太痛苦了,所以我决定一次性彻底脱离这两个服务。

为了替代 Firestore,我使用了 SQLiteLitestream。SQLite 是一个把所有数据保存在单个文件里的简单 SQL 数据库。Litestream 是一个把 SQLite 数据库同步到云端的工具。我之前用同样的技术构建了 LogPaste,效果很好,所以我想在这条路上继续投入。

为了替代 AppEngine,我使用了 fly.io。过去一年我一直在试用 fly.io,体验一直很好。他们的文档清晰,工具的表现符合预期,他们的创始人和首席工程师还会积极参与他们的支持论坛

我迁移到 fly.io 主要是为了降低成本并获得供应商独立性,但这些改动最终还大幅提升了性能。迁移到 SQLite 和 fly.io 之后,What Got Done 的大部分 API 请求速度提升了 2 到 20 倍。

AppEngine 与 fly.io 性能对比图表
请求AppEngine 延迟(毫秒)fly.io 延迟(毫秒)延迟降低
获取最近条目745.327.396.3%
获取用户资料300.029.390.2%
获取个性化信息流572.068.788.0%
获取用户的全部条目历史215.762.071.3%
获取展示次数349.720.094.3%
发布条目183.372.760.4%

遗留项目

以下是一些我仍在维护但并非开发重点的项目的简短更新:

Is It Keto

指标2021 年 10 月2021 年 11 月变化
独立访客数20,32117,790-2,531(-12%)
总页面浏览量47,48740,722-6,765(-14%)
域名评分(Ahrefs)11.015.0+4.0(+36%)
AdSense 收入$230.64$235.36+$4.72(+2%)
Amazon 联盟收入$27.76$26.25-$1.51(-5%)
总收入$258.40$261.61+$3.21(+1%)

Is It Keto 仍在后台默默运转,赚取少量收入。我这个月唯一的改动是把它从 Firebase 迁移到了 Netlify,从而降低了托管成本。

Hit the Front Page of Hacker News

指标2021 年 10 月2021 年 11 月变化
独立访客数100159+59(+59%)
Gumroad 收入$75.27$94.57+$19.30(+26%)
Blogging for Devs 收入$0.00$0.000
总收入$75.27$94.57+$19.30(+26%)

我的博客写作课程上个月卖出了几份。我考虑过搞一个黑色星期五促销,但我正享受着不谈生意的漫长周末,所以决定不搞了。我很庆幸没有搞,因为我把时间花在折腾 What Got Done 上,玩得很开心。

Zestful

指标2021 年 10 月2021 年 11 月变化
独立访客数613576-37(-6%)
总页面浏览量1,4261,489+63(+4%)
RapidAPI 收入$99.74$727.17+$627.43(+629%)
总收入$99.74$727.17+$627.43(+629%)

Zestful 这个月因为一个新客户而大幅增长,该客户产生了约 700 美元的请求费用。这个客户的名字看起来很眼熟,于是我翻了翻邮件。原来我三年前联系过他们,当时他们礼貌地拒绝了。看来他们需要几年时间来考虑。

总结

完成了什么?

  • 发布了 TinyPilot 2.3.1 版本
  • 为 Voyager 2 的发布做好了准备
  • 把 What Got Done 从 GCP 和 Firestore 迁移到了 fly.io、SQLite 和 Litestream
  • 把这个博客、Is It Keto 和其他几个静态网站从 Google Firebase 迁移到了 Netlify

学到的经验

  • 当销售额开始呈上升趋势时,要尽早考虑扩大规模。
  • 对小项目来说,Google Cloud Platform 通常不是正确的选择。

下个月的目标

  • 发布 Voyager 2。
  • 发布 TinyPilot 的品牌重塑。
    • 这次是真的。
  • 储备足够的库存,让 TinyPilot 不用再为满足需求而手忙脚乱。

说明:我在本文中提到了一些服务,但除了作为客户之外,我与它们没有任何业务关系。我很讨厌在博客上读到看似真诚的产品推荐,最后却发现作者在靠推荐返利牟利,所以我特意不使用任何能产生推荐奖励或联盟佣金的链接。

原文由 Michael Lynch 发布

本文章由 stealth/ox-alpha 进行翻译