Blog

👷🏽‍♂️ Gato GraphQL'i Açık Geliştirme #1 (Mart 2021)

Leonardo Losoviz
Yazan: Leonardo Losoviz ·

"Building in the Open" bülteninin ilk sayısına hoş geldiniz!

Bu, Gato GraphQL'in gelişimine ilişkin haberleri toplulukla paylaşmak için oluşturulmuş bir kanal olup her ayın ilk haftasında gönderilmektedir.

Bu alan aracılığıyla geçen ay yaşanan her şeyi öğreneceğiz:

✅ Neler üzerinde çalıştık, hangi yeni özellikleri yayımladık
✅ Önümüzdeki ay neler üzerinde çalışacağız
✅ Siteye ne kadar trafik geldi
✅ Eklenti nasıl gitti: İndirme sayısı, bülten abonelikleri, GitHub yıldızları
✅ Finansal sürdürülebilirlik yolundaki ilerleme
✅ Yeni yayımlanan kılavuzlar
✅ Son yayımlanan blog yazılarımızın özeti
✅ İletişim / Eklenti bahisleri
✅ Genel haberler

Bu bültenden keyif alıyorsanız lütfen arkadaşlarınızı abone olmaya davet edin.

Başlayalım!

Dikkat: Bu bülten iki yönlü bir iletişim kanalıdır. Söylemek istediğiniz bir şey varsa yorum eklemeye (blog yazısının altında) davetlisiniz.

Ev sahibinizden bültene hoş geldiniz

Neler üzerinde kod yazdık

Kılavuzlar bölümüne bakarsanız, "Extending Gato GraphQL" kısmının hâlâ oldukça boş olduğunu görürsünüz:

Eklentiyi genişletmeye yönelik kılavuzlar henüz tamamlanmadı

Önceliğim bu kılavuzları tamamlamak. Ama bunu yapmadan önce, eklentinin kodunun mümkün olduğunca basit olmasını istiyorum. Ne kadar basit olursa, o kadar az belgeleme gerekir ve herkes onu o kadar kolay anlayabilir.

Bunu aklımda tutarak kodu yeniden düzenlemeye karar verdim; kodun tamamen Symfony'nin DependencyInjection Bileşeni üzerine kurulu olmasını sağlamak için.

Fikir şu: eklentiye yapılan herhangi bir uzantı (örneğin özel bir TypeResolver, FieldResolver veya DirectiveResolver) yalnızca container içinde bir servis olarak tanımlanır ve servis Compiler pass'ler aracılığıyla otomatik olarak yapılandırılır.

Symfony'nin dependency injection'ına tamamen güvenmek birçok avantaj sağlar:

✅ Uzantı oluşturmanın tek ve tutarlı bir yolu vardır
✅ Bir arayüz uygulayan PHP sınıfı oluşturmak işin tamamını yapar; geliştirici ince ayrıntıları bilmek zorunda değildir
✅ Symfony'nin belgeleri çok kapsamlıdır. Geliştiricileri oraya yönlendirerek, yazmam gerekmeyen bir belgeleme elde edilmiş olur

Koda merak ettiniz mi? Son birleştirilen PR'larıma göz atın (#453, #452, #449 ve diğerleri).

Geçiş %100 tamamlanana ve eksik kılavuzları yazana kadar bu kod üzerinde çalışmaya devam edeceğim.

gatographql.com'a trafik

Bir şeyi açıkça belirteyim: eklentinin web sitesini kaç kişinin ziyaret ettiğiyle ilgileniyorum çünkü bu, eklentiden kaç kişinin haberdar olduğunu anlamak için dolaylı bir göstergedir.

Eklentimi tanıtmak için derin ceplerlerim yok. Olsaydı bile, onu tanıtmak için para harcamazdım çünkü bu açık kaynak ruhuna aykırı. (Açık kaynak yalnızca bir ürün ya da hizmet satmak için bir kanal olsaydı bu farklı olurdu, ama benim durumum bu değil.)

Bu, onu tanıtmak için tamamen ağızdan ağza iletişime güvendiğim anlamına gelir. Bu amaçla, eklentinin blogu için yüksek kaliteli içerik yazmaya çok çaba harcadım; bu içeriklerin paylaşılacağını ve eklentiyi başka türlü bilmeyecek kişilere ulaşacağını umarak.

Şimdiye kadar sonuçlardan oldukça memnunum.

Geçen ay 4,5 bin ziyaretçi, 6 bin sayfa görüntülenmesi elde ettim:

Bana parayı göster!

Bu istatistikleri inceleyelim.

Ziyaretçilerimin büyük çoğunluğu, birkaç "Show HN" ön sayfasına çıkmayı başardığım Hacker News'tan ve makalelerimi her zaman paylaştığım /r/PHP ile /r/graphql gibi subreddit'lerden oluşan Reddit'ten geliyor.

"wordpress core graphql" aramasında Google'da #1 olmayı başardım ve bu çok fazla trafik getirdi. Ne yazık ki bu tek seferlik bir şeydi: 24 saat sonra geldiği kadar aniden ortadan kayboldu. Bunun dışında tipik bir günde Google'dan 3 ile 10 arasında ziyaretçi alıyorum.

Twitter ve Facebook önemli miktarda trafik getiriyor ancak kimden geldiğini bilmiyorum (benden değil, çünkü sosyal medyada son derece yetersizim). Makalelerimi Twitter'da paylaşıyorum ama nadiren retweet ediliyorlar. Ve 👎🏾 Facebook kullanmıyorum.

(Bu arada, makalelerimi sosyal medyada paylaşanlar için teşekkürler ❤️)

graphql.org'daki PHP'de GraphQL sunucuları listesinden ve "graphql execute multiple queries" aramasında Google'da #1 sırada çıkan dev.to'da yayımladığım bir makaleden mütevazı ama tutarlı bir trafik alıyorum.

Son olarak, makalelerim WordPress'in ana bültenlerinde düzenli olarak yer alıyor (WP Owls, wpMail.me, Post Status, WP Builds ve The WP Weekly dahil). Her birinin ne kadar trafik getirdiğini tam olarak bilmiyorum çünkü referrer, Gmail ve benzerleri olarak görünüyor. Ancak birlikte ele alındığında bu bültenler önemli sayıda ziyaretçi üretiyor.

Blog yazılarım açık ara en popüler içeriklerim; son üçü (bu, bu ve bu) her biri 1 binin üzerinde ziyaretçi getirdi.

Bu rakamlar oldukça iyi görünüyor, özellikle web sitesini henüz 2 aydan az önce kurduğum düşünüldüğünde. Ancak her şey iyi değil: %88 ile hemen çıkma oranı oldukça yüksek. Bunu iyileştirmem gerekiyor.

Metrikler

Siteye gelen trafik, eklentinin bilinirliğini tahmin etmek için yalnızca dekoratif bir metriktir. Ama çok daha önemli soru şudur: Geçen ay kaç kişi eklentiyi kullanmaya başladı?

İtibarım benden önce geliyor

Geçen ay eklenti şöyle gitti:

🎯 Eklenti indirme sayısı: 170
⭐️ GitHub yıldızları: 27

İndirme sayısı GitHub API'sinden alınabilir; yalnızca geçen ay oluşturulan 3 sürümü dahil etmek için per_page=3 parametresi geçilerek:

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

Bu rakamlardan ne mutlu ne de mutsuzum. Harika değiller (daha iyi olmasını dilerdim) ama iyi bir başlangıç.

İndirmeler konusunda, ilk kullanıcıyı edinmenin en zor görev olduğu söylenir. Yalnızca birkaç kişi eklentiyi kullanmaya başlayıp bundan bahsetmeye başladıktan sonra kullanımı daha yaygın hale gelecektir. Hâlâ bağlı kullanıcıların ilk grubunu bulma aşamasındayım.

GitHub yıldızları konusunda ise oldukça düz bir seyir izlediğini söylemeliyim: ortalama günde yaklaşık 1 yıldız. Bu kesinlikle harika bir şey değil. Gato GraphQL ile inşa ettiğim şeyi beğeniyorsanız ve biraz ❤️ göstermekten çekinmiyorsanız, lütfen GitHub'da ⭐️ yıldız vermeyi düşünün.

Finansal Sürdürülebilirlik

İşte bu zor mesele: projenin finansal olarak sürdürülebilir olması gerekiyor. Ya biraz para kazanır ya da uzun süre ayakta duramaz.

Hayatım buna giriyor

Kendim için bir gelir elde edebilirsem, gerektiği kadar uzun süre üzerinde çalışmaya devam edebilirim. İhtiyacım olan tek şey bu: bir gelir. Milyonlar arayan yatırımcılar kapıma gelmesin. Sadece başımı sokabileceğim bir çatı için ayda birkaç bin dolar yeterli.

Hedefim eklentiyi tamamen açık kaynak tutmak. Bu amaçla, şu anda birkaç potansiyel sponsorla iletişime geçiyorum ve eklentinin gelişimini finanse etmek isteyip istemediklerini soruyorum. Karşılıklı kazanç sağlayan bir durum olacak.

Neden topluluktaki herkesin sponsorluğuna güvenmek yerine birkaç "büyük isim" sponsora başvuruyorum?

Evet, onu da denedim: GitHub Sponsors'tayım. Ancak gerçekten işe yaramıyor; zaten binlerce kullanıcınız, takipçiniz veya posta listenize abone olmuş kişileriniz olmadıkça, onlara ulaşıp pek çoğunun sizi finanse etmesini beklemek mümkün değil.

Örneğin, standart olarak aylık 5 ya da 10 dolar istediğimde, bu yaklaşımın işimi finanse edebilmesi için birkaç yüz fona ihtiyacım olurdu. Ve o aşamadan çok uzaktayım.

Ama daha da önemlisi, bu yaklaşımla gerçekten kim başarılı olabilir? Caleb Porzio'nun (Livewire'ın yaratıcısı) başardığını ve şu anda 1350'den fazla sponsora ulaştığını biliyorum! Ama bu, istisnadan çok kuralın dışında.

Composer'ı ele alalım. Composer, PHP uygulamalarını nasıl geliştirdiğimizi temelden değiştirdi, yine de zor bela 90 sponsoru var. Composer'dan daha fazla sponsor almayı nasıl bekleyebilirim?

İşte bu yüzden mevcut yaklaşımım, projem ve onu sponsorlamak isteyen birkaç şirket için kazanan-kazanan bir durum yaratmak. Umarım işe yarar ve Gato GraphQL herkes için ücretsiz kalır, tüm özelliklerle birlikte, iyi şeyleri ücretli duvar arkasına kilitlemek zorunda kalmam.

(Bunun neden kazanan-kazanan bir durum olduğunu öğrenmek istiyorsanız, lütfen bana e-posta gönderin veya DM gönderin. Belki şirketiniz de ilgilenebilir?)

Bu yaklaşıma birkaç ay süre vereceğim, umarım başarabilirim. Başaramazsam, ancak o zaman eklentinin PRO sürümünü oluşturmayı ve bazı özellikleri ücretli sürüme kısıtlamayı düşünmem gerekecek. (Evet, bu berbat olur, bu yüzden o aşamadan kaçınabilmeyi umuyorum.)

Önümüzdeki bültenlerde sponsor bulup bulamadığım konusunda sizi güncel tutacağım.

Blog yazıları

Blog yazıları kesinlikle gurur ve sevinç kaynağım oldu.

Dikkat: Sitede bir RSS beslemesi olduğunu biliyor muydunuz? Tüm blog yazılarımı almak için abone olabilir, favori okuyucunuzda okuyabilirsiniz.

Geçen ay her hafta yüksek kaliteli bir blog yazısı yayımlamayı başardım:

🛠 WordPress'in çekirdeğinde bir GraphQL API'si olmalı mı? WordPress'in GraphQL'den yararlanabileceğini savunuyor; zira WP REST API, WordPress 5.6'da (toplu işlemler) bir GraphQL API'sinin yerel olarak sunabileceği yeni bir işlevsellik kazandı.

🥊 Gato GraphQL vs WPGraphQL: kavga! eklentimi WPGraphQL ile karşılaştırıyor; çağlar boyu hatırlanacak ve boks hayranlarını daha fazlasını istemeye zorlayacak bir çarpışma.

👶🏻 GraphQL aracılığıyla WordPress'i gençleştirmek bir headless WordPress'in WordPress kod tabanından nasıl ayrıştırılabileceğini göstererek birikmiş teknik borcu düzeltme (ya da en azından aşma) fırsatı sunuyor.

🍾 Gato GraphQL artık kapsama alındı, PHP-Scoper sayesinde! diğer eklentilerle çakışmaları önlemek amacıyla PHP-Scoper kullanarak bir WordPress eklentisini kapsamaya alma stratejisini anlatıyor.

İletişim / Eklenti bahisleri

Eklentinin birkaç yerde öne çıkarılmasından büyük memnuniyet duyuyorum.

✅ WordCamp India 2021'de "Intro to Gato GraphQL" konuşmasını yaptım, eklentinin demosunu gösterdim ve (demo yapıyor olmam göz önünde bulundurulduğunda şaşırtıcı biçimde) her şey mükemmel geçti! Youtube videosuna bakın.

✅ Joe Howard beni WPMRR podcast'i için röportaj yaptı. Kayıt yakında yayımlanacak.

✅ Chris Coyier eklentimi CSS-Tricks bülteni #239'da öne çıkardı!

Bu günümü güzelleştirdi

Her şeyden biraz

Geçen ay yaşanan her şeye dair bazı genel haberler.

Jason Bahl WP Engine'e geçiyor

Jason'ın WP Engine'e katılması için tebrikler! WPGraphQL için şimdiye kadar yaptığı gibi harika işler çıkarmaya devam etmesini umuyorum.

Bu arada, rakip olmamız (aslında onunla yarışan benim, o çok daha ileride) ikimizin arkadaş olamayacağı ya da birbirimizin projelerini geliştirmek için iş birliği yapamayacağımız anlamına gelmiyor. Aslında her ikimiz de aynı hedefi paylaşıyoruz: GraphQL'i WordPress'e getirmek (bunun nasıl gerçekleşmesi gerektiği konusunda farklı fikirlerimiz olsa da).

Ama rekabetin iyi olduğuna inanıyorum ve herkesin yararına olacak.

Evet, rekabet iyidir, zirvedeki senin olduğu sürece

WP Engine Atlas'ı başlatıyor ve headless hakkında her şeyi bildiğini iddia ediyor (gerçekten mi?)

WP Engine'i yeni headless WordPress çözümleri Atlas'ı başlatması nedeniyle de tebrik ediyorum.

Ne yazık ki bazı yanlış bilgiler veriyorlar:

Tamamen headless çözüm kullanan şirketler genellikle ön uç için ayrı bir JavaScript uygulaması barındırır; bu uygulama, API'ler aracılığıyla belirli WordPress verilerini çeker — WordPress REST API veya WPGraphQL eklentisi.

Evet, Gato GraphQL yok, değil mi?

Hey oradayım, ben de varım, değil mi?

Normalde bununla ilgilenmezdim çünkü herkesin eklentimden haberdar olmasını beklemiyorum. Ama projemin farkında olduklarına gerçekten inanıyorum ve kasıtlı olarak görmezden geliyor gibi görünüyorlar.

developers.wpengine.com'u ("headless WordPress için en iyi uygulamalar, öğreticiler, bloglar ve belgeler için tek durak noktası") başlattıktan sonra onlara ulaştım:

Sanırım projemi ciddiye almadılar. Ya da belki yalnızca umursamadılar çünkü tamamen WPGraphQL'e yatırım yapmışlar.

Şimdi, eklentimden bahsetmek istemiyorlarsa bununla barışığım. Ancak WP REST API ve WPGraphQL'in tek iki seçenek olduğunu belirtmek çok yanıltıcı. Sonuç olarak eklentim zarar görüyor ve geliştirici topluluğu kafa karışıklığına düşüyor.

Evet, itiraf etmeliyim ki sinirleniyorum. Bu hiç de iyi değil. Yanlış bilgilerini düzeltmelerini umuyorum (onlara zaten bir e-posta gönderdim).

Bitirirken

İşte bu, ilk "Gato GraphQL'i Açık Geliştirme"nin sonu.

Nasıl buldunuz? Yorumlarda düşüncelerinizi paylaşmaktan çekinmeyin.

Beğendiyseniz, bülteni arkadaşlarınızla paylaşırsanız minnettar olurum (ya da daha da iyisi, onları abone olmaya davet edin).

Gelecek ay görüşürüz!


Bültenimize abone olun

Gato GraphQL'deki tüm güncellemelerden haberdar olun.