Is It Keto: Month 12

Michael Lynch

Is It Keto:第 12 個月

原文由 Michael Lynch 發布,訂閱此部落格

一句話總結

每月 5 萬訪客的價值,遠比我原本想像的還要高。

亮點

  • 我為 Is It Keto 新增了 88 篇程式自動產生的文章。
  • 每月有 10 萬次瀏覽量,是時候探索與 Is It Keto 讀者群互動的新方式了。
  • 我用不到 100 美元的硬體,打造了一台 KVM over IP 裝置。

目標達成度

每個月月初,我都會訂下想完成的目標。以下是這個月的達成狀況:

為 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%)
網域評分(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 的訪客數持續成長。看起來已經恢復到疫情前的正常水準。令人擔心的是,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 的變現點子。我答應了,這場對話也為這個事業帶來幾個很有用的洞察。

最讓我驚訝的是,Justin 對 Is It Keto 的訪客數據評價非常高。

Justin:每週有多少不重複訪客?

:大概一萬左右。

Justin:哇,你根本是坐在一座金礦上。

頂尖的生酮食譜部落格每月約有 300 萬不重複訪客,所以我的 4、5 萬感覺根本不算什麼。但 Justin 認為,推出產品最困難的部分之一就是找到有興趣的顧客,如果我每週都能接觸到 1 萬個對生酮有興趣的人,那已經是巨大的優勢。

Justin:當你觀察現有的生酮社群時,你覺得大家常遇到什麼困擾?哪些問題最常被提起?

:我不太確定。我覺得大部分的討論都是大家分享進展,然後其他人互相祝賀。

Justin:互相祝賀……這很有意思。你有看過 wip.chat 嗎?

wip.chat 的截圖

wip.chat,一個深受獨立開發者歡迎的社群網路

wip.chat 是獨立開發者之間很受歡迎的社群網路。非會員可以瀏覽部分內容,但要發文就必須成為會員,費用是每月 20 美元。他們的主張是,wip.chat 社群能透過讓你對專案里程碑負責,來幫助你打造產品。

我們越聊這個生酮版的 wip.chat,我就越喜歡這個點子。我看過的生酮社群網路都是用通用的工具:Facebook 社團、subreddit、Discord 頻道。如果有一個專為生酮飲食者打造的工具會怎麼樣?接下來一週,我又想了 25 個點子,但這個 wip.chat 的仿製版依然排在第一名。

這週,我打算為這個構想中的生酮社群網路做一個登陸頁面,並在 Is It Keto 上宣傳。我會放上一個註冊按鈕,但當使用者嘗試付款時,會看到類似這樣的訊息:「網站還在建置中,不過你可以先加入等候名單,完成後會通知你。」

另一個從對話中得到的重要洞察是關於合作:

Justin:一旦你做出會員制產品,就可以直接和其他生酮相關的商家建立合作與分潤關係。

:可是我現在就已經有訪客了。為什麼不現在就做?

Justin:問得好。你為什麼「不」現在就做呢?

這就是為什麼旁觀者的觀點如此有價值。在 Is It Keto 剛起步時,我曾試著找其他生酮公司談聯盟合作,但那時網站太小,大多被已讀不回。現在有了每月 10 萬次瀏覽量,Is It Keto 已經夠有份量,可以談合作了。我只是因為這個想法太久不可行,就忘了重新考慮。但現在有什麼理由不直接去聯繫那些透過 AdSense 在我網站上投放廣告的生酮商家,問他們要不要跟我直接合作呢?

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,參考 a la carte
在 GraphQL 層而非 Vue 層篩選 Gridsome 資料,以縮小靜態 JSON 檔案的大小,參考at the graphql layer
移除這個 hack,用於在 Gridsome 中以動態路徑載入圖片
改用 <link rel> 標籤而非 CSS @import 來載入 Google Fonts
調整 Google Fonts 的 URL,只下載我需要的字型
在 HTML <head> 中為 Google Fonts 加入 preconnectdns-prefetch
在 Google Fonts 的匯入 URL 加上 ?display=swap,以避免「Flash of Invisible Text」

大家都在說要用 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 最初是跑在 App Engine 上的 Python 2。考量到我重新聚焦在這個網站上,加上 Google 計畫終止對 Python 2 的支援,我在四月決定重寫整個網站。我選擇了 Gridsome,一個以 Vue 為基礎的靜態網站產生器。

我本以為可以兩者兼得:既有預先渲染網站的效能,又有 Vue 靈活的開發體驗。結果發現,網頁效能比我想的要複雜得多。

我原本以為瀏覽器會先渲染所有預先產生的 HTML,再在背景執行 JavaScript。結果發現瀏覽器其實非常堅持要先執行 JavaScript 才做其他事。即使在 Is It Keto 上,我的 <script> 標籤已經放在 HTML 最底部而且加上了 defer 屬性,它們還是會把我的效能分數拉得很低:

啟用 scripts 時 Lighthouse 分數為 47 分
移除 scripts 後 Lighthouse 分數為 87 分

如果我把 Is It Keto 上的 <script> 標籤刪掉,它的 Lighthouse 分數會暴增 40 分,但網站就會無法運作。

預計在未來幾個月發布的 Vue 3,據說會因為tree shaking而提升效能。意思是它能透過剔除未使用的框架程式碼來縮小 JavaScript 的 payload。Gridsome 聲稱他們的 1.0 版本將會相容於 Vue 3,但他們看起來人力資源非常吃緊,讓我擔心可能還要好幾年才會實現。

用 Raspberry Pi 作為虛擬鍵盤與螢幕

過去幾週,我一直在做一個興趣專案,我不認為它會變成一門生意,但或許還是有市場。

我目前的伺服器是 headless 的,沒有接鍵盤或螢幕。我都是透過 SSH 與它互動。問題是,如果作業系統無法載入,或我想更改 BIOS 設定,就束手無策了——我得把整台伺服器搬到桌邊,接上桌機的螢幕和鍵盤才能操作。

對於下一台伺服器,我一直夢想能有某種虛擬主控台。市面上有像 Dell 的 iDRACHP 的 iLO 這種企業級解決方案,但會讓伺服器成本增加好幾百美元。也有 KVM over IP 裝置,但同樣要價 400 美元以上,而且需要臃腫的客戶端軟體。

過去幾週,我一直嘗試用 Raspberry Pi 4 打造平價版的遠端主控台。鍵盤的部分透過網路運作得很順:

我讓 Raspberry Pi 成功透過瀏覽器來模擬鍵盤操作

要顯示目標機器的畫面就比較棘手,不過我現在已經做到了,延遲大約 1 秒。實際效果如下:

我讓 Raspberry Pi 成功透過瀏覽器來模擬鍵盤操作

目前影像會出現在獨立的視窗中,但我正在試著把它直接嵌入到網頁裡。

我正在寫一篇部落格文章會更詳細地說明一切,不過如果你想先看看原始碼,已經公開了,只是還沒完整加上文件:

  • key-mime-pi:用於將按鍵轉發到 Raspberry Pi 虛擬鍵盤裝置的網頁伺服器。
  • ansible-role-key-mime-pi:一個 Ansible role,用來設定 Pi 的 USB gadget 功能(讓它能模擬鍵盤),並將網頁伺服器安裝為 systemd 服務。

我考慮以約 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 在五月突然湧現一波關注。有三位客戶詢問了企業版的報價。其中兩位看起來已經沒戲了,但第三位或許有機會談成。這週末前應該就會知道結果。

總結

完成了什麼?

  • Is It Keto 的文章數量增加了 40%。
  • Is It Keto 的 Lighthouse 效能分數提升了 43 分(從 4 分到 47 分)。
  • 在同儕導師團體中發表了一場名為 「How to be a Sort of Successful Blogger」 的演講。

經驗教訓

  • 即使是預先渲染的 Vue 網站,仍需付出可觀的效能代價。
  • 跟新的人聊你的事業,能幫助你重新審視自己的假設。

下個月的目標

  • 驗證 Is It Keto 姊妹產品的點子。
  • 為 Is It Keto 新增 30 篇文章。
  • 打造一個可透過網頁瀏覽器控制、基於 Pi 的 KVM over IP 裝置。

本文章由 muse-spark-1.2-contributor 進行翻譯

留言