Popüler açık kaynak projeleri oluşturmak için ipuçları
(skerritt.blog)"Ağ etkisi: İnsanlar onu ne kadar çok ararsa, kullanıcı sayısı o kadar artar, katılım o kadar çoğalır, özellikler o kadar iyileşir ve proje o kadar tanınır hale gelir."
Popüler olmak için ne yapmak gerekir?
#1. İyi tasarlanmış bir README
- En başta kısa ve net açıklayın
→ Bu ne işe yarıyor?
→ Benim sorunumu çözüyor mu?
→ Benim sorunumu rakiplerden daha iyi çözüyor mu?
→ Nasıl kurarım?
→ Bilmem gereken temel komutlar neler?
→ Yardım almak için nereye gitmeliyim?
1.1 Projeyi özetleyen bir header oluşturun
→ Logo: Logoyu Canva gibi yerlerde GIF logo olarak oluşturun
→ Slogan: Projeyi tek cümlede açıklayın. Bunu GitHub açıklamasına da uygulayın
⇨ İlk bakışta dikkat çekmeli
⇨ Kullanıcının neden buna ihtiyaç duyduğunu anlatmalı
⇨ Bunun neden diğerlerinden daha iyi olduğunu göstermeli
⇨ Anlaşılması kolay olmalı
⇨ Örn.) hugo: The world’s fastest framework for building websites
→ Rozetler: Küçük görseller/bağlantılarla projeyi anlatın
⇨ Son etkinlik sayısı, indirme sayısı, sohbet odasında kaç kişi olduğu, kullanılan sürümler, lisans vb.
→ Hızlı kurulum: Kolay ve hızlı kurulum komutlarını hemen görünür şekilde koyun
⇨ Ne aradığını bilenler hızlıca denemeye başlayabilsin
⇨ Docker/PIP ile tek satırda kurulabildiği gibi şeyleri mümkün olduğunca başta gösterin
⇨ docker run -it --rm remnux/ciphey
→ Hızlı bağlantılar (zorunlu değil)
⇨ Web sitesi, forum, dokümantasyon, kurulum kılavuzu, katkı kılavuzu, Twitter vb.
1.2 "What is This?" Projeyi kısa ve net şekilde açıklayın
→ Kısa açıklama + projenin nasıl çalıştığını gösteren GIF + insanların görmek isteyeceği temel özellikler
→ Örn.) Starship: Solda temel özelliklerin anlatıldığı, sağda ise çalışan GIF’in olduğu iki sütunlu düzen
→ Tüm özellikleri göstermek zorunda değilsiniz. Kullanıcıların görmek isteyeceği şeyleri listeleyin ve anlaşılır biçimde anlatın
1.3 "X vs Y" Rakiplerle karşılaştırın
→ İnsanlara bu projeyi neden rakipler yerine seçmeleri gerektiğini göstermelisiniz
→ Avantajlar kolayca görülebilmeli
→ Bu, yalın girişim yaklaşımında önce "ortalama kullanıcıyı" değil "erken benimseyenleri" bulmanız gerektiği fikrine benzer
⇨ Daha iyi özellikler varsa, yeni bir araca geçmekten çekinmeyen kişiler
→ Yalnızca hiç rakip yoksa ya da mevcut çözümler sizin çözümünüze göre aşırı karmaşıksa "ortalama kullanıcıyı" hedeflemek mantıklıdır
→ En kolay yöntem, temel özellikleri karşılaştıran bir tablo hazırlamaktır
⇨ Sözlerden çok sayılarla gösterin
⇨ Çalışmayı GIF’lerle karşılaştırmalı göstermek de iyidir
1.4 Harika dokümantasyon hazırlayın
→ Tüm dokümantasyonu README’ye koymak zorunda değilsiniz. Güncellemesi ve aranması zorlaşır, ayrıca README’yi okunması güç hale getirir
→ Yukarıda kurulum yöntemini yazdığınıza göre, ek olarak göstermeniz gerekenler şunlar:
⇨ Nasıl çalıştırılır
⇨ Dokümantasyon nerede bulunur
⇨ Nasıl destek alınır
→ Çalıştırma yöntemini GIF ile göstermek de iyidir
1.5 Nasıl katkı yapılacağını anlatın, katkı sunanlara teşekkür edin ve onları karşılayın
→ Projeye nasıl katkı sunulur
→ Önceki katkı sunanlara teşekkür edin
→ all-contributors gibi botlar kullanın
#2. İnsanların istediği şeyi yapın
→ İyi bir README insanların ilgisini çeker; onların "sorununu çözen" bir proje ise insanların bunu başkalarına anlatmasını sağlar
2.1 Önce sorun, sonra ürün
→ Bir ürün yapmak için bir şey üretmeyin; bir sorunu çözün
→ "İlerleme yalnızca büyük sıçramalarla değil, yüzlerce küçük adımla da gelir."
2.2 Sorunla birlikte yaşayın
→ Ortada sorun yoksa, onu etkili biçimde çözemezsiniz
→ Rastgele fikir üretmektense, kendi hayatınızdaki sorunları gözlemlemek çok daha kolaydır
→ Bir sorun olduğunu fark ettiğinizde iki şeyi öğrenirsiniz: Gerçekten bir sorun vardır ve başkalarında da vardır.
2.3 Topluluk içinde sorun bulun
→ Topluluklara baktığınızda, insanlar karşılaştıkları sorunları açıkça ortaya koyar
→ Ne kadar çok insanı dinlerseniz, yalnız başınıza düşünmekten daha fazla fikir üretebilirsiniz
→ Topluluğun yaşadığı sorunu çözen bir MVP (Minimum Viable Product) yapmayı deneyin
→ Bunu toplulukla paylaşın, etkisini ölçün, nasıl daha iyi hale getireceğinizi öğrenin ve yeniden yaparak ya da eklemelerle iyileştirin
#3. Dışarıya duyurun
→ Ne kadar iyi yaparsanız yapın, yayımlamazsanız kimse görmez
→ Öncesinde topluluktan yararlandıysanız, neyse ki onlar zaten bunu bilir ve kullanır
→ GitHub Star sayısını 0’dan 1’e çıkarmak zordur ama 10’dan 100’e çıkarmak daha kolaydır
3.1 Toplulukla paylaşın
→ Build, Measure, Learn döngüsü
→ İlk gerçek sürümünüzde topluluğun mutlaka haberi olsun. Onlar da bunu arkadaşlarıyla paylaşacaktır
3.2 News Aggregators
→ İlgili Subreddit
→ HackerNews (çevirmenin notu: GeekNews de!)
→ Lobste.rs
3.3 Awesome List
→ Konuyla ilgili listeleri bulun ve PR gönderin
2 yorum
Bir günde GitHub'da 500 yıldız toplama hikayesi
https://black7375.tumblr.com/post/653140399088631808/
Bu, daha önce yazdığım bir yazı.
Ağırlıklı olarak tanıtım stratejisine odaklanmıştım.
Tanıtım yazısı paylaşma yöntemi ve zamanlaması, geliştirme yönünü ve bitiş zamanını belirleme yöntemi gibi şeyleri yazmıştım.
Çok bariz bir şey gibi gelebilir ama... açık kaynağın README’si gerçekten çok önemli.
Kimsenin çözemediği/çözmediği bir problemi çözen ya da rakiplerini geride bırakan şaşırtıcı özelliklere sahip bir proje olsa bile, README’de bunu nasıl anlattığınıza göre sonuç değişebilir.
Yalnızca ülke içinde değil, yurt dışında da bilinen açık kaynakların daha da artmasını isterim.
Bu aralar en ünlü yerli geliştiricilerin yaptığı açık kaynak projelerin GitHub About ve README bölümlerine de göz atın.
swc : "Make the web (development) faster." swc, rust ile yazılmış süper hızlı bir derleyicidir; modern standartlar ve typescript’ten geniş destekli javascript üretir.
fzf : fzf, genel amaçlı bir komut satırı fuzzy finder aracıdır.