15 Eylül 2024

Nihayet Kitapi projemizin 2. sürümünü yayınlamak nasip oldu

ile hasan

2015’de öğretmen kuzenim Sefa Avcılar ile başladığımız ve ilk olarak şurada duyurduğumuz ücretsiz online kütüphane projesi Kitapi’nin 9 yıl aradan sonra nihayet ikinci sürümünü yayına alabildik. Şükürler olsun 🙂

Başta Kitapi olmak üzere ileride kendi işlerimi yönetmek için 2020’de Kodventure Teknoloji AŞ’yi kurmuştum. Hedefim bu gazla hızlıca Kitapi’nin yeni sürümünü hazırlamaktı ama şirketi kurduğum ay Korona baş gösterince gündüz işim olan online sınav sistemleri üzerine büyük bir yoğunluk oluştu ve gündüz işim hem gündüz hem gece bir kaç sene boyunca beni meşgul etti.

Arada bir kaç denememiz oldu tabi. Projeyi PHP-Laravel’le geliştiriyorduk. Laravel her yıl yeni sürüm geliştirdikçe ben de projenin mevcut halinden sıkılmış oluyordum. Hobaa, haydi baştan..

Laravel’deki teknolojiler geliştikçe ben de Kitapi’nin teknolojisini geliştiriyordum. Laravel’le birlikte front-end tarafında Vue hastalığına da yakalanınca önce frontend’i ayrı backend’i ayrı iki proje olarak geliştirdiğim bir süreç oldu. Fakat burada aynı işleri (route’lar, roller, izinler vs) iki ayrı takkeyle tekrar tekrar yapmak, kendi projenle API üzerinden konuşmak vs tek başına çalışan bir developer için zor bir yol oldu.

Sonra InertiaJS çıktı ortaya. Bir full-stack developer olarak Laravel, Vue ve ikisi arasında bir köprü olan InertiaJS sayesinde eski keyifli developer günlerime dönmüş oldum. Gündüz işimdeki projeleri bile bu Inertia’ya göre baştan oluşturdum. Inertia ile yukarıda bahsettiğim frontend-backend ayırımı ortadan kalktı. MVC mantığında tek bir Laravel projesi, view katmanında php blade dosyaları yerine Vue dosyaları. Route’lar, permission’lar herşey Laravel’den geliyor. API’ye gerek yok çünkü session var! Tek başına kodlayanlar için mükemmel biçilmiş bir kaftan.

Çok şükür Kitapi’nin ikinci sürümünün son denemesine 700 küsür gün önce işte bu mimari ile başladım. Bir de sayaç koymuştum. Kaç günde bitirdiğimi göreyim, gaza geleyim diye. Temel fonksiyonları yine bir kaç ayda tamamladığımı hatırlıyorum. 2 yıl önce herhalde Laravel 9’la başlamıştım. Aradan zaman geçti, projeyi bir türlü bitiremedim. Ama bu kez repoyu silmemeye, yeniden başlamamaya azmetmiştim. Ne olursa olacak, bu repo yayına çıkacaktı.

Asıl işi uzatan şey, mevcut Kitapi’nin blog sayfaları gibi yan bölümleri ve yeni Kitapi’de olmasını istediğimiz store, sosyal medya gibi yeni ekstra bölümlerdi. Buraları bir türlü bitiremiyordum. Sosyal medya kısmında SEO problemi vardı. Kitapi’nin kendisini Vue ile yapmamızda mahsur yoktu, ama sosyal medya Vue ile olursa SEO açısından sorundu. Bunu aşmak için bazı teknolojiler (SSR gibi) denedim ama çok anladığım işler olmadığından başaramadım. Sosyal medya kısmını eski usül blade template’leri ile yaptım. Beklediğim hızda ve tutarlılıkta olmadı ama en azından iş görür bir haldeydi.

Projeyi iyi kötü bitirmiş gibiydik ama tam anlamıyla açmaya da hazır değildik. Bu kez ne zaman açalım, şubat tatilinde mi yaz tatilinde mi vs diye habire erteledik. Ta ki 2024 yaz tatili başlayana kadar. Ortağım Sefa, abi bu yaz halledelim mi? dedi. Ben de çoluk çocuk bir süreliğine Gönen’e gidecektim. Neden olmasın dedim. Orda iyice kapanır, projeyi bu yaz tatilinde ayağa kaldırırım diye düşündüm. Zaten veritabanı aktarımı vs işlerini kabaca halletmiştim.

Okulların tatil olmasıyla Kitapi’nin kullanıcı sayısı büyük ölçüde düştüğü için radikal bir karar alarak mevcut Kitapi projesinin sayfasını durdurduk. Yeni sürüm için hazırlıklarımızı tamamlıyoruz, sabredin dedik. Canları sıkılmasınlar, sayfada biraz vakti de geçirsinler diye basit bir JS tetris oyunu koyduk 🙂 Şahsen ben baya takıldım orada.

Laravel de bu arada 11. sürüme geçmişti. Ben de projeyi baştan yazmamaya söz verdiğim için şöyle bir çözüm geliştirdim. Sıfırdan yine bir repo açtım 😀 Laravel 11’i sıfırdan kurdum. Ve tek tek mevcut kontrollerları, modelleri vs bunun içine taşıdım. Yavaş yavaş bir kaç günde aynı projeyi Laravel 11 olarak temiz bir şekilde ayağa kaldırdım. Sonrasında hızlıca eksikleri gidermeye koyuldum. Hedefim bir ayda yayına açmak idi ama store kısmı baya oyaladı. Hala da bitmiş değil 😀

Bu sırada tek tük Kitapi’yi soranlara geçici adresin linkini verdik. Böylece bizden başkaları da canlı olarak denemiş oluyordu. Geri bildirimler için bu tecrübe önemliydi.

Nihayetinde tıpkı 9 sene önce olduğu gibi temel fonksiyonlardan emin olunca Kitapi‘yi yayına almış olduk. Fakat bu sene Ücretsiz planın yanı sıra bir de sürdürülebilirlik açısından ücretli Profesyonel Plan getirmek zorunda kaldık. Aylık 99 TL gibi cüz’i bir fiyata denk geliyor. 9 yıl önce hobi gibi başlamıştık ama aradan geçen yıllarda hem saatlerimizi hem de sunucu masrafları olarak epey paramızı harcamıştık. Projenin bir iş olarak devam edebilmesi için ücretli plan sunmak ve bu ücretin karşılığında insanlara daha fazla hız, reklamsız deneyim ve daha fazla “ek” özellik vermeyi kararlaştırdık. Bu Pro planın ödemesini alabilmek için yarım yamalak da olsa store kısmını da ayağa kaldırdık ve okulların açıldığı ilk gün resmi olarak duyurmasak da orijinal kitapi.net domaini altında yeni sürümü yayına aldık.

Resmi duyuruyu landing page’i bitirince yapacaktık. O da hem ingilizce hem de Türkçe olarak tamamlandı ama bu kez de mailing yapmak için hazırlık yapmamız gerekti. Şu an o aşamadayız. İnşallah o da bitince 9 yıldır abone kutumuzda biriken yaklaşık 2000 kişiye Kitapi’nin yeni sürümünü duyuracağız inşallah.

Bu yeni sürümle beraber hedefimiz Türkiye’nin dışına açılmak. Bosna’da, Avusturya’da, Amerika’da Almanya’da tek tük kullanan türk kullanıcılarımız var ama hedefimiz buralardaki yabancı kullanıcılara da ulaşmak.

Bu arada ilk haftada 9 profesyonel kullanıcımız oldu. Bu bizi nasıl mutlu etti anlatamayız. Projemize mevcut kullanıcılarımızdan da böyle destek görmek bizi çok sevindirdi. Kitapi’ye ilgi gösteren herkese teşekkür ederiz.

Bize her yer Kitapi