案例库
GoatCounter:没有付费档的托管分析服务,靠捐赠与资助维持
核对官方六页、NLnet 项目页与 GitHub 仓库:GoatCounter 把免费托管分析服务做到第七年,/pricing 实测 404——完全没有付费档;成本靠 GitHub Sponsors 捐助与 NGI0 PET 资助(2019-12 至 2022-10)承担。归属为间接证据,收入、成本与用户数全部未公开。
免费不是没有成本,而是把成本边界写成政策并公开募资。

产品实景
产品长什么样
以下截图来自产品官方公开页面,用来说明产品用途,不代表合作、背书或经营结果证明。

GoatCounter 官方首页首屏
官方首页首屏:可见「Easy web analytics. No tracking of personal data.」与「free donation-supported hosted service or self-hosted app」,及 Sign up/Live demo 入口;Pricing 段在视野外。
GoatCounter 官方首页 · 访问于 2026/9/29
查看官方产品
GoatCounter 官方 Contribute 页
官方 Contribute 页(整页即一个视口):可见「Servers aren't free, and running goatcounter.com isn't free either.」与通过 GitHub sponsor 按月或一次性捐助的原文,页脚含 Source code/NLnet NGI0。
GoatCounter 官方 Contribute 页 · 访问于 2026/9/29
查看官方产品60 秒结论
一分钟看懂这篇文章
免费不是没有成本,而是把成本边界写成政策并公开募资。
人负责
- 持续七年维护同一产品
- 公开 issue 里回答支持
- 维护隐私与合规文本
AI 负责
- 官方页面 AI 相关词 0 命中
- 内部 AI 用法未公开
- 核对归属推断链
- 确认无付费档
- 抄录捐助与资助原文
- 标注未公开项
直接结论
GoatCounter 的首页在自己的 Pricing 段里只写了一件事:
GoatCounter.com is currently offered for free for reasonable public usage. Running your personal website or small-to-medium business on it is fine, but sending millions of pageviews/day isn’t.
没有档位,没有「Pro」,没有试用转正价。本文本轮实测 https://www.goatcounter.com/pricing 返回 HTTP 404(官方错误页),站点上也不存在任何付费入口。这门托管服务到本文访问日(2026-09-29)已运行七年多(官方源码仓库创建于 2019-05-28,最近一次提交 2026-09-27),而它公开的成本覆盖方式只有两条:
- 首页 Pricing 段与 Contribute 页写明:Donations are accepted via Github Sponsors to cover server costs;
- NLnet 项目页写明:它曾获 NGI0 PET 资助,周期 2019-12 至 2022-10。
这三点合起来,就是这条案例的价值:一份把「免费」写成有边界政策、并公开说明钱从哪来的托管服务。边界写在页面上——免费额度不是「以后再说」,而是「reasonable public usage」,且明确点出「一天几百万次浏览不行」,同时给出自建这条路。
同时先把证据边界划清楚:归属是间接一手证据(下面单独一节写推断链),捐助金额、资助金额、收入、成本、利润率、用户数、页面浏览量全部未公开,站点也没有公布团队信息。
证据状态
- 当前公开事实(本轮逐字核对,10 个来源全部 HTTP 200;
/pricing为 404):首页定位句与 Features 六项、Pricing 段的免费政策与捐助说明、页脚五个外链;/why 的第一人称动机与「Why is it free?」;/contribute 的捐助说明;/design 的「按路径」设计来源;/privacy 的聚合表说明(2025-06-08);/contact 的支持入口;NLnet 项目页的资助周期;GitHub 仓库的描述、homepage、星标/分叉/开放 issue 数与时间戳。 - 公司/项目自述(未经独立审计、也非第三方核验):「free donation-supported hosted service」「Donations are accepted via Github Sponsors to cover server costs」「100% committed to open source」。
- 编辑判断(本文分析,非官方结论):「免费政策有边界」「公开 issue 降低了支持重复劳动」「无 cookie 设计降低了合规负担」都是本文的解读;官方没有给出任何效果或数字。
- 间接推断(已在正文写明步骤):站点不署名,维护者身份由三跳公开链推出。
- 未公开:捐助金额、NLnet 资助金额、收入、MRR、服务器成本、利润率、用户数、页面浏览量、团队人数与雇佣形态、许可证具体名称(GitHub API 对 LICENSE 的标注是
Other)。
归属怎么证:三跳公开链
GoatCounter 的页面通篇用第一人称单数——/why 的标题就是「Why I made GoatCounter」,正文写「I ended up putting my original idea in the freezer and writing GoatCounter」;/contact 写「There are a few ways to contact me」,并且只留一个邮箱 support@goatcounter.com。但页面本身没有署名。
所以本文的归属不是一句断言,而是三条各自可核查的公开信息拼起来的链:
- 官方页面链出源码仓库。 首页 Features 段写「you can see exactly what the code does and make improvements, or self-host it for any purpose. See the GitHub page.」,页脚另列「Source code」;两处都指向
github.com/arp242/goatcounter(NLnet 项目页写的github.com/zgoat/goatcounter本轮实测 302/重定向到同一仓库arp242/goatcounter)。 - 该账号的公开资料指向个人站点。 GitHub API 对用户
arp242的返回是"name":"Martin Tournoij"、"blog":"https://www.arp242.net"。 - 该个人站点自述正在做 GoatCounter。 arp242.net 首页写「Personal website of Martin Tournoij(“arp242”)」,并写「Working on GoatCounter and more – GitHub Sponsors」。
三跳都成立,因此本文把维护者写作 Martin Tournoij(GitHub 账号 arp242)。但要如实标注:这是间接一手证据——官方站点没有在任何地方写出这个名字,本文的写法是「由官方页面链出的仓库与其作者站点互证」,不是「官方署名」。也正因为没有官方署名,本文不写一人公司:官方没有公布团队规模与雇佣形态。
「没有付费档」是什么样子
一个没有付费档的产品,页面结构会很不一样,值得逐条看清楚。
第一,免费不是营销话术,而是写在 Pricing 标题下的政策。 首页的 Pricing 段(不是单独定价页)只有三句:免费给「reasonable public usage」;「sending millions of pageviews/day isn’t」;想要更严肃的用途就「self-host GoatCounter easily」。也就是说,上限不是用价格表达的,而是用使用范围表达的。
第二,转化路径不存在。 没有 free-to-paid 可写:既没有付费档,也没有升级按钮。首页唯一的行动入口是 Sign up(注册即得 yourcode.goatcounter.com 子域)与一个 Live demo(指向真实运行的实例 stats.arp242.net,本轮 curl 200,页面标题即 GoatCounter)。因此本文的商业标签只写 donation-sponsorship 与 open-source-free,不贴 free-to-paid。
第三,愿不愿意付钱由用户决定,而不是由功能锁决定。 /contribute 整页只有一段话:「Servers aren’t free, and running goatcounter.com isn’t free either. Please consider contributing on GitHub sponsor. You can do a one-time contribution or set up a recurring monthly contribution.」——一次性或按月,都是自愿;页面里没有任何「付费解锁」的对应关系。
靠什么维持:捐助 + 一次已结束的资助
公开可见的资金线索就两条。
其一,GitHub Sponsors 捐助。 官方把它的用途写得很具体——首页 Pricing 段说捐助是「to cover server costs」;页脚也把「GitHub sponsors」和「Source code」「NLnet NGI0」并列。但没有公布任何金额:收到多少、够不够、服务器每月花多少,全部未公开。
其二,NGI0 PET 资助(已结束)。 NLnet 的 GoatCounter 项目页写:「Grant Fund: NGI0 PET」「Period: 2019-12 — 2022-10」,并在正文说明「This project was funded through the NGI0 PET Fund, a fund established by NLnet with financial support from the European Commission’s Next Generation Internet program」。项目定位是「Privacy-friendly web analytics for small websites」。
这里要特别小心两点,本文都不越界:这笔资助的周期是 2019-12 到 2022-10,不是一个持续到今天的收入来源;而资助金额未公开,NLnet 页面本轮没有给出数字。
把两条合起来看,这门生意公开的经营结构是:产品免费、成本靠自愿捐助与一次项目资助。收入、成本、利润率一概不知道,所以本文不做「这样也能活」的结论——只能说这是它 2019 年以来选择并公开说明的路线。
窄范围与低维护:边界被写进产品设计
GoatCounter 的「少做」不是事后解释,而是有书面自述与设计后果的。
范围自述。 /why 的目标清单里写:「GoatCounter isn’t intended to solve every possible analytics use case, and by limiting the scope it should be better for the use cases it is designed for.」同一页也给出取舍理由——现有方案「either very complex and designed for advanced users, or far too simplistic」,而托管方案「priced for business users(≥$10/month)」,个人站长因此没有中间档。
设计后果。 /design 说明默认视图是按路径而不是站点总量:「I originally developed GoatCounter specifically for my own website/blog, where ‘site totals’ are fairly useless, and ‘path totals’ are much more useful.」——这条案例的产品形状,最早是为一己之用定的。同一页也承认代价:仪表盘可能显得「busy」「intimidating」。
降低维护与合规负担的具体做法(官方原文):
- 「doesn’t need a GDPR notice」与「There should always be an option to add GoatCounter to your site without requiring a GDPR consent notice.」——把合规模块做成产品可选性,而不是逐客户答疑;
- 「Identify unique visits without cookies or persistently storing any personal data」,隐私政策(2025-06-08)进一步说明数据按日或小时聚合成表保存,且「no way to link data between them」;
- 「adds just ~3.5KB」与「JavaScript-free “tracking pixel” option」、后端中间件或日志导入等多条接入方式——降低站点侧负担,也减少「装了会不会拖慢」的支持问题;
- 「Own your data; you can always export all data and cancel at any time」——出口写在明面上。
支持被引导到公开渠道。 /contact 的第一条是「Open a GitHub issue」,并写明理由:「It’s fine to use this for support requests or general questions, as GitHub issues are public and the answers may be useful for others in the future.」对一个没有付费档、没有支持团队的产品来说,这是把支持成本转成公共知识的具体做法(本文的解读)。
以上这些,是本文给这条案例贴 narrow-scope 与 low-maintenance-operations 的依据。为什么没贴 open-source-acquisition:该标签要求源码、发布记录或社区协作承担发现、信任、试用或付费升级作用;GoatCounter 确实写明「100% committed to open source」并提供了自建路径,但官方没有公开任何说明开源带来了多少发现或转化(用户数、页面浏览量都未公开),本文不把「源码公开」直接写成获客证据,因此不贴该标签。
AI 出现的位置:0 命中
本文核对的官方页面(首页、why、contribute、design、privacy、contact)与 NLnet 项目页中,生成式 AI、LLM、ChatGPT、machine learning 相关词一次都没有出现。GoatCounter 的功能叙事全部围绕「少收集数据」——隐私、体积、无 cookie、无同意提示、可导出、可自建。
因此这条案例不构成 AI 案例:本文不会把「自动化计数」写成 AI,也不会推测其内部开发是否用了 AI 工具——那部分官方未公开,无法独立核实。它与 AOPC 读者的关联点在别处:一个人(或极小团队)如何在没有任何付费档的情况下,用产品边界与公开支持渠道把长期维护成本压下来。
可复制的部分
- 把「免费」写成有边界的政策。 「reasonable public usage」+「百万级日浏览量不行」+「自建这条路」,三句就把免费的范围、上限与出口说完了。
- 用产品设计降低合规成本。 「不需要 GDPR 同意提示」是特性而不是承诺书;数据聚合存储、表间不可关联,也让隐私文本更容易保持真实。
- 把支持搬到公开 issue。 官方把「后来者也能看到答案」写成理由——一次回答覆盖多次提问。
- 给用户随时可走的出口。 全部数据可导出、随时可取消;长期服务里最贵的纠纷往往来自「走不了」。
- 范围先为自己定,再对外解释。 按路径统计是作者为自己站点选的默认视图,范围自述则是后来把这条选择写成公开理由。
不可复制的部分
起步窗口。 /why 里的动机——「middle ground」缺失、托管方案普遍 ≥$10/月——是 2019 年前后的观察,今天不一定还成立。
项目资助。 NGI0 PET 资助周期是 2019-12 至 2022-10,且属欧盟 Next Generation Internet 计划下的项目资助;它不是稳定收入,也不可随时申请。
时间。 仓库自 2019-05-28 起持续提交到 2026-09-27,七年多的连续维护与随之积累的信任,无法压缩复制。
最关键的一点:这套结构的可行性没有被证明。 捐助与资助金额、服务器成本、利润率、用户数全部未公开。本文能证明的是「它选择了免费 + 捐助 + 资助这条路并公开说明」,不能证明这条路一定够用。
AOPC 适配判断
对一人公司/极小团队,GoatCounter 提供了一个少见的对照样本:当收入不来自客户付费时,产品边界本身就是成本控制手段。免费范围写死、合规负担内建、支持走公开渠道、数据可随时带走——这几项组合起来,把「免费用户多起来会变成运维负债」这个常见风险,转成了可以公开解释的政策。
但它不适合被当作「免费也能做七年」的证明。免费托管意味着没有可预测的现金流,而这条案例的资助与捐赠数字全部未公开;本文的定位是结构参考(边界怎么写、出口怎么留、支持放哪里),不是可行性背书。同样,本文不写一人公司:官方没有署名,也没有公布团队与雇佣信息。
来源
- GoatCounter 官方首页核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查定位句、Features 六项(隐私、~3.5KB、无 cookie、可导出、开源、单脚本接入)、Pricing 段的免费政策与捐助说明,以及页脚五个外链。
- GoatCounter:Why I made GoatCounter核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查第一人称动机、「Why is it free?」段落,与「by limiting the scope」的范围自述。
- GoatCounter:Contribute financially核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查服务器成本与 GitHub sponsor 捐助原文(含一次性/按月两种方式)。
- GoatCounter:Notes about GoatCounter’s design核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查「按路径而非总量」的默认视图及其为一己之用而做的来源。
- GoatCounter:Privacy policy核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查 2025-06-08 更新日期与「按日/小时聚合、表间无法关联」的存储说明。
- GoatCounter:Contact核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查公开 issue 作为支持入口的理由原文与 support 邮箱。
- NLnet 项目页:GoatCounter核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查 NGI0 PET 资助周期 2019-12 至 2022-10、项目定位与来源链接。
- GitHub:arp242/goatcounter核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查仓库描述、homepage、星标/分叉/开放 issue 与时间戳(
zgoat/goatcounter重定向至此)。 - GitHub API:用户 arp242核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查账号显示名与个人站点地址。
- arp242.net核查于 2026/9/29,访问于 2026 年 9 月 29 日;用于核查「Personal website of Martin Tournoij(“arp242”)」与「Working on GoatCounter and more」两处自述。
另:https://www.goatcounter.com/pricing 本轮实测 HTTP 404(官方错误页),故本文不引用该地址作为来源;https://goatcounter.com/help 本轮 curl 超时未取到,本文不据其断言。截图仅用于呈现访问日无需登录的官方公开页面,不证明收入、用户结果、合作或背书。本文对「免费政策有边界」「公开 issue 降低支持重复劳动」的分析属编辑判断,不构成经营、法律或合规建议。
从案例到行动
前 30 天怎么借鉴
不照搬结果,只把案例中可复制的方法拆成三个验证阶段。每一步都要结合自己的客户证据重新判断。
第 1–7 天
收窄问题
把「免费」写成有边界的公开政策,而不是无限承诺:Pricing 段写「currently offered for free for reasonable public usage」,并点明「sending millions of pageviews/day isn't」,随后给出自建这条出口
第 8–14 天
验证流程
用产品设计降低合规成本:官方把「不需要 GDPR 同意提示」写成可选特性,隐私政策另说明数据按日/小时聚合成表、表间无法关联
第 15–30 天
形成闭环
把支持搬到公开 issue:官方明说公开问答对后来者有用,等于让一次回答覆盖多次提问