博客

👷🏽‍♂️ 公开构建 Gato GraphQL #1(2021年3月)

Leonardo Losoviz
作者:Leonardo Losoviz ·

欢迎来到「Building in the Open」新闻通讯的第一期!

这是一个与社区分享 Gato GraphQL 开发相关资讯的频道,每月第一周发送。

通过这个空间,我们将了解上个月发生的所有事情,内容包括:

✅ 我们一直在做什么、发布了哪些新功能
✅ 下个月我们将要做什么
✅ 网站的流量情况
✅ 插件的表现:下载量、新闻通讯订阅数、GitHub 星标数
✅ 实现财务可持续性的进展
✅ 新发布的指南
✅ 最近发布的博客文章摘要
✅ 外展活动/插件提及
✅ 一般新闻

如果您喜欢这份新闻通讯,请邀请您的朋友订阅

让我们开始吧!

注意: 这份新闻通讯是一个双向沟通渠道。如果您有任何想说的,欢迎添加评论(在博客文章底部)。

新闻通讯欢迎语,来自您的主持人

我们一直在编写的内容

如果您查看指南,"Extending Gato GraphQL"部分仍然相当空白:

「Extending the plugin」的指南尚未完成

我的首要任务是完成这些指南。但在此之前,我希望插件的代码尽可能简单。越简单,所需的文档就越少,也就越多人能够理解它。

基于这一想法,我决定重构代码,使其完全基于 Symfony 的 DependencyInjection 组件

其理念是,对插件的任何扩展(例如自定义的 TypeResolverFieldResolverDirectiveResolver)只需在容器中定义为一个服务,该服务将通过 Compiler passes 自动配置。

完全依赖 Symfony 的依赖注入有几个优势:

✅ 创建扩展的方式统一一致
✅ 只需创建一个实现某个接口的 PHP 类即可完成全部工作,开发者无需了解繁琐的细节
✅ Symfony 的文档非常详尽。通过将开发者引导至那里,那些文档就是我不需要编写的文档

对代码感兴趣吗?请查看我最近合并的 PR(#453#452#449 以及其他几个)。

我将在未来几周内继续推进这项工作,直到迁移 100% 完成,并补写缺失的指南。

gatographql.com 的流量

让我说清楚一件事:我很在意有多少人访问插件的网站,这是衡量有多少人了解该插件的代理指标。

我没有充裕的资金来宣传我的插件。即使有,我也不会把钱花在推广上,因为那与开源的精神相悖。(如果开源只是销售某种产品或服务的渠道,那又另当别论,但我的情况并非如此。)

这意味着我完全依靠口碑来推广它。为此,我在插件博客上花费了大量精力撰写高质量的内容,希望这些内容能够广泛传播,触达那些原本不知道这个插件的人。

到目前为止,我对结果相当满意。

过去一个月,我有 4,500 名访客,6,000 次页面浏览:

让钱说话!

让我们来分析一下这些数据。

我的大多数访客来自 Hacker News,我设法登上了几次「Show HN」首页,以及 Reddit,主要来自 /r/PHP/r/graphql(我总是在那里分享文章)。

我设法在搜索「wordpress core graphql」时排名 Google 第一,这带来了大量流量。不幸的是,那只是一次性的:24 小时后,它就像突然出现一样突然消失了。否则,在普通的一天里,我从 Google 获得 3 到 10 名访客。

Twitter 和 Facebook 带来了相当数量的流量,但我不知道来自谁(不是来自我,因为我在社交媒体上极其糟糕)。我确实在 Twitter 上分享我的文章,但很少被转发。而且我不使用 👎🏾 Facebook。

(顺便说一句,感谢那些在社交媒体上分享我文章的人 ❤️)

我从 graphql.org 上 PHP 的 GraphQL 服务器列表以及我在 dev.to 上发表的一篇文章(在搜索「graphql execute multiple queries」时排名第一)获得了一些适度但稳定的流量。

最后,我的文章持续出现在 WordPress 的主要新闻通讯中(包括 WP OwlswpMail.mePost StatusWP BuildsThe WP Weekly)。我无法确切知道每个通讯带来多少流量,因为引用来源会显示为 Gmail 等。但综合来看,这些新闻通讯产生了相当数量的访客。

我的博客文章是迄今为止最受欢迎的内容,最近三篇(这篇这篇这篇)各自带来了超过 1,000 名访客。

这些数字看起来相当不错,更何况网站上线还不到 2 个月。不过,并非所有情况都好:88% 的跳出率相当高。我需要改进这一点。

指标

网站流量只是一个装饰性指标,用于估计插件的知名度。但更重要的问题是:上个月有多少人开始使用这个插件?

我的名声先我而至

上个月插件的表现如下:

🎯 插件下载量:170
⭐️ GitHub 星标数:27

下载量可以通过 GitHub API 获取,传入参数 per_page=3 以仅包含上个月创建的 3 个版本:

curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/GatoGraphQL/GatoGraphQL/releases?per_page=3 | grep "download_count"

对于这些数字,我既不高兴也不失望。它们并不出色(我希望能更好),但这是一个好的开始。

关于下载量,据说获得第一个用户是最困难的任务。只有当几个人开始使用插件并开始谈论它之后,其使用才会变得更广泛。我仍处于寻找第一批忠实用户的初始阶段。

关于 GitHub 星标数,我必须说它看起来相当平稳:平均每天约 1 个星标。这绝对算不上什么好成绩。如果您喜欢我用 Gato GraphQL 构建的内容,并且不介意表达一些 ❤️ 爱,那么请考虑在 GitHub 上给它点一个 ⭐️ 星标

财务可持续性

这是个棘手的问题:项目必须在财务上可持续。它要么能产生一些收入,要么就不会长久。

这关系到我的生计

如果我能为自己创造收入,那么我就可以根据需要持续投入。这就是我所需要的一切:收入。不是投资者敲门寻求数百万。只是每月几千美元,够我支付房租。

我的目标是让插件完全保持开源。为此,我目前正在联系几家潜在赞助商,询问他们是否愿意资助插件的开发。这将是一个双赢的局面。

为什么我要依赖一些「大牌」赞助商,而不是依靠社区中任何人的普通赞助?

是的,我也在尝试这种方式:我在 GitHub Sponsors 上注册了。然而,除非您已经拥有数千名用户、关注者或邮件列表订阅者可以联系,并期望其中许多人资助您,否则这实际上行不通。

例如,要求每月标准的 5 或 10 美元,我需要数百名资助者才能通过这种方式为我的工作提供资金。而我距那个阶段还差得远。

但更重要的是,谁真的能通过这种方式成功?我知道 Caleb Porzio(Livewire 的创建者)做到了,现在已有超过 1,350 名赞助商!但那更多是例外而非常态。

以 Composer 为例。Composer 从根本上改变了我们开发 PHP 应用程序的方式,但他们的赞助商勉强才有 90 个。我怎么能期望获得比 Composer 更多的赞助商呢?

这就是为什么我目前的方法是为我的项目和少数愿意赞助它的公司创造双赢局面。希望这能奏效,Gato GraphQL 对所有人免费,所有功能都可用,我不需要将好东西锁在付费墙后面。

(如果您想了解这为何是双赢,请给我发送电子邮件DM。也许您的公司也有兴趣?)

我会给这种方法几个月的时间,希望能实现。如果失败了,那时我才需要考虑构建插件的 PRO 版本,并将某些功能限制为付费版本。(是的,那会很糟糕,所以我希望能避免那个阶段。)

在接下来的新闻通讯中,我会持续更新是否成功获得赞助商。

博客文章

博客文章是我绝对的骄傲和快乐。

注意: 您知道网站上有 RSS 订阅源 吗?您可以订阅接收我所有的博客文章,在您最喜欢的阅读器上阅读。

上个月,我设法每周发布一篇高质量的博客文章:

🛠 WordPress 应该在核心中拥有 GraphQL API 吗? 论证了 WordPress 可以从 GraphQL 中受益,因为 WP REST API 在 WordPress 5.6 中获得了一项新功能(批处理操作),而 GraphQL API 可以原生提供这一功能。

🥊 Gato GraphQL vs WPGraphQL:一战! 将我的插件与 WPGraphQL 进行比较,这是一场将被铭记多年、让拳击迷意犹未尽的对决。

👶🏻 通过 GraphQL 让 WordPress 焕发新生 演示了无头 WordPress 如何从 WordPress 代码库中解耦,提供修复(或至少绕过)积累的技术债务的机会。

🍾 Gato GraphQL 现已通过 PHP-Scoper 实现了作用域隔离! 描述了一种使用 PHP-Scoper 对 WordPress 插件进行作用域隔离的策略,以避免与其他插件产生冲突。

外展活动/插件提及

我很高兴插件在几个地方得到了介绍。

✅ 我在 WordCamp India 2021 上发表了题为「Intro to Gato GraphQL」的演讲,进行了插件演示,(令人惊讶的是做了一个演示)一切都进行得非常完美!请查看 YouTube 视频

✅ Joe Howard 为 WPMRR 播客采访了我。录音即将发布。

✅ Chris Coyier 在 CSS-Tricks 新闻通讯 #239 中介绍了我的插件!

这让我的一天变得美好

各种杂项

关于上个月发生的各种事情的一般新闻。

Jason Bahl 加入 WP Engine

恭喜 Jason 加入 WP Engine!我希望他能继续大展身手,就像他为 WPGraphQL 所做的那样。

顺便说一句,我们是竞争对手的事实(好吧,是我在与他竞争,他遥遥领先)并不意味着我们不能成为朋友,或者不能合作改进彼此的项目。事实上,我们都有同一个目标:将 GraphQL 带入 WordPress(尽管我们对这应该如何实现有不同的想法)。

但我相信竞争是好事,它将对每个人都有利。

是的,竞争是好事,只要你处于领先位置

WP Engine 推出 Atlas,并声称对无头架构了如指掌(真的吗?)

我也要祝贺 WP Engine 推出 Atlas,这是他们新的无头 WordPress 解决方案。

遗憾的是,他们陈述了一些不准确的信息:

使用完全无头解决方案的公司通常会为前端托管一个独立的 JavaScript 应用程序,该应用程序通过 API——WordPress REST APIWPGraphQL 插件——拉取特定的 WordPress 数据。

是的,Gato GraphQL 不存在,对吧?

嘿,我在这里,还是我不在?

通常我不会为此烦恼,因为我不期望每个人都了解我的插件。但我确实认为他们知道我的项目,而且他们似乎是故意忽视它。

在他们推出 developers.wpengine.com(「无头 WordPress 最佳实践、教程、博客和文档的一站式中心」)之后,我确实联系了他们:

我猜他们没有认真对待我的项目。或者,也许他们只是不在乎,因为他们完全押注于 WPGraphQL。

如果他们不想提及我的插件,那也没关系。然而,声称 WP REST API 和 WPGraphQL 是仅有的两个选项是非常具有误导性的。结果,我的插件受到了伤害,开发者社区也感到困惑。

所以是的,我必须承认我很恼火。这完全不对。我希望他们能纠正这些不准确的信息(我已经给他们发了邮件)。

总结

这就是第一期「Building Gato GraphQL in the Open」的结尾了。

您觉得怎么样?欢迎在评论中分享您的想法。

如果您喜欢,我希望您能与朋友分享这份新闻通讯(或者更好的是,邀请他们订阅)。

下个月见!


订阅我们的新闻通讯

及时了解 Gato GraphQL 的所有更新。