👷🏽♂️ Gato GraphQLをオープンに構築する #1(2021年3月)
「Building in the Open」ニュースレターの記念すべき第1号へようこそ!
これは、Gato GraphQLの開発に関するニュースをコミュニティと共有するチャンネルで、毎月第1週に配信されます。
このスペースを通じて、先月中に起きたすべてのことをお伝えします。内容は以下の通りです:
✅ 取り組んできたこと、リリースした新機能
✅ 来月取り組む予定のこと
✅ サイトへのトラフィック量
✅ プラグインの状況:ダウンロード数、ニュースレター購読者数、GitHubスター数
✅ 財政的持続可能性に向けた進捗
✅ 新たに公開されたガイド
✅ 最近公開したブログ記事のまとめ
✅ アウトリーチ/プラグインへの言及
✅ 一般的なニュース
このニュースレターを楽しんでいただけたら、ぜひお友達を購読に誘ってください。
始めましょう!
お知らせ: このニュースレターは双方向のコミュニケーションチャンネルです。ご意見があれば、ぜひコメントを追加してください(ブログ記事の最下部にあります)。

コーディングしてきたこと
ガイドを見てみると、「Extending Gato GraphQL」セクションはまだかなり空っぽです:

私の優先事項はこれらのガイドを完成させることです。しかしその前に、プラグインのコードをできる限りシンプルにしたいと考えています。シンプルであればあるほど、必要なドキュメントは少なくなり、より多くの人が理解できるようになります。
この考えのもと、コードをリファクタリングして、SymfonyのDependency Injectionコンポーネントに完全に基づいた実装にすることにしました。
アイデアは、プラグインへの拡張(カスタムTypeResolver、FieldResolver、DirectiveResolverなど)をコンテナ内のサービスとして定義するだけで、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 1位を獲得し、多くのトラフィックをもたらしました。残念ながら、それは一度きりの出来事でした:24時間後、突然来たように突然消えてしまいました。それ以外の通常の日は、Googleからの訪問者は3〜10人程度です。
TwitterとFacebookはかなりのトラフィックをもたらしますが、誰からなのかはわかりません(私からではありません。ソーシャルメディアが極端に苦手なので)。Twitterには記事を共有しますが、リツイートされることはほとんどありません。そして👎🏾 Facebookは使っていません。
(ちなみに、ソーシャルメディアで記事を共有してくださっている皆さん、ありがとうございます ❤️)
graphql.orgのPHPのGraphQLサーバー一覧や、dev.toで公開した記事(「graphql execute multiple queries」でGoogle検索すると1位に表示される)から、控えめながらも安定したトラフィックを得ています。
最後に、私の記事はWordPressの主要なニュースレター(WP Owls、wpMail.me、Post Status、WP Builds、The WP Weeklyなど)に継続的に掲載されています。各ニュースレターがどれだけのトラフィックをもたらしているかは正確にはわかりません。参照元がGmailなど他のサービスとして表示されるからです。しかし、合わせて考えると、これらのニュースレターはかなりの数の訪問者を生み出しています。
ブログ記事は圧倒的に最も人気のあるコンテンツで、直近の3本(この記事、この記事、この記事)はそれぞれ1,000人以上の訪問者をもたらしています。
これらの数字はかなり良好に見えます。ウェブサイトを立ち上げてまだ2ヶ月も経っていないことを考えると、なおさらです。しかし、すべてが良いわけではありません:直帰率が88%と非常に高いです。これは改善が必要です。
メトリクス
サイトへのトラフィックは、プラグインの認知度を推定するための装飾的な指標に過ぎません。しかしより重要な問いは、先月中に実際にプラグインを使い始めた人が何人いるか、ということです。

先月のプラグインの実績は以下の通りです:
🎯 プラグインのダウンロード数:170
⭐️ GitHubスター数:27
ダウンロード数はGitHub APIから取得できます。先月作成された3つのリリースのみを含めるために、パラメーターper_page=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日約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を持つべきか?では、WP REST APIがWordPress 5.6で新機能(バッチ操作)を得たことから、GraphQL APIがネイティブに提供できるため、WordPressがGraphQLから恩恵を受ける可能性があることを論じています。
🥊 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が新しいヘッドレスWordPressソリューションであるAtlasを発表したことも祝福します。
残念ながら、不正確な情報を述べています:
完全にヘッドレスなソリューションを使用する企業は、通常、フロントエンド用に独立したJavaScriptアプリケーションをホスティングし、API(WordPress REST APIまたはWPGraphQLプラグイン)を通じて特定のWordPressデータを取得します。
そうですね、Gato GraphQLは存在しないですよね?

私は通常これを気にしません。すべての人が私のプラグインを知っているとは期待していないからです。しかし、彼らは私のプロジェクトを知っていると思いますし、意図的に無視しているようです。
彼らがdevelopers.wpengine.com(「ヘッドレスWordPressのベストプラクティス、チュートリアル、ブログ、ドキュメントのワンストップハブ」)を立ち上げた後、私は彼らに連絡を取りました:
- WP EngineのHeadless WordPress担当のDeveloper Relations、Matt Landers、Twitterにて
- 開発チーム、彼らのヘッドレスフレームワークのGitHubリポジトリにて
- Torque(WP Engineが所有する雑誌)の誰か、@TheTorqueMagへのDMにて
おそらく、彼らは私のプロジェクトを真剣に受け止めていないのでしょう。あるいは、WPGraphQLに完全に投資しているので、単に気にしていないのかもしれません。
私のプラグインについて言及したくないなら、それはそれで構いません。しかし、WP REST APIとWPGraphQLが唯一の2つの選択肢であると述べることは非常に誤解を招きます。その結果、私のプラグインが害を受け、開発者コミュニティが混乱します。
だからそうです、正直に言えば、私は腹が立っています。これは全く良くありません。彼らが不正確な情報を修正してくれることを願っています(すでにメールを送りました)。
まとめ
これが初めての「Building Gato GraphQL in the Open」の終わりです。
いかがでしたか?コメントで感想を共有していただければ幸いです。
気に入っていただけたなら、友人とニュースレターを共有していただけると嬉しいです(あるいは、さらに良いことに、購読に招待してください)。
来月またお会いしましょう!