Blog kelimesinin Türkçes’ güncedir. Bu kelimenin kullanımını çok fazla yaygınlaştıramadığımız için, blog olarak kullanmaya devam edeceğim yazıda da. Merak eden olursa diye girer girmez bir bilgi verdim.
Eskiden inernette güzel bilginin kaynağı bloglar ve forumlardaydı. Forumlar daha çok soru-cevap formatında olsa da oralarda da güzel rehberler bulunurdu. İnsanlar bu platformlarda daha çok ünlenmek için paylaşımlar yaparlardı. Bu kültür hala bir miktar yaşıyor ve Reddit, Facebook ve Twitter gibi platformlarda devam ediyor. Bunun bir sonucu olarak da, çoğu zaman devletlerin isteğine ihtiyaç bile duymadan şirketlerin politikalarına bağlı sansürlere maruz kalıyorlar.
Hatta ruhsal problemleri olan moderatörlere bile denk gelebilirsiniz. Örneğin ekşisözlük’te sıkı bir Fenerbahçe taraftarı moderatör var. Fenerbahçe aleyhinde yazılmış entryler sebebiyle uzun süreli banlanabilir veya entryniz en ufak bir format hatasında bile silinebilir. Sözlükte kalitesiz ve format dışı entryler cirit atarken moderatörler böyle keyfi şeylere daha çok öncelik veriyorlar.
Reddit’in Berlin, Germany gibi subredditlerinde, dönerin bir Türk yemeği olduğunu kanıtladığınız için o sub’dan kalıcı olarak banlanabilirsiniz. Ama sorsan ifade özgürlüğünü destekleyen solcu liberal.
Daha geçtiğimiz günlerde Nikita Bier, Twitter’dan bir kullanıcıyı banladı. “Today is your last day at X” minvalinde bir şeyler söyledi ve ardından hesabı uçurdu.
Bu gayet doğal aslında, “böyle bir yetkim var, seni de ilgilendirmez. Platform benim” diyerek bunu yapabilir. Buna hakkı da var. Asıl problem, böyle merkezi platformları ana haber alma kaynağımıza çevirmiş olmamız. Bugün internet dediğiniz şey nedir ki? Google, Twitter, Meta ve Reddit’i çıkardığın zaman geriye bir şey kalmıyor. İnternetteki verinin çok yüksek bir kısmı bu platformlardan dağılıyor.
Eğer bu veriyi bu platformlardan çıkartmak isterseniz çok basit bir şekilde bunu yapabilirsiniz.
Blog motoru
Blog motoru olarak Hugo kullanmayı tercih ettim.
2 basit sebebi var.
- İhtiyacım neyse onu veriyor.
- Dokümanları güzel.
Bir blogda ihtiyaç duyulan şey nedir? Yazı sunmak.
Blog tutmak karmaşık bir hale geldi zaman içerisinde. İnsanlar bloglarına daha çok şey koymak istediler, belki de farklı özellikleri olan web sitelerine dönüştürmek istediler. Bunun neticesinde Wordpress, Drupal gibi içerik yönetim sistemleri ortaya çıktı. Bu sistemler belki içerik yönetim sürecini basitleştirdi ancak kurulum ve bakım süreçlerini karmaşıklaştırdı. Her şeyden önce bir veritabanı ihtiyacı duyuyorlar. Bu veritabanı ayrı bir katman, farklı bir şekilde ele almak gerekiyor. Yani bu katmana özgü bir planlama, yedekleme süreçlerinin olması, bu süreçlerin ayrıca planlanması gerekiyor.
Siz bu veritabanı, hosting gibi katmanları hazır alıyor olsanız bile (managed) eğer kendi yedeklerinizi dağıtmıyorsanız yine single point of failure olarak kalıyor sisteminiz. Size bu hizmetleri sağlayan şirket bir veri kaybı yaşadığında ya da batıp kepenk kapattığında, yedeğiniz yoksa içeriklerinizi kaybedebiliyorsunuz.
Yedeğiniz olsa bile yıllarca kurduğunuz o pluginler, veritabanı yedekleri falan filan derken büyük bir iş yükü çıkabiliyor. Yedekten tamamen geri alamayabiliyorsunuz, birkaç geceniz buna gidebiliyor. Eliniz alıştıysa sorunsuz yaparsınız tabii.
Eğer her gün yüzlerce paylaşım yapan bir haber sitesiyseniz ve kendi blogunuzu yapacaksanız, veritabanı kullanımını kesinlikle gereksiz buluyorum. Zaten Google gibi arama motorları sitenize indexleme işlemini yaparken sizin için veritabanı oluşturuyorlar, insanlar da buralardan sitenize geliyorlar ya da doğrudan tıklıyorlar belki de.
Tabii bir de backend ile iletişime geçtiği ve PHP çalıştırdığı için, PHP çalıştırabilen bir web servera ihtiyacınız oluyor. Bakın hepsi 1-2 sayfa yazı yayınlamak için ha. Bu kadar teferruata ne gerek var?
Eğer doğrudan bir blog platformuna giderseniz de, yukarıda dediğim gibi sansüre uğrayabilirsiniz veya değişen içerik politikalarından, kullanım şartlarından, yeni ücretlendirmelerden falan nasibinizi alabilirsiniz. Daha kötüsü, örneğin Medium’da bir blog açtınız. İnsanlar yazılarınızı okumak istiyor ama o da ne? Medium diyor ki “bana para ver bu yazıyı okumak için”. İçeriye bir paywall yerleştirmiş adamlar resmen. Bu yüzden bir içerik eğer Medium’daysa ben zamanla tıklamamaya başladım. Nasıl olsa para istiyor, içeriğin tamamını vermiyor diye.
Blogspot, Substack gibi alternatifler var ancak bunların garantisi var mı? Blogspot’un her an Google’ın ürün mezarlığına gitmeyeceğinin ya da Substack’in Medium gibi bir paywall anlayışına geçmeyeceğinin garantisini verebilir misin?
Hugo’da bunların hiçbirisine ihtiyaç yok. Öyle çok aham şaham bir proje de değil.
Önce proje oluşturuyoruz:
$ hugo new project site
Sonra bir tema seçiyorsunuz kendinize. Eğer benim gibi bir felsefeniz varsa, düz HTML basın. Dokümandan nasıl kullanılacağına da bakabilirsiniz.
Yazınızı ise markdown formatında yazıyorsunuz. Her temanın kendine göre özellikleri var.
Yazıyı yazdıktan sonra ise hugo komutunu çalıştırarak statik html çıktıyı public dizinine alıyorsunuz.
İçeriye sadece html dosyalarını çıkartıyor. Veritabanı falan yok, ne yazdıysanız o. Motor işte, sizin için sayfa generate ediyor.
Tabii her yazı yazdığımızda tekrardan public dizinine çıktı almakla mı uğraşacağız? Elbette hayır, süreci otomatikleştireceğiz.
Github/Gitlab
Github veya Gitlab’den bir hesap açın. Çünkü internet sitenizi ve içeriklerinizi burada tutacaksınız.
Bunun bize sağlayacağı faydalar şunlar olacak:
- Süreçleri otomatik hale getirmekte yardımı olacak, gitops yapacağız aslında.
- Markdown dosyaları falan sadece sizin okuyabileceğiniz özel repoda durabilecek (belki henüz yayına almadığınız yazılar vs.)
- Bütün içeriğiniz aynı zamanda buraya yedeklenmiş olacak.
- Gitops olduğu için doğası gereği aslında her değişikliğiniz bir snapshot olacak,
git revertgibi tek bir komutla istediğiniz snapshot’a geri dönebileceksiniz. - LLM’ler ile üzerinde çok rahat çalışabilirsiniz.
Hesabı açtıktan sonra private bir repo oluşturun. İsterseniz public de oluşturabilirsiniz, size kalmış.
Hugo’da oluşturduğunuz içeriği git push ile repoya gönderin. Bunu tane tane nasıl yapacağınızı anlatmama gerek yok, LLM’lerden birisine sorabilirsiniz veya Github/Gitlab üzerindeki yönergeleri takip edebilirsiniz.
Cloudflare
Bu şirket de interneti tekelleştirmesine rağmen, en azından salakça moderasyon kurallarına maruz bırakmayacak olması ve ücretsiz hizmetler sunması dolayısıyla benim tercihimdir.
Öte yandan oldukça güçlü bir network altyapısı bulunuyor, birçok yüksek trafik alan şirket de bu altyapıyı kullanıyor. Uzun süredir de ücretsiz bazı hizmetler sunuyor.
Şimdi Cloudflare heasbınız yoksa, gidin ücretsiz bir hesap açın. Henüz bir domain almadıysanız Cloudflare üzerinden de satın alabilirsiniz, ben genelde domainlerimni oradan yönetiyorum. Başka bir yerden satın aldığınız bir domaininiz varsa eğer, onu da Cloudflare’a taşırsınız.
Sonrasında dashboard’dan “Pages” araması yapıyoruz. Pages, statik sayfaları Cloudflare networkünde tutan ve ücretsiz kullanımı da oldukça cömert olarak bir servis. Kişisel bir blog servisi için biçilmiş kaftan diyebiliriz.

Buradan “Get Started” kısmına tıklıyorsunuz. Sonrasında “Import an existing Git repository” seçenceğini seçip, GitHub/Gitlab artık neyle açtıysanız üyeliğinizi, onunla giriş yapıyorsunuz. Geri kalan kısmı epey kolay.
Sonraki ekranda gösterdiğim gibi doldurun:

Burada dikkat etmeniz gereken husus, root directory altındaki seçiminiz, benim projemin ismi direkt “site”. Size eğer Hugo ile proje oluştururken “mahmut” yadıysanız, buradaki alana da aynısını yazacaksınız. Site dosyalarınızın nerede olduğu yani.
Eğer direkt bu klasörün içinden çıkarıp git’e attıysanız, bir şey yazmanıza gerek yok.
Bu ayarları yaptıktan sonra süreç basit ilerliyor.
Cloudflare git hesabınız ile bağlanıyor, main branch’e commit attığınız anda build alıyor, public klasörünü güncelliyor ve yazınız sisteminizde görünür hale geliyor.
Geriye tek bir ayar kalıyor, custom domain ayarı. Onu da Pages projesini oluşturduktan sonra projenin üzerine tıklıyorsunuz, şu ekrandan yapıyorsunuz:

Buradaki “Set up custom domain” butonuna tıkladığınızda, domain zaten Cloudflare tarafından yönetildiği için bir sorun yaşamadan ayarlamalarını da otomatik olarak yapıyor.
Editörünüzü açıp sadece bir md dosyası yazdığınızda da ne gerekiyorsa direkt olarak sitenize gidiyor. İşlem yaklaşık 1-2 dakika kadar sürüyor.
Yazı yazıyorsun -> git’e gönderiyorsun -> Cloudflare bunu otomatik algılıyor -> Hugo çalıştırıyor build alıyor -> değişiklikleri public klasörüne aktarıyor -> site Cloudflare networkünde güncelleniyor. Yanlış hatırlamıyorsam ayda 500 tane falan build alabiliyorsunuz. Yani 500 yazı ekleyebilir / değiştirebilirsiniz. Bir blog için bu sayı çok yüksek bu arada.
Blog sitesi hazır
Evet ve son olarak da işte karşınızda gördüğünüz gibi bir blog siteniz oluyor.
25 seneden fazla zamanımı internette geçirmiş ve mesleğini de bu yönde seçmiş birisi olarak söyleyebilirim ki, kimse bir blog sitesinden daha fazlasını beklemiyor. İnsanların tek istediği, yazdığınız şeyi okuyabilmek bazen de size ulaşabilmek.
Ulaşmak ise çok kolay, bak gir benim Hakkında sayfasına, orada bir mail adresi var. Direkt oraya mail gönderirsen, onu okurum. Bunun için bir iletişim formuna falan ihtiyaç yok. Herkesin bir e-posta hesabı var ve sana ulaşabilirler.
Eğer para kazanmak istiyorsan da yine farklı çözümler mevcut ancak ben bloglardan para kazanmaya karşı olduğum için bunu şu anda anlatmayacağım.