Seven's blog

你不会找到路,除非你敢于迷路

0%

善用 MVP 思维,5 天时间零成本搭建小报童排行榜

前言

你好,我是小柒。
Java 程序员,热衷自动化。

前段时间花了 5 天左右,借助 Notion + CloudFlare + Github Actions 零成本搭建了一个支持一键分销的小报童排行榜: https://xiaobot.osguider.com。在这里复盘一下过程,希望能够对你有所启发。

善用 MVP 思维,用最小的成本最快地实现最核心的功能,尽早触达用户,尽早获取反馈,不断迭代,不断升级。

什么是小报童排行榜?

小报童排行榜是一个罗列了(几乎)所有小报童专栏的导航网页。可以帮助你一键分销所有小报童专栏

小报童排行榜-最近更新专栏

为什么要做小报童排行榜?

  • 主要是因为小报童官方没有公开的专栏索引列表,但这个痛点确实是在的。既然有需求未被实现,机会不就来了?
  • 实现足够简单,成本足够低,做这个游刃有余。
  • 折腾副业,没自己的产品始终感觉没底气。所以,小报童排行榜可以是我的产品支撑,也可以是我向外链接的突破口。
  • 能给我带来收益:哪怕是最基础的小报童分销,也能带来一些收益。且不说后面依据这个产品的放大升级。

小报童排行榜给我带来了什么?

  • 我能做成一件事的信心
  • 和我一起做事的朋友
  • 借助小报童排行榜,链接到了更多朋友
  • 副业生态的起点
  • 一点点小钱

一些有趣的统计数据

  • 迄今为止我收录了 308 位作者的 403 个小报童专栏。其中:
    • 有 26 位作者的 38 个专栏订阅数量超过 3000,占比 9%。只要订阅数量超过 3000 就能跻身前 10%。
    • 有 50 位作者的 72 个专栏订阅数量在 1000 和 3000 之间,占比 18%。只要订阅数量超过 1000 就能跻身前 30%。
    • 有 97 位作者的 105 个专栏超过 1 年没有更新,算是已完结的状态。有人入场,有人离场。机会、永远都在那里等你,剩下的、就是你能否主动抓住它了。
    • 15 亿国人,你的竞争对手只有 308 位。其实只要开始,就已经是成功了。
  • 有很多数据不太好看的专栏(订阅数量为 0),其中绝大部分是订阅制而非买断式。因为小报童展示的订阅数=当前仍在订阅状态的用户数,当用户订阅到期不再续订时,这个数量就会减少。所以单从数据好看的角度考虑,买断式的专栏会更好一点。
  • 上线至今,小报童排行榜分销佣金收入 371.61 元,给朋友们定制一键分销系统(扣除返现后)收入 210 元。对于在互联网上流浪多年的我和 Huazi,这个正反馈极佳

我把手上已有的小报童专栏排名数据整理成了一个 Excel 表格,如果你想要自己做一些数据分析,可以通过 osguider 微信我领取。

搭建一个小报童排行榜,可以有多简单?

按照我以往程序员的思维,如果想要做一个小报童排行榜,至少要经历以下步骤:

  • 需求分析
  • 概要设计
  • 数据库设计
  • 爬虫&业务代码编写
  • 前端代码编写
  • 部署上线

带着完美主义的思维,最后可能是因为设计配色不满意、可能是因为前端代码没写好,也可能是爬虫做不出来……从而不了了之,前功尽弃。

这件事情,真的需要这么复杂吗?

需求分析

需求分析需要考虑两个层面:我想做什么?我能做什么?其中:

我想做的事情很简单:把所有小报童专栏汇聚到一个网页,供用户查阅和订阅。
我能做什么主要取决于我能从小报童官方拿到什么样的信息。经过简单的分析,我可以从小报童官方获取到以下信息:

  • 专栏名称
  • 专栏作者
  • 专栏介绍
  • 专栏订阅数量
  • 专栏内容数量
  • 专栏价格
  • 专栏分销比例
  • 专栏分销链接
  • 专栏创建时间
  • 专栏更新时间

小报童排行榜的核心功能是列举出所有的小报童专栏信息,Notion 数据库可以完美实现这个功能!说干就干!

数据库搭建

按照可以从小报童官方获取到的信息搭建 Notion 数据库,这个过程就像是给 Excel 添加多个列字段,非常简单。
这里不再赘述 Notion 的使用,如果你对 Notion 感兴趣,可以通过这几个链接学习。中文用户指南 | Notion Academy | Notion Help Center

一条 Notion 数据库记录长这个样子:

notion数据库记录-生财有术

汇总的列表长这个样子:

notion database-table-小报童专栏


Notion 极其强大!支持任意的页面嵌套,支持把任意页面发布为公网可以访问的网页,甚至可以给同一个数据库定制不同的视图!
那么依据这个功能,我们实际上已经完成了最简单的 MVP:手动收集小报童专栏信息,并通过 Notion 展示。

小报童排行榜的第一个 MVP 长这个样子:

小报童排行榜 Notion Site

数据爬取

作为一个程序员、作为一名 RPA 教练,手动录数据多少有点说不过去了吧?

我们来看几个小报童专栏分销链接:

  • 生财有术项目精选:https://xiaobot.net/p/shengcaiyoushu?refer=6f4ecc2b-70e9-4f58-82de-71e5b1f357ee
  • IP合伙人·八年成事(百问百答):https://xiaobot.net/p/IP10?refer=6f4ecc2b-70e9-4f58-82de-71e5b1f357ee

稍加比较就能发现,分销链接由以下几个部分组成:

  • 域名:https://xiaobot.net/
  • 小报童专栏 ID: shengcaiyoushu / IP10
  • 分销标识:refer=6f4ecc2b-70e9-4f58-82de-71e5b1f357ee

其中:域名是不变的,分销标识只跟发起分销的用户有关系,所以在收集专栏信息的时候,我们只需要收集小报童专栏 ID 即可。这一个步骤,现在确实是手动收集和录入的。
但在这之后,我们可以通过拼接域名和小报童专栏 ID 得到指定小报童专栏的页面地址。访问专栏页面,可以获取到我们需要的几乎所有信息,通过 RPA/写代码 手段轻松获取(这里我的方案是通过 CloudFlare Workers 调用小报童接口获取数据,再使用 Notion API 写入数据库)。
请适当控制 RPA 运行频率,保护服务器负载。

小报童专栏主页-生财有术项目精选

到这里,内容的自动爬取和更新也搞定了。

页面编写 & 自动发布

Notion 也有缺点。毕竟是海外的产品,国内访问速度非常不稳定,根据我自己的测试,Notion Site 在极端情况下需要 10-20 秒才能加载出来,这个速度用户肯定是无法忍受的。在我的认知体系内,写一个静态页面是比较好的解决方案。

在看过我自己写的丑得不能再丑的 HTML Table 之后,我的设计师伙伴 @Huazi 终于还是忍不住亲自上场了。他负责页面样式,我负责内容填充,完美配合。

技术选型大概是这样的:

  • 页面样式:HTML + CSS + JavaScript + Tailwind CSS
  • 内容渲染:通过 JavaScript 脚本调用 Notion API 获取数据,再使用 eleventy 把数据渲染到 HTML。
  • 自动化:通过 Github Actions 每天定时执行内容渲染逻辑,然后自动发布网页到服务器。

至此,第二版小报童排行榜问世:小报童排行榜

小报童排行榜-最近更新专栏

赋能

前面的小报童排行榜只能帮助我自己分销所有小报童专栏,分销佣金也只能我自己拿,怎么让别人愿意帮我推广小报童排行榜呢?最简单的方法当然是让利!
通过给别人定制一键分销网页,页面里所有小报童专栏全部改成别人的分销链接。这样别人也可以通过自己的一键分销网页分销小报童专栏获取收益,我收取一定的技术维护费用,各取所需,各享其利。

实现也很简单,增加一个 Notion 数据库记录分销商信息:

Notion数据库-分销商

通过 Cloudflare Workers 读取 Notion 分销商数据库信息,然后通过 eleventy 渲染子页面并发布即可。这里有几个一键分销页面,可供参考:

  • https://xiaobot.osguider.com/osguider/
  • https://xiaobot.osguider.com/HeyHuazi/
  • https://xiaobot.osguider.com/76718400/
  • https://xiaobot.osguider.com/whyvincent/
  • https://xiaobot.osguider.com/Help000000/
  • https://xiaobot.osguider.com/fxm99960/
  • https://xiaobot.osguider.com/LSL021102/
  • https://xiaobot.osguider.com/yzhm111/
  • https://xiaobot.osguider.com/baojie_xmg/
  • https://xiaobot.osguider.com/liuliuzaish/
  • https://xiaobot.osguider.com/yi25390/
  • https://xiaobot.osguider.com/HX1747023971/
  • https://xiaobot.osguider.com/595683079/
  • https://xiaobot.osguider.com/1738407610/

未来的计划

  • 表单提交自动收录:小报童专栏作者填写金数据表单,cloudflare workers 自动爬取专栏信息并收录到 Notion 数据库。
  • 表单提交自动生成一键分销链接:想要构建一键分销系统的朋友填写金数据表单,cloudflare workers 自动构建一键分销页面。
  • 知识星球绑定销售:做一个知识星球强化个人 IP,小报童排行榜作为赠品而不是单独销售。这样可以把认可产品的朋友带入到我的 IP 圈,逐渐影响,让他们认可我这个人,进而创造更多合作的机会。

后话

当然,现在的小报童排行榜并不完美。
比如现在还不支持分页,比如现在只能用 Ctrl + F 做检索,比如不支持用户自定义要分销的专栏列表。
如果你也觉得有些不爽的地方,欢迎找我聊聊,万分感激。

致谢

感谢我的队友 @Huazi,没有他,小报童排行榜不会如此美观,不会如此受人欢迎。

关于我

重新认识一下。
你好,我是小柒,微信 osguider
Java 程序员,热衷自动化。生财有术 RPA 航海教练(23 年 12 月)。


小报童排行榜 作者,支持一键分销所有小报童专栏,也可以给你定制专属分销链接,欢迎体验。


开源服务指南主理人,依托 Notion 搭建了完整的自动化工作流和图文生成体系,这个后面也会写复盘。

目前实现了:

  • 每天自动从 Github 爬取开源项目信息
  • 自动调用 ChatGPT 开源项目简介
  • 手动审核 ChatGPT 生成的简介并标记审核状态
  • 借助 Pipedream 和 Notion 把已审核的开源项目自动汇总成 Markdown 格式的文章
  • 借助 mdnice 把 Markdown 文章自动转为微信公众号图文
  • 手动分发(等后面抽出时间这里可以用 Automa 做自动分发)

了解开源服务指南:

  • 官网
  • 微信公众号:开源服务指南

做过一个不起眼的导航网站:看见导航 收藏了很多我见过且觉得值得推荐的网页和工具,可能会对你有所帮助。


写过一写 Java 开发工具的使用经验:Intellij IDEA 最佳实践


也欢迎访问我的个人博客:Seven’s blog


微信公众号
扫码关注, 一起进步!