Is It Keto: Month 12

Michael Lynch

Is It Keto:第 12 个月

一句话总结

每月 5 万名访客的价值,比我原先认为的更高。

亮点

  • 我为 Is It Keto 新增了 88 篇程序化生成的文章。
  • 每月页面浏览量达到 10 万,是时候探索与 Is It Keto 受众合作的新方式了。
  • 我制作了一台硬件成本低于 100 美元的 KVM over IP(基于 IP 的 KVM)设备。

目标评分

每个月初,我都会宣布自己希望完成的事情。以下是我对照这些目标完成的情况:

为 Is It Keto 新增 100 篇文章

  • 结果:为 Is It Keto 新增了 88 篇文章
  • 评分:B

程序化生成内容比我预想的更难。生成评分和营养数据很容易,但要把大量适用于各种产品的文本模板化,就困难得多。

我会继续完善模板并添加新的食物,但也会探索其他增加网站收入的方式。

发布一篇新的博客文章

过去两年里,我一直以各种形式制作这篇文章,所以很高兴它终于发布了。我对最终成果很满意,也很高兴听到有人说这篇文章为他们自己的数字化项目提供了有用的思路。

这篇文章在 Reddit 上获得了不错的反响,但没能在 Hacker News 上引起关注。我仍然认为它有机会在 Hacker News 上得到传播,所以过一周左右我会再试一次。

统计数据

Is It Keto

指标2020 年 4 月2020 年 5 月变化
独立访客35,45150,352+14,901(+42%)
页面浏览总量72,89499,391+26,497(+36%)
Domain Rating(Ahrefs)27.027.00
AdSense 收入$92.09$109.92+$17.83(+19%)
Amazon 联盟收入$128.39$111.61-$16.78(-13%)
总收入$220.48$221.53+$1.05(+0%)

Is It Keto 的访客数继续增长。它的活跃度似乎已经恢复到了 COVID 之前的正常水平。令人担忧的是,AdSense 收入没有跟上增长,Amazon 联盟收入甚至有所下降。

仔细查看统计数据后,我发现 Is It Keto 在 5 月为 Amazon 带来的收入比 4 月多了 25%,但 Amazon大幅削减了联盟计划的佣金比例,导致 Is It Keto 的收入大幅减少。

进一步挖掘 Is It Keto 的受众价值

几周前,Justin Vincent(贾斯廷·文森特)联系了我。他是一位连续创业者,也是The Nugget Startup Academy 的创始人。他一直喜欢我的博客,想知道我是否愿意通过 Zoom 通话,一起头脑风暴如何将 Is It Keto 变现。我答应了,这次交流也让我对这项业务有了几条很有用的洞见。

第一件让我感到意外的事,是贾斯廷对 Is It Keto 访客数据的评价非常高。

贾斯廷:你每周有多少独立访客?

:大约一万。

贾斯廷:哇。你手里可是坐拥一座金矿。

顶尖的 keto 食谱博客每月能获得约 300 万名独立访客,所以我这 4 万到 5 万名访客在我看来少得可怜。贾斯廷认为,推出一款产品最难的环节之一就是找到感兴趣的客户;但如果我每周能接触到 1 万名对 keto 感兴趣的人,那就是巨大的领先优势。

贾斯廷:看看现有的 keto 社区,你注意到人们在为什么事情上苦苦挣扎?哪些问题经常出现?

:我不知道。我感觉大多数讨论都围绕着人们分享自己的进展,以及其他成员向他们表示祝贺。

贾斯廷:互相祝贺……这很有意思。你看过 wip.chat 吗?

wip.chat 的截图

wip.chat,一个面向独立软件开发者的热门社交网络

wip.chat 是一个面向独立开发者的热门社交网络。非会员可以查看部分内容,但必须成为会员才能发布任何内容,而会员费是每月 20 美元。他们的宣传重点是,wip.chat 社区通过让你对项目里程碑负责,帮助你完成产品构建。

我们越是讨论为 keto 打造一个 wip.chat,我就越喜欢这个想法。我见过的所有 keto 社交网络都使用通用工具:Facebook 群组、subreddit、Discord 频道。如果有一个专为 keto 节食者设计的工具,会怎么样?接下来的一周里,我又头脑风暴出了 25 个想法,但 wip.chat 的克隆版仍然排在我的清单首位。

本周,我要为这个理论上的 keto 社交网络创建一个落地页,并在 Is It Keto 上为它投放广告。我会放一个注册按钮,但当用户尝试付款时,他们会看到类似这样的消息:“我还在构建这个网站,但你可以注册这个邮件列表,以便在它准备好时收到通知。”

这次交流带来的另一个重要洞见与合作伙伴关系有关:

贾斯廷:等你创建了会员产品,就可以与其他 keto 企业开展直接合作和联盟交易。

:但我已经有访客了。为什么不现在就做呢?

贾斯廷:问得好。你为什么不现在就做呢?

这就是从局外人的角度看问题的价值所在。Is It Keto 刚起步时,我曾尝试接触其他 keto 公司,寻求联盟合作,但那时我的规模太小了,所以大多数公司都不理我。如今每月页面浏览量达到 10 万,Is It Keto 已经足够重要,开展合作是可行的。我只是忘了重新考虑这个想法,因为它已经长期不可行了。但现在有什么能阻止我联系那些通过 AdSense 在我的网站上投放广告的 keto 企业,问问他们是否愿意直接和我达成合作?

wip.chat 的截图

也许我可以直接和这家广告商达成合作,而不是通过 Google AdSense。

改善 Is It Keto 的浏览器性能

在 Is It Keto 存在的大部分时间里,性能都只是事后才考虑的问题。偶尔我会修复一些造成明显变慢的组件,但很少会从设计之初就考虑速度。

考虑到 Google 带来了网站 90% 的访客,而且Google 会将性能作为搜索结果排名的指标,我花了几天时间找出 Is It Keto 的瓶颈。我使用 Gridsome 框架生成 Is It Keto 的内容,因此这篇文章帮助我获得了一些性能提升。

改动性能影响
使用按需方式加载 Bootstrap-Vue 组件,而不是导入全部 Bootstrap-Vue 和 Bootstrap-Vue-Icons
graphql 层过滤 Gridsome 数据,而不是在 Vue 层过滤,以减小静态 JSON 文件的大小
撤销了使用这个变通方案在 Gridsome 中加载动态路径图片的做法
使用 <link rel> 标签导入 Google Fonts,而不是使用 CSS @import
调整 Google Fonts URL,只下载我需要的字体
在 HTML <head> 中为 Google Fonts 添加 preconnectdns-prefetch
在 Google Fonts 导入 URL 中添加 ?display=swap,避免出现“不可见文本闪现”

大家都在谈论使用 webpack-bundle-analyzer 来寻找 JS bundle 中体积较大的组件。我一度觉得自己是不是疯了,因为我找不到任何关于实际如何使用它的说明。所有说明基本上都在说:

  1. npm install webpack-bundle-analyzer
  2. ???
  3. 在浏览器中查看有用的可视化结果。

但它们从来没有解释你究竟如何生成这个可视化结果。我最终弄清楚了,缺失的第 2 步是将 webpack-bundle-analyzer 接入你的构建流程(具体方式取决于技术栈,但这里介绍了在 Gridsome 中的做法)。这样下次构建应用时,你就会看到类似下面这样的行:

Webpack Bundle Analyzer saved report to /home/user/isitketo/dist/report.html

然后打开 report.html,你就会看到大家都在谈论的可视化结果。

网页性能比我想象的更难

Is It Keto 最初运行在使用 Python 2 的 App Engine 上。鉴于我重新把重点放回这个网站,再加上 Google 计划结束对 Python 2 的支持,我在 4 月决定重写这个网站。我选择了Gridsome,一个基于 Vue 的静态网站生成器。

当时看来,我可以两全其美:获得预渲染网站的性能,以及 Vue 灵活的开发体验。事实证明,网页性能比我意识到的要复杂一些。

我原以为浏览器会直接渲染所有预生成的 HTML,然后在后台执行 JavaScript。结果浏览器真的很想在做其他事情之前先执行 JavaScript。尽管在 Is It Keto 中,我的 <script> 标签位于 HTML 最底部,并且带有 defer 属性,但它们仍然严重拖累了我的性能指标:

启用脚本时 Lighthouse 得分为 47
删除脚本后 Lighthouse 得分为 87

如果我删除 Is It Keto 中的 <script> 标签,其 Lighthouse 得分会提高 40 分,但网站也会因此无法正常运行。

预计未来几个月发布的 Vue 3 应该会通过tree shaking改善性能。这意味着它可以移除未使用的框架代码,从而减小 JavaScript 负载的大小。Gridsome 声称其 1.0 版本将兼容 Vue 3,但他们似乎受到开发资源的严重限制,我担心他们可能要过几年才能实现这一点。

将 Raspberry Pi 作为虚拟键盘和显示器

过去几周里,我一直在做一个业余项目。我不认为它会发展成一门生意,但也许它确实存在市场。

目前的服务器是无头的,因此没有连接键盘或显示器。我只是通过 SSH 与它交互。问题是,如果操作系统无法加载,或者我想修改 BIOS 设置,我就会陷入困境——必须把整台服务器拖到桌边,接上台式机的显示器和键盘,才能访问服务器。

对于下一台服务器,我一直梦想拥有某种虚拟控制台。有 Dell 的 iDRAC 和 HP 的 iLO 这样的企业级解决方案,但它们会让服务器成本增加几百美元。市面上也有KVM over IP 设备,但它们同样要价 400 多美元,而且需要臃肿的客户端软件。

过去几周里,我一直在尝试用 Raspberry Pi 4 打造一套穷人版远程控制台。键盘部分通过网络运行得非常好:

我让 Raspberry Pi 成功充当了一个由浏览器控制的键盘

显示目标机器的视频更棘手一些,但现在我已经让它运行起来了,延迟大约为 1 秒。效果如下:

我让 Raspberry Pi 成功充当了一个由浏览器控制的键盘

目前视频显示在单独的窗口中,但我正在设法将它直接嵌入网页。

我正在写一篇博客文章,更详细地解释整个过程;不过如果你想先看看源代码,它已经公开了,只是文档还不完整:

  • key-mime-pi:用于将按键转发到 Raspberry Pi 虚拟键盘设备的 Web 服务器。
  • ansible-role-key-mime-pi:用于配置 Pi 的 USB gadget 功能(使其能够模拟键盘),以及将 Web 服务器安装为 systemd 服务的 Ansible role。

我正在考虑以约 180 美元的价格出售预配置套件。如果你有兴趣购买,请访问:

旧项目

以下是一些我仍在维护、但不再是开发重点的项目的简要更新:

Zestful

指标2020 年 4 月2020 年 5 月变化
独立访客1,142467-675(-59%)
页面浏览总量2,9601,258-1,702(-57%)
RapidAPI 收入$32.19$6.48-$25.71(-80%)
总收入$32.19$6.48-$25.71(-80%)

不知为何,Zestful 在 5 月突然受到关注。三位客户要求获取 Enterprise 定价。其中两位似乎已经没有后续可能了,但第三位客户或许能谈成一些对双方都合适的方案。我应该会在本周结束前知道结果。

总结

完成了什么?

学到的经验

  • 预渲染的 Vue 网站仍然要付出显著的性能代价。
  • 与一个新认识的人谈谈你的业务,有助于重新审视自己的假设。

下个月的目标

  • 验证 Is It Keto 的姊妹产品创意。
  • 为 Is It Keto 新增 30 篇文章。
  • 创建一个可通过 Web 浏览器控制、基于 Pi 的 KVM over IP。

原文由 Michael Lynch 发布

本文章由 openai/gpt-5.6-luna 进行翻译