TinyPilot: Month 22

Michael Lynch

TinyPilot:第 22 个月

一句话总结

我的钱都花到哪儿去了?

亮点

  • TinyPilot 每月营收 5.8 万美元,却不知怎么还在亏钱。
  • 能低延迟地掌握开发者的工时情况,比我以为的更重要。
  • 近两年来,我第一次重新尝试付费广告。

目标评分

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

发布一篇关于用 TinyPilot 搭建家庭 NAS 服务器的博客文章和视频

  • 结果:快完成了,但还没发布。
  • 评分:D

这篇博客文章比我预想的长得多。关于我挑选配件时的思考过程,有太多细节想写进去,我没意识到这会花这么长时间。我希望能在接下来一两周内收尾。

完成 TinyPilot 网站改版

  • 结果:网站上几乎没有任何设计上的改动。
  • 评分:F

这个原本计划六周完成的改版,现在已经进行到第七个月了。而且,说来惭愧,我们几乎没有对网站做出任何用户可见的改动。

我已经取消了与设计公司的合同,所以他们会在本月内收尾工作。我希望他们能在剩下的几周内完成改版。如果不能,我会再雇一名开发者来完成,因为这件事已经拖得太久了。

发布一个支持通过 WebRTC 传输 H264 视频的实验性功能的 TinyPilot Pro 版本

  • 结果:向一个大客户分享了早期构建版本,但还没有公开发布。
  • 评分:C

这个月的主题是“比预期多花了点时间”。版本已经代码完成,但在向客户发布构建之前,我还得完成最后一些手动测试。

TinyPilot 数据统计

指标2022 年 3 月2022 年 4 月变化
独立访客6,2125,268-944(-15%)
总页面浏览量13,37511,974-1,401(-10%)
销售收入$65,171.82$43,771.00-$21,400.82(-33%)
企业订阅$47.75$47.750
版税收入$4,012.83$2,253.61-$1,759.22(-44%)
总收入$69,232.40$46,072.36-$23,160.04(-33%)
利润$-3,043.34$-19,392.76-$16,349.42(inf%)

四月对 TinyPilot 来说是艰难的一个月。无论在美国还是我们的欧盟经销商那里,销售额都降到了六个月来的最低点。通常每月约有 5 千到 1 万美元的收入来自少数几笔大订单,但四月一笔这样的订单都没有。

目前还不清楚四月只是运气不好,还是人们因为经济衰退的迹象而减少了支出,又或者是 TinyPilot 竞争对手的新产品在蚕食销量。

我的钱都花到哪儿去了?

在上一次回顾中,我说过 2022 年第一季度我平均每月盈利 5.3 千美元。做账的时候,我发现博客里的数字和账目对不上,实际上我每月亏损 3 千美元。

这个数字让我很意外,因为我每月有 5.8 万美元的营收,每台 TinyPilot 设备能赚 250 到 325 美元的利润,怎么可能亏钱呢?

为了弄清楚原因,我仔细查看了 2022 年第一季度的月度开支。

开支项目每月成本
原材料$24,896.46
软件与支持外包人员$14,900.43
设计公司$7,938.32
电气工程$5,291.07
发货人员$2,915.75
邮费$2,393.49
税费 / 关税$1,423.14
办公室租金$916.67*
云服务$495.03
广告$106.78
其他一切$265.34
总计$61,542.47

* 我的实际租金是每月 550 美元,但第一季度的租金开支显得偏高,因为房东兑现支票的时间很奇怪。

最大的开支是原材料,比平时还高,因为为了防范供应短缺,我必须为未来 18 到 36 个月囤积零件。其中约每月 6.2 千美元是能用好几年的零件,所以一旦囤货完成,每月的物料成本会显著降低。

第二大开支是软件与支持,共 1.49 万美元。这比平时略高,因为我短期聘请了一位外部顾问来帮助集成一项新的视频技术。正常水平接近 1.2 万美元,但这也仍然相当高。

TinyPilot Pro 收费本来是为了覆盖开发和支持成本,但我们至今没有实现许可证校验或到期提醒。大约三分之一的 TinyPilot 客户的 TinyPilot Pro 许可证已经过期却不自知,但他们仍在继续享受免费支持和更新。未来几个月我的首要软件任务是彻底改造 TinyPilot 的更新流程,让只有持有有效付费许可证的用户才能获取最新的 TinyPilot Pro 版本。我还想让用户更容易注册按年自动续费,这样他们只需每年支付 80 美元的许可证费用,而不用在过期后重新购买。

设计公司每月花费近 8 千美元,不过幸运的是这笔开销即将消失。我已经付给他们最后一笔款项,合同将于五月底终止。我可能会雇一名开发者维护网站,但那将是更少的工时、更低的费率,大概每月 1 到 2 千美元。

接下来是每月 5.3 千美元的电气工程费用。在未来 2 到 3 个月内,这些成本会保持高位,因为我的电气工程合作伙伴正在为可制造性重新设计 TinyPilot Voyager 2。设计工作完成后,我预计成本会降到每月 2 千美元左右,因为维护工作比设计工作便宜得多。

这些开支可以归为三大类:

  • 持续成本:与销售额无关的经常性成本,如租金和工资。
  • 物料与邮费:这些几乎是销售额的纯函数,但增长速度应约为营收的三分之一。
  • 临时性开支:一次性开支,如重新设计硬件或囤积元器件。

我必须从销售中获得足够的利润来覆盖持续成本,并为增长性开支留出空间。如果我估计软件成本降到每月 1.2 万美元、电气工程降到 2 千美元,那么我的持续成本约为每月 1.9 万美元。如果原材料约占营收的 30%,那就意味着我需要达到 2.7 万美元的销售额才能维持运转(2.7 万美元的销售额扣除物料成本后净得 2.2 万美元)。

每月 2.7 万美元的销售额感觉完全可以做到,因为过去六个月我一直远高于这个水平。不过,我的销售额呈下降趋势,经济衰退的迹象也在显现,所以我希望能在盈亏平衡点之上留出足够的空间,以应对增长和一次性成本。

低延迟工时汇报的重要性

上次的更新中,我列举了许多我希望在与设计公司合作之前就知道的事。四月,我又发现了一件可以加进清单的事:工时汇报至关重要。

三月底,设计公司对改版提出了一个建议:换一个新的 Bootstrap 主题。TinyPilot 网站使用 Bootstrap CSS 框架。我们至今仍在用我创建网站第一版时从 Bootswatch 获取的那个免费第三方主题。除了 Bootstrap 和第三方主题之外,我们还有自己的自定义样式,通常是针对每个页面或每个组件的。

设计公司指出这种架构很混乱,我们应该用自己统一的 Bootstrap 全站主题替换第三方主题和各页面的自定义样式。他们估计只需几天的工作量。在我看来这挺合理的。它很可能物有所值,因为否则改版的其余部分都要与三层不同的 CSS 样式纠缠。

结果这项主题工作花了五个星期,总成本 6.1 千美元。以下是用户实际能看到的效果:

改动前 TinyPilot 网站的截图改动后 TinyPilot 网站的截图,字体和颜色略有不同

改动前(左)与改动后(右),价值 6.1 千美元的网页开发成果

长远来看,这次重构是有益的,但我不会选择在此刻做这件事。改版已经晚了六个月,预算超了五倍。与其要一个代码漂亮但外观寒酸的网站,我宁愿先有一个漂亮的网站,再去慢慢修丑陋的代码。

那么,我是怎么让这种事发生的?TinyPilot 的常规开发者很少在我没要求的事情上陷入泥潭,但这种事在设计公司身上一再发生。

一个关键区别是,TinyPilot 的开发者能让我低延迟地了解他们的时间花在哪里。每次工作结束时,他们都会记录工时,并附上一条简短说明自己在做什么。

Deel 上 TinyPilot 工时汇报的截图

TinyPilot 的内部开发者随时记录自己的工时。

如果我在等他们的交付成果,我会查看他们的工时。如果我看到他们在一件我预计只需两小时的任务上花了 14 小时,这说明要么是我低估了难度,要么是我把任务解释得不好。无论哪种情况,我都会找开发者沟通,然后决定是继续推进还是及时纠偏。

而设计公司的反馈回路则慢得多。他们在每月 15 号给我发一份更新,只告诉我他们工作的总小时数。月底时,他们会发来一份完整的报告,说明工时都花在了哪里,但到那时已经太迟了。

一封写着“您目前已使用 2022 年 4 月 40 小时中的 16.02 小时”的邮件按任务细分工时的报告

设计公司每月只汇报两次工时——月中一次,只有一个不透明的总时长(左);月末一次,才有更细致的分解(右)。

设计公司的另一个问题是,他们只按月而不是按周承诺工时。二月,他们前三周完全没干活,然后把所有工作压缩到最后十天完成。这让糟糕的反馈回路雪上加霜,因为我无法区分一个任务到底是耗时太长,还是根本还没开始。

如果将来再与设计公司合作,我会坚持使用一种能让我们实时共享计费工时视图的工具。这些信息太宝贵了,不能拖延数周才拿到,因为它能让我及时发现双方预期的不一致。

初次试水付费搜索广告

TinyPilot 创立早期我曾尝试投放付费广告,但当时我没有好的办法衡量其效果。我的销售网站用的是一套古怪的自定义技术栈,很难与 Shopify 或 Google Analytics 上常见的转化跟踪工具集成。即使转化跟踪看起来在工作,它也只记录了约 30% 的销售,所以要么是我哪里搞错了,要么是我的用户中有 70% 开启了广告拦截器。

当我尝试联盟广告主时,无意中解决了转化跟踪的问题。当客户通过联盟链接访问时,TinyPilot 网站会把联盟 ID 存储在浏览器的本地存储中。客户结账时,我们会把联盟 ID 作为订单的一个属性保存下来。这样,我们既不依赖 Google Analytics,也不必与广告拦截器缠斗。

我意识到可以用同样的方案来跟踪付费广告。我只需把广告 URL 中的引荐信息当作联盟 ID 处理即可。于是,我在 Google 和 Bing 上投放广告,重新尝试付费广告。

Google 广告:TinyPilot KVM over IP | Easy Remote Access | Open-Source, PoE, HTML5 TinyPilot is a simple, modern KVM over IP device with PoE. No software installation or Java plugins. Setup takes 5 minutes.

我的第一条 Google 搜索广告。

指标GoogleBing
广告支出$1,715.10$1,018.09
展示次数15,6237,023
点击次数701196
点击率(CTR)4.5%2.8%
单次点击成本(CPC)$2.45$5.19
转化带来的收入$4,202.88$789.97
广告支出回报率(ROAS)2.450.78

Google 在几乎所有指标上都胜过 Bing。Bing 的单次点击成本是 Google 的两倍,但产生的收入只有三分之一。

最重要的指标是广告支出回报率(ROAS),Google 上为 2.45。换句话说,我在 Google 广告上每花一美元,就能获得 2.45 美元的收入。这大约需要 0.76 美元的零件和人工成本。回报大致为:2.45 美元收入 - 1 美元广告支出 - 0.76 美元零件人工 = 0.69 美元利润。

也就是说,在 Google 广告上花 1 美元能带来 0.69 美元的利润,这是笔好买卖!实际数字只会更高,因为收入是一个下限:如果用户在手机上点击广告,然后在台式机上购买,我的指标就无法把这笔销售记到 Google 头上。所以,我从这些广告中赚到的可能比指标显示的还要多。

我还没有对广告文案或受众定向做过任何实验。我怀疑如果把方向盘交给一家营销公司,它们能大幅提升这些回报。

我已把 Google 的预算提高到每天 150 美元,只要继续有利可图,我就会不断加大投入。

Bing 的预算我保持在每天 50 美元,并对广告做一些调整。Bing 曾为一些不相关的查询展示我的广告,比如“unifi 24 port switch”(一个功能完全不同的产品)和“kvms pro”(某种 CCTV 管理软件)。

我原本打算在 Duck Duck Go 上投放广告,因为我觉得它的用户与我的产品非常匹配。奇怪的是,Duck Duck Go 只通过其直接竞争对手 Bing 间接售卖广告。要在 Duck Duck Go 上买广告,你必须先在 Bing 上投放广告,然后启用 Bing 的联合合作伙伴渠道,其中包括 AOL、Yahoo 和 Duck Duck Go。

Duck Duck Go 上投放广告的唯一途径是在 Bing、Yahoo 和 AOL 上投放广告。

业余项目

PicoShare

我继续乐此不疲地开发 PicoShare,这是我为了更方便地分享大文件而写的一个简单 Web 应用。

一个让我很兴奋的功能是可以创建访客上传链接。很多时候,尤其是在与 TinyPilot 的合作伙伴协作时,我想让别人给我发一个太大而无法用邮件发送的文件,但又不想让对方经历注册 Google Drive 或 Dropbox 之类的云存储服务的繁琐流程。

借助 PicoShare 的访客上传功能,我可以像这样创建一个访客链接:

PicoShare 创建访客链接界面的截图

然后,PicoShare 会生成一个类似 https://picoshare.tinypilotkvm.com/g/sWy2Pi5Dm8afJuxs 的自定义访客链接。访客访问该链接后,无需任何注册即可向我的 PicoShare 服务器上传文件:

PicoShare 通过访客链接上传界面的截图

我已经开始在 TinyPilot 使用它了,比我之前用的 Mega.nz 和 Dropbox 之类的工具顺畅得多。

我添加的另一个功能是支持私密备注,你可以给上传的文件附加备注,以便记住有关该文件的细节:

带备注文本框的 PicoShare 上传页面截图显示备注内容的 PicoShare 文件索引页面截图

PicoShare 现在允许你为上传的文件附加私密备注。

结语

完成了什么?

  • 我开始从付费搜索广告中看到令人鼓舞的结果。
  • TinyPilot Pro 的 2.4.1 版本已代码完成,支持 H264 视频。
  • TinyPilot 向 uStreamer 贡献了文档,讲解如何通过 WebRTC 传输 H264 视频。

经验教训

  • 与外包人员或公司合作需要低延迟的工时汇报。
    • 否则,等项目超预算或超出范围时往往为时已晚,很容易错过纠正的机会。

下个月的目标

  • 发布一篇关于用 TinyPilot 搭建家庭 NAS 服务器的博客文章和视频。
  • 完成 TinyPilot 网站改版。
  • 聘请一家营销公司或自由职业者。

原文由 Michael Lynch 发布

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