本地公交实时查询 PWA(Buslens 范式)

Show HN 69 赞项目 Buslens(作者 Rupert Linacre):一个纯前端 PWA,打开微信/浏览器里「允许定位」,就自动显示你附近 200m/500m/1km 半径内的公交线路和到站时刻,移一下地图就换个位置搜。没有后端登录、没有 App 安装,就是「打开即用」的本地出行小工具。它本身可能赚不了大钱,但它证明了**「轻量本地实时出行工具」有真实需求**(HN 69 赞 + 46 条讨论),并且技术上一个人就能复制——这正是一个可复制到更多城市/国家的工具型生意起点。

是什么

Buslens 是英国公交实时查询的 PWA:定位后在地图上直观显示附近公交站与线路,可调搜索半径(200m/500m/1km),移动地图即重查。核心卖点:

  • 零门槛打开即用:无需 App,浏览器 PWA 直接访问,允许定位即可
  • 地图可视化:不看时刻表,看地图上哪条线路离你近
  • 实时到站:接入实时公交数据(英国开放数据/GTFS-Realtime)

「本地公交/出行实时查询」是一个长盛不衰的刚需(通勤人群每天用),而移动端导航 App 往往太重、太杂。Buslens 证明了「轻到不能再轻」的查询 PWA 是有效范式。

商业模式

轻量本地工具 + 流量/数据变现。它不是重 App,而是靠「覆盖城市 + 低门槛打开」攒流量,再变现:

  1. 先做一个城市(如你所在城市)验证流量
  2. 把范式复制到公交数据开放的城市/国家
  3. 流量起来后接广告、做数据订阅或城市授权

变现方法

  1. 站内广告:公交查询是高频刚需,通勤时段流量稳定,AdSense 按展示量。
  2. 公交数据 API 订阅:把聚合后的实时到站数据 API 化,卖给小程序开发者/第三方。
  3. 城市/机构部署授权:有些人不想自己维护数据源,授权你用现成范式帮他所在城市搭建。
  4. PWA 离线/高级版订阅:去广告、多城市、离线时刻表($1-2/月)。
  5. 周边引流:做成通勤社群/本地生活号,沉淀私域。

门槛

低中。核心是调用公开 GTFS/GTFS-Realtime 数据 + 前端 PWA 能力,个人完全可做。真正的难点在数据源获取与覆盖质量——拿到目标城市稳定、更新的公交数据,并保证到站算得准。有几座城市数据开放得好就够起步了。

所需技能

  • 前端:PWA、移动端地图(Leaflet 免费 / Mapbox 额度)、离线缓存
  • GTFS/GTFS-Realtime 数据解析(有现成 Python/JS 库)
  • 基础后端:做数据代理/聚合(避免跨域限制、缓解速率)
  • 移动端体验设计:地图交互、定位权限、加载性能

变现周期

2-3 个月完成一个城市 MVP 并验证流量;广告/订阅收入 3-6 个月见起色。它能成为一个长期被动流量入口。

投入成本

<¥1000:域名 + 地图 API 免费额度。主要成本是时间——MVP 约 4-6 周(若已会前端),然后递归复制到其他城市。

可行性

4/5。理由:需求是刚需高频(通勤每天用)、技术门槛低(一个人+PWA+开放数据可做)、变现路径多样(广告/API/授权/订阅)、且 Buslens 69 赞+46 讨论验证了范式。扣 1 分因为公交数据覆盖质量和冷启动获客(你对某城市有没有热情)决定了上限。

实操步骤

  1. 选一个公交数据开放的目标城市(国内如北京/上海的公开数据接口,国外可用 GTFS 数据源)
  2. 抓取该城市 GTFS 数据,用库解析成线路/站点/时刻
  3. 用 Leaflet/Mapbox 做移动端地图 PWA:定位 → 查询附近站 → 显示线路与到站
  4. 加搜索半径滑块(200m/500m/1km)与地图移动重查——复刻 Buslens 交互
  5. 写个后端代理聚合数据(解跨域 + 缓存,控制速率)
  6. 上 PWA 离线包 + Set-Cookie/WebApp Manifest 做到「打开即用」
  7. 在 HN 发 Show HN(学 Buslens 拿 69 赞的流量)+ 本地通勤社群传播
  8. 流量起来后接广告,再复制到第二、第三城市

风险与坑

  • 数据源不稳定:公交数据可能授权变化、接口变动,要有备选源或缓存兜底
  • 单城市天花板:一个城市用户有限,要靠复制多城市才成规模
  • 广告收入初期很低:别指望上来就赚钱,先当流量入口
  • 与既有导航 App 竞争:差异化在「极轻、地图化、打开即用」,别硬拼功能
  • 冷启动:工具型产品缺传播就沉底,必须主动在 HN/本地社群/N 个城市铺开

证据/验证

  • 来源:Show HN 69 赞 Buslens – where can I get to by bus? (UK)
  • 验证:curl -sI -o /dev/null -w "%{http_code}" https://rupertlinacre.com/buslens/ → HTTP 200 ✅
  • 页面实测文案:Nearby bus routes / Search radius(200 m / 500 m / 1 km)/ Allow location to find nearby buses"