案例库

ntfy:一条 curl 就能推送,匿名免费与三档订阅的边界

依据 ntfy 官方首页、隐私政策、发布与自建文档、集成页、博客与源码仓库,拆解这个 HTTP pub-sub 推送服务如何用「无注册即可用」承担发现与试用、把付费增量落在保留话题名与消息额度上,以及开源自建如何充当信任与退出路径。

把注册、安装、销售都拿掉,免费路径本身就是分发入口。

作者
AOPC 编辑部
发布
AOPC 编辑部
发布时间
更新
2026/9/28
核查
已核查
ntfy 官方首页、隐私政策、发布与自建文档核查后形成的免费路径、订阅边界与自建退出路径
从公开来源到可核查案例结论的证据路径

经营快照

30 秒经营判断

个人主导产品复制难度:高
产品
ntfy(HTTP-based pub-sub 推送服务:PUT/POST 或一条 curl 就能把通知送到手机或桌面,话题无需事先创建;同一份开源代码可以自建成自己的服务器)
目标客户
用脚本、cron、CI 或监控工具给自己发通知的开发者与运维(官方示例覆盖 cronjobs、GitHub Actions、Home Assistant 等场景)
团队状态
官方公开署名只有 Philipp Heckel 一人(文档与博客页脚、第一人称赞助横幅),页脚另有法人主体 ntfy LLC;是否有雇员或其他维护者未公开
商业模式
免费匿名使用 + 三档订阅(年付 $5/$10/$20 每月)+ 开源自建,另有 GitHub Sponsors/Liberapay 捐赠
主要获客
零注册的免费服务本身:首页产品说明第一屏就给出发送示例「curl -d "Backup successful 😀" ntfy.sh/mytopic」,安装文档明写「If you just want to send messages using ntfy.sh, you don't need to install anything. You can just use curl.」
经营证据
价格可核查
核查日期
2026/9/28

收入与成本边界定价结构完全公开(年付 $5/$10/$20 每月,月付 $6/$12/$25;三档的每日消息数、保留话题数、电话与邮件额度、附件上限逐条列出),但**收入、MRR、ARR、付费订阅人数、通知总量、服务器成本、利润率、流失率全部未公开**。首页首屏的两个计数器(「Notifications since 2022」与「GitHub stars」)在服务端 HTML 里分别是一个加载骨架占位与写死的 28,578+,因此本文**不把这两个计数器当作证据**。收款由 Stripe、移动推送由 Google FCM、电话通知由 Twilio 承担,但三家的成本与分成同样未公开。

方法标签

本案例可学习

产品类型
开发者工具
商业模式
免费增值、免费开源

60 秒结论

一分钟看懂这篇文章

把注册、安装、销售都拿掉,免费路径本身就是分发入口。

人负责

  • 创始人署名维护与写博客
  • 自建文档由本人维护并取舍外部教程
  • 靠赞助与订阅两条收入线

AI 负责

  • 官方产品线无 AI 功能
  • 社区自建 MCP server 仅是第三方项目
  • 不构成 AI 案例
  1. 核对署名与法人主体
  2. 逐档抄录定价与额度边界
  3. 核对免费与自建路径
  4. 标注未公开项与截图视野

直接结论

ntfy 的首页第一屏不是「注册」按钮,而是一行可以复制的命令:

curl -d “Backup successful 😀” ntfy.sh/mytopic

没有账号、没有 API Key、没有控制台。话题(topic)在你第一次发布时自动存在——发布文档把这件事说得很直白:「Because there is no sign-up, the topic is essentially a password, so pick something that’s not easily guessable.」安装文档再补一句:「If you just want to send messages using ntfy.sh, you don’t need to install anything. You can just use curl.」

也就是说,产品体验本身就承担了试用:不需要「免费试用 14 天」,因为免费就是默认状态,而且是匿名的(隐私政策写「You can use ntfy without creating an account. Anonymous usage is fully supported.」)。

第二条值得看的是付费买到什么。官方首页定价区的标题句把三条路写在同一行:

Try ntfy for free without sign-up, or check out our paid plans. Or, since it’s open source, you can always self-host it.

三档订阅(Supporter/Pro/Business)在页面上分别显示年付 $5/$10/$20 每月(月付 $6/$12/$25),差别的核心是额度与保留话题名:2,500/20k/50k 每日消息、3/10/50 个保留话题、3/20/50 次电话通知、50/250/500 封每日邮件、25 MB/250 MB/1 GB 附件。基础推送能力不在付费墙后——首页的零注册路径本身就是免费的。

第三条是开源在这门生意里的位置。首页写「100% free software」与双许可(Apache 2.0 + GPLv2),隐私政策把它写成一条可执行的退出路径:「If you don’t trust us or your messages are sensitive, you can self-host your own ntfy server.」对一人公司来说,这类结构的意义是:信任问题不必靠承诺解决,可以直接交给用户自己验证。

先划边界:收入、MRR、付费订阅人数、通知总量、服务器成本、利润率、流失率、免费到付费的转化率、团队人数全部没有公开。 首页首屏确实有两个计数器,但它们不构成经营数据——「Notifications since 2022」在服务端 HTML 里只是一个宽度 150px 的加载骨架,而「GitHub stars」写死为 28,578+,与 GitHub 仓库同期的 34,490 不一致(详见下文「来源核查记录」)。

证据状态

  • 当前公开事实(本轮逐字核对):三档订阅的年付/月付价格与全部额度行;定价标题句;零注册发布说明与 curl 示例;发布文档「topic is essentially a password」与话题名规则;安装文档「you don’t need to install anything. You can just use curl.」;隐私政策 2026-06-15 更新日期与关于信息收集、保留时长、第三方服务(Stripe/FCM/Twilio)的逐项说明;首页双许可与社区段原文;页脚署名与「© 2026 ntfy LLC」。
  • 仓库读数(2026-09-28 通过 GitHub 仓库页与 API):Apache-2.0、34,490 stars、1,621 forks、408 open issues、2021-10-23 创建、2026-09-26 最近推送、homepage 指向 ntfy.sh、owner 为 binwiederhier(类型 User)。
  • 公司自述(未经独立审计):博客 2023-12-06 那篇的第一人称回顾「Just over two years ago, I committed the first 138 lines of Go code to the ntfy repository」;「lots of tutorials and videos from ntfy fans」这一社区规模描述;安装文档中关于 Debian/Ubuntu 仓库从 archive.heckel.io 迁到 archive.ntfy.sh 与「I suspect I will phase it out some time in early 2026」的个人计划说明。
  • 来源核查记录(重要,供后续轮次复用):首页的两个计数器都不是经营数据。「Notifications since 2022」的服务端 HTML 是 <div class="animate-pulse h-7 w-[150px] bg-slate-200"> 的空占位,真实值由前端脚本拉取;「GitHub stars」的服务端值是写死的 28,578+(带 opacity:0 的入场动画),而当轮 GitHub 仓库页与 API 均为 34,490。本文只引用 GitHub 的读数,并提醒读者不要引用首页那两个数字。
  • 来源内部差异(不作调和):GitHub 仓库的 license 字段只标 Apache-2.0,而首页写的是双许可「Apache 2.0 and GPLv2」;仓库里同时存在 LICENSE 与 LICENSE.GPLv2 两个文件(首页页脚各自链出)。两处都照录,不替官方裁决哪个是唯一口径。
  • 归属证据的强度(如实标注):站点与文档的署名是单个自然人(首页页脚「Made with ❤️ by Philipp Heckel」,文档站与博客页脚「Made with ❤️ by Philipp C. Heckel」,文档每页顶部横幅又用第一人称「sponsoring me」),页脚的法人主体是「ntfy LLC」;而「这个 GitHub 账号属于同一个 Philipp Heckel」这一步是间接推断——依据是文档站每页顶部即链向 github.com/binwiederhier/ntfy,且该仓库 API 的 homepage 指回 ntfy.sh。本文因此不写「一人公司」,只写「公开署名只有一人、法人主体是 ntfy LLC、团队规模未公开」。
  • 未公开:收入、MRR、付费订阅人数、通知总量、服务器与流量成本、利润率、流失率、转化率、团队人数与雇佣形态、赞助金额、Stripe/FCM/Twilio 的成本占比,以及内部是否使用 AI。
  • 编辑判断:「免费路径本身就是分发入口」「付费增量只动额度」是本文对公开定价与文档结构的分析,不是官方给出的因果结论。

谁在做、做的是什么

产品定义写在首页:

ntfy (pronounced notify) is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API. It’s infinitely flexible, and 100% free software.

它的最小用法就是一条 HTTP 请求。发布文档给出同一件事在 curl、ntfy CLI、HTTP、JavaScript、Go、PowerShell、Python、PHP 八种形态下的写法,第一个示例是 curl -d "Backup successful 😀" ntfy.sh/mytopic;进阶示例加上 Title、Priority、Tags、Click、Attach、Actions、Email 等头部。「无注册」不是降级选项,而是默认路径:发布文档专门解释了随之而来的责任——话题名即密码。

署名与主体可以逐字核到,但要分清确定性:首页页脚写「Made with ❤️ by Philipp Heckel」与「© 2026 ntfy LLC. All rights reserved.」;文档站与博客的页脚写「Made with ❤️ by Philipp C. Heckel」;文档站每页顶部的横幅是第一人称:

If you like ntfy, please consider sponsoring me via GitHub Sponsors or Liberapay, or subscribing to ntfy Pro.

代码在 github.com/binwiederhier/ntfy(本轮读数:Apache-2.0、34,490 stars、1,621 forks、2021-10-23 创建、2026-09-26 最近推送)。博客里还有一段第一人称的项目史:

Just over two years ago, I committed the first 138 lines of Go code to the ntfy repository. A lot has changed since then: a lot more code, a lot more features, an iOS app, an Android app, a PWA, countless integrations into all sorts of tools, and lots of tutorials and videos from ntfy fans.

这段自述能证明的只有一件事:这是一个由单个人署名维护、且已经长成多端产品的项目。它不能证明「一人公司」——站点没有团队页,页脚只有一个 LLC 主体,其余必须写「未公开」。

免费路径就是分发路径

这是本条案例一手证据最密集的地方,因为「免费怎么用」被写进了产品说明、发布文档和安装文档三处。

第一,试用不需要注册。 首页在产品说明的第一屏给出 curl 示例;发布文档写「Topics are created on the fly by subscribing or publishing to them」,也就是说话题在你第一次发布时自动存在。隐私政策把匿名状态当成正式支持的能力:「You can use ntfy without creating an account. Anonymous usage is fully supported.」

第二,试用不需要安装。 安装文档开头就把「只想发消息」和「想自建」分开:

The following steps are only required if you want to self-host your own ntfy server or you want to use the ntfy CLI. If you just want to send messages using ntfy.sh, you don’t need to install anything. You can just use curl.

第三,免费状态的安全代价被明确说出来,而不是藏起来。 因为无注册,话题名就是唯一凭据:发布文档与首页都写「the topic is essentially a password」,并规定话题名只能含字母、数字、下划线与短横线、最长 64 字符,还提供一个话题名生成器,且特别注明「Everything happens locally in your browser」。这一步很关键:把免费路径的风险讲清楚,比把免费路径做得更像付费版更重要——同页紧接的一句话就是升级钩子:「If you purchase ntfy Pro, you can reserve topic names instead.」

第四,分发口不止一个。 首页「Get ntfy」列出 Google Play、F-Droid、Apple Store、ntfy web、ntfy Server;安装文档另列 Homebrew、Scoop、AUR、nixpkgs、FreeBSD ports 等社区维护包,以及 tarball、deb、rpm、Docker、Kubernetes 等自建方式。第三方工具一侧,官方集成页的 Official integrations 一节逐项点名 27 个项目(changedetection.io、Home Assistant、Healthchecks.io、Apprise、Uptime Kuma、Robusta、borgmatic、Radarr、Sonarr、Gatus、Automatisch、FlexGet、Shoutrrr、Netdata、Deployer、Scrt.link、Platypush、diun、Cloudron、Xitoring、HetrixTools、EasyMorph、Monibot、Miniflux、Beszel、Simple Observability、Sifio),页面还留着社区的补录入口:「Feel free to create a pull request on GitHub to add your own project here.」

需要说清的边界是:官方没有公布任何渠道的流量、安装量或转化数据。所以本文只能说「官方把零注册免费服务、多端分发与集成清单作为持续渠道在经营」,不能说「免费用户里有 N% 转化为付费」。

付费边界:三档订阅买的是额度与保留话题名

定价区的标题句已经把三条路并排放好。三档的公开结构如下(页面默认选中 Annually,卡片显示的是年付折算价;月付价 $6/$12/$25 在 DOM 中为 aria-hidden="true" + opacity: 0,需点击 Monthly 才显示):

档位 年付价(页面原文) 月付价 关键额度
Supporter $5 / month $6 / month 2,500 daily messages、3 reserved topics、3 phone calls、50 daily emails、25 MB per attachment、Support open source
Pro $10 / month $12 / month 20k daily messages、10 reserved topics、20 phone calls、250 daily emails、250 MB per attachment、Email support
Business $20 / month $25 / month 50k daily messages、50 reserved topics、50 phone calls、500 daily emails、1 GB per attachment、Email & chat support

三张卡片都写明「Support open source」,三档都提供 Subscribe 自助入口。卡片下方还有两句:一句是「Need a bigger plan, or a dedicated server? Feel free to contact us.」,另一句是给不买付费额度的人的:「If you don’t need a paid plan, but would still like to support us, please donate via GitHub Sponsors or Liberapay ❤️.」

这套结构值得抄的地方不是价格,而是分界线画在哪:

  • 免费层不设账号门槛,因此「免费用户」不是一条需要维护的账号体系,而是匿名流量;
  • 付费层的第一项增量是保留话题名——它恰好补上免费路径唯一的痛点(话题名即密码),逻辑自洽,不需要硬造理由;
  • 其余增量都是可计量的资源(每日消息数、电话次数、邮件封数、附件大小),因此涨价方向与成本方向一致;
  • 三档全部保留「Support open source」这一条,把付费同时讲成对项目的支持——这与文档每页横幅的第一人称请求是同一套话术。

未公开的是这套分界线的效果:转化率、付费人数、每档的分布、退款率、流失率,一个数字都没有。

开源与自建:信任问题的可执行答案

隐私政策是本条案例里第二重要的证据来源。它 2026-06-15 更新,开篇第一段就是:

We love free software, and we’re doing this because it’s fun. We have no bad intentions, and we will never monetize or sell your information. The ntfy service and software will always stay free and open source. If you don’t trust us or your messages are sensitive, you can self-host your own ntfy server.

这句话的结构很值得注意:承诺(不卖数据)+ 兜底(可以自建)。承诺无法被验证,兜底可以——安装文档把兜底写成了完整路径:静态链接二进制、tarball、deb/rpm 包、Docker 镜像,支持 amd64/armv7/arm64,另有一节讲如何装成 systemd 或 OpenRC 服务。

隐私政策还把「哪些数据 unavoidable 要经过第三方」逐项交代清楚,并给出规避方法:

  • 移动推送:Android 与 iOS 的通知经 Google Firebase Cloud Messaging(FCM)投递;要完全绕开 FCM,官方给的方案是「Download the F-Droid version of the Android app and use a self-hosted server, or use the instant delivery feature with your own server.」
  • 电话通知:使用 Twilio,「Your phone number is shared with Twilio to deliver these services.」
  • 账单:付费订阅由 Stripe 处理,官方只保存 Stripe customer ID 与订阅状态,「We do not store your credit card numbers or payment details directly.」
  • 保留时长:消息默认缓存 12 小时后删除,附件默认 3 小时后自动删除。

这些细节合起来说明一件事:开源自建在这门生意里不是「顺便开源」,而是一条被写进隐私政策的产品路径。它同时降低两件成本——服务方对敏感内容的保管责任,以及「凭什么信任你」的解释成本。首页的社区段也把动机写成第一人称:「We love free software, and we’re doing this because it’s fun.」

需要标注的是:首页把「100% free software」与「不用付费也能用」并列,读者容易把两者混成一句。原文的含义是代码开源(dual-licensed under the Apache 2.0 and GPLv2),不是「服务无限免费」——免费托管服务有明确的额度与滥用限制,超额就需要付费档或自建。

可复制的部分

  1. 把试用做成不需要注册的默认状态。 免费不是「14 天试用」,而是「不注册就能用、并且官方支持匿名使用」。
  2. 把付费增量落在可计量的资源上。 每日消息数、保留话题数、电话次数、邮件封数、附件大小——每一条都能对应到真实成本,涨价方向不会与成本方向相反。
  3. 让升级钩子从免费路径的痛点里长出来。 因为无注册时「topic is essentially a password」,所以「reserved topics」是一条不需要额外解释的付费理由。
  4. 把三条路放在同一屏讲完。 免费无注册、三档付费、开源可自建——读者不必先注册再理解边界,这本身降低了异议。
  5. 把「不信任我们」写成一个可执行选项。 隐私政策给自建路径与免 FCM 的替代版本,把信任问题从「请相信我们」转成「你可以自己验证」。
  6. 把第三方集成当公开资产维护。 逐项点名 27 个官方集成,并留 pull request 入口——这既是分发清单,也是可核查的社会证明。
  7. 用第一人称写文档。 文档每页横幅的「sponsoring me」、安装文档里「I am not affiliated with Kris or Alex, I just liked their video/post.」都让「谁在做这件事」变得具体。

不可复制的部分

时间无法压缩。仓库 2021-10-23 创建、最近推送 2026-09-26,中间长出 iOS、Android、PWA 三端与 27 个官方集成;34,490 stars 与 1,621 forks 是四年多积累的结果,不是一次发布能换来的。

基础设施投入也无法用内容策略替代。这是一个要替用户向手机推送消息的服务:需要处理 FCM/APNs 投递、话题保留、消息缓存与附件存储、滥用与限流。官方没有公布任何成本数字,因此这套免费额度能不能长期成立,外部无法验证——读者不应把 $5/$10/$20 当作「照抄就能盈利」的定价。

产品克制同样不可照抄。消息默认 12 小时、附件 3 小时就删除,这是隐私与成本的取舍,代价是离线阅读与长期留存能力;要不要这样切,取决于你自己产品的场景,而不是取决于 ntfy 这么做。

最后,「一个人署名」不等于「一个人运营」。本文能证明的只是公开署名是单个自然人、法人主体是 ntfy LLC;是否有雇员、外包、赞助商分担了基础设施,都没有公开。

AOPC 适配判断

对一人公司经营者,这条案例可以直接拿走的是分界线的画法:免费层不设账号门槛,把「试用」做成默认状态;付费层只卖可计量的资源与一条从免费痛点里长出来的保留名;再用开源自建兜住「凭什么信任你」这个问题。这三件事不需要团队,只要求把「免费给什么、付费买什么」想清楚并写在同一个页面上。

需要同时说清不适配之处:这是一个需要长期运行实时基础设施的项目,它的门槛不在定价设计,而在推送通道、存储与滥用处置;而且它的经营数据(收入、付费人数、成本)全部未公开,本文无法据此判断这套免费/付费边界是否真的转化有效。它更适合当作「免费路径怎么设计」的参考样本,而不是「照这个价格做就能成」的证明。

还有一处必须提醒:ntfy 不是 AI 案例。 官方产品线(首页、定价区、隐私政策、发布文档、安装文档、博客)本轮扫描生成式 AI 相关词 0 命中;唯一相关线索是集成页里两个社区项目——一个第三方 MCP server(ntfy-me-mcp,把 ntfy 当作 AI agent 的通知出口)和一个用 LLM 生成每日事实的脚本。它们能说明「agent 也需要通知出口」这一生态趋势,但不能写成官方产品或官方 AI 路线。

来源

  • ntfy 官方首页核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对定位句与「100% free software」、零注册发布说明与 curl 示例、三档定价与全部额度行、双许可与社区段原文、页脚署名与「© 2026 ntfy LLC」,以及首页两个计数器为占位/写死值的核查记录。
  • ntfy 官方隐私政策核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对 2026-06-15 更新日期、「never monetize or sell your information」、「always stay free and open source」与自建兜底、匿名使用、消息 12 小时/附件 3 小时保留、Stripe 账单与 FCM/Twilio 的第三方说明及免 FCM 的 F-Droid 路径。
  • ntfy 官方发布文档核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对「Because there is no sign-up, the topic is essentially a password」、话题名规则([-_A-Za-z0-9]、最长 64 字符)与本地生成器说明,以及 curl/CLI/JS/Go/PowerShell/Python/PHP 的多语言示例。
  • ntfy 官方自建安装文档核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对「If you just want to send messages using ntfy.sh, you don’t need to install anything. You can just use curl.」、二进制与 deb/rpm/Docker/Kubernetes 路径、社区维护包,以及 apt 仓库迁移与「I am not affiliated with Kris or Alex」的本人说明。
  • ntfy 官方集成页核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于逐个点数 Official integrations 一节的 27 个项目、社区项目清单(含第三方 MCP server ntfy-me-mcp 与 LLM 生成事实脚本)以及 pull request 补录入口。
  • ntfy 官方博客核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对 2023-12-06 文章的第一人称回顾「I committed the first 138 lines of Go code to the ntfy repository」与 iOS/Android/PWA/社区教程的自述。
  • ntfy 源码仓库核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对 Apache-2.0 与双许可文件、34,490 stars、1,621 forks、408 open issues、2021-10-23 创建、2026-09-26 最近推送、homepage 指向 ntfy.sh,以及 owner 为 binwiederhier(User)。
  • ntfy 官方文档首页核查于 2026/9/28,访问于 2026 年 9 月 28 日;用于核对文档结构与每页赞助横幅的第一人称措辞、页脚署名。

截图仅用于呈现访问日无需登录的官方公开页面,不证明收入、用户结果、合作或背书。本文对定价结构与免费/付费分界线的分析属编辑判断,不构成经营、法律或合规建议。

从案例到行动

前 30 天怎么借鉴

不照搬结果,只把案例中可复制的方法拆成三个验证阶段。每一步都要结合自己的客户证据重新判断。

  1. 第 1–7 天

    收窄问题

    把「试用」做成不需要注册的免费服务:首页第一屏就是可复制的 curl 示例,安装文档再点明「you don't need to install anything」——下载、注册、预约演示这些摩擦被整体删掉

  2. 第 8–14 天

    验证流程

    让付费增量只动额度与保留名,不动基础功能:三档的差别是每日消息数、保留话题数、电话/邮件额度与附件上限,而不是把基础推送能力锁在付费墙后

  3. 第 15–30 天

    形成闭环

    把免费与付费在同一屏讲完:定价标题句同时给出「免费无注册」「三档付费」「开源可自建」三条路,读者不必先注册再理解边界

唯一主行动

把下一步变成可执行动作

下载项目筛选表