打造 Parakeet:我在 18 歲開發的第一個 SaaS 產品
· 7 分鐘閱讀
創業初衷
我與 Twitter 的不解之緣始於 17 歲。那時正值疫情封城期間,我在 Fiverr 上接案,開啟了自由工作者的生涯,主要做一些小型的 Python 腳本專案。
某天,有位客戶希望能寫個腳本來自動化操作一些 Twitter 帳號。起初只是給他個人使用,但後來他請我順手做個簡單的使用者介面,方便操作,接著他開始把這套工具賣給身邊的朋友。SeigRobotics 這間公司就此誕生。雖然公司有獲利,但我們採用的是買斷制(終身授權),導致每個月都很難找到新客戶。最終開發停滯,公司也隨之解散。
幾個月後,我依然與過去 SeigRobotics 的客戶保持聯絡。藉由他們的意見回饋,我決定打造 Parakeet——一款專為 Twitter 自動化重度使用者設計、功能更齊全的工具。而且這一次,我決定改採訂閱制的商業模式。
https://thibault.sh/assets/parakeet/Parakeet_IO_Promo_Video.m4v
市場背景
當時,球鞋轉賣是一門非常熱門且利潤豐厚的生意。大家紛紛開發「搶機器人(bots)」,只為了能比別人更快搶到限量商品。
這些機器人軟體的價值甚至可以高達 4,000 美元以上,而開發商為了行銷,常會在 Twitter 上舉辦抽獎,送出免費授權給幸運玩家。
Parakeet 一開始就是鎖定這個利基市場的用戶,幫他們自動抽獎、贏得球鞋搶購工具的授權。不過到了 Parakeet 營運的最後一年,大部分使用者的目標都轉向了加密貨幣或線上博弈的 Twitter 抽獎活動。
開發階段
從頭打造軟體
一切從零開始。我最後選擇使用 Electron 搭配 React 來開發介面,並套用了 mantine.dev 元件庫。
我也因此必須學會 Node.js 開發與 TypeScript。
躲避機器人偵測
串接 Twitter 最大的難題,就是如何避免帳號被封鎖。為此,我嘗試了好幾種方法。
代理伺服器 (Proxies)
起初我使用會自動更換 IP 的輪換型代理伺服器(rotating proxies),但後來發現這不是最好的解法。我必須設計出一套系統,讓同一組小規模的帳號群(最多 3 到 4 個帳號)固定使用同一個代理伺服器 IP。
瀏覽器自動化
一開始我們使用的是公開的 API,後來才切換成「瀏覽器模式」。軟體會在背景啟動無頭瀏覽器(headless browser)來執行帳號任務。這方法起初效果不錯,但使用者開始抱怨系統資源消耗過大(特別是 CPU 和代理伺服器的流量)。 為此,我不得不調整策略,去逆向工程 Twitter 網站,找出他們未公開的私有 API 端點。
驗證碼與 Twitter 的「安全挑戰」
有時候當 Twitter 覺得某個帳號行為可疑時,就會將其「鎖定」,直到你完成特定任務(如圖形驗證碼、電話驗證或等待暫時封鎖期過後)才能解鎖。我必須找出一套方法,在客戶帳號被鎖定時能夠自動偵測並發送通知。 最後我也串接了 2captcha 的 API 來解決這個問題。
業務成長與挑戰
這個專案一開始只有我身邊一小群核心用戶在使用,他們非常積極參與產品開發,並提供許多回饋與 Bug 回報。 我雖然有在 Twitter 上做過一些行銷推廣,但很快就遇到了用戶增長的瓶頸。同時,我也對於是否要投入大量行銷資源、或甚至僱用專人來幫忙感到信心不足。
後來有人主動聯繫我,提議用技術股交換,由他來負責 Parakeet 的行銷工作,我答應了。現在回想起來,這或許是個錯誤的決定,因為成效不彰,我也因此流失了部分股權。
當時我還是個學生,只能利用課餘時間開發。當我畢業並開始全職做自由工作者後,投入在 Parakeet 的時間與獲得的收益已經不成正比,最終我決定放棄這個專案。
加上後來 Elon Musk 買下 Twitter 並進行了一系列改版,導致 Parakeet 的許多功能逐漸失效,使用者也開始陸續取消訂閱。
結語與反思
儘管 Parakeet 最後並沒有如我預期般大獲成功,但這絕對是一段無價的經歷。 我從中學到了超多關於程式開發、商業營運,甚至「報稅」的實務經驗。這些經歷更成為我日後全職接案時,推銷自己的最佳武器。
自從結束 Parakeet 後,我已經迫不及待想迎接下一個成功的專案了。
加碼分享:
產品的使用者文件(內含部分 App 截圖): Parakeet User docs
這裡也分享 Parakeet 在我大學期間為我帶來的營收數據:

