Bu Site Nasıl Oluşturuldu?
Özetle: Eleventy, GitHub, Netlify.
Tamamen mükemmel olmasa da 2021'de bir site oluşturup bir şeyler yazmak oldukça keyifli.
Piyasada blog tutmak için kullanabileceğiniz bir çok seçenek var; Wordpress, Blogger, Tumblr, WriteAs vs. fakat ben farklı bir yol izlemek istedim; tamamen statik bir site oluşturmayı tercih ettim. Sade, hızlı, güvenli ve en önemlisi küçük boyutu sayesinde milisaniyeler içinde açılıyor olması tercih etmemde büyük etken oldu. Elimi kirletmeyi sevmem ve domain harici cebimden beş kuruş para çıkmaması da var tabi. 🤫
HTML ve CSS biliyorum fakat sırf statik bir site istiyorum diye her sayfayı tek tek elle yazmak kısa vadede mümkün görünse de uzun vadede akıllı bir insanın yapacağı bir şey değil, site sadece bir-iki sayfadan oluşuyorsa orası ayrı tabi. Bu durumda yardımımıza statik site oluşturucular (SSG) koşuyor. Hali hazırda 300ün üzerinde kullanabileceğiniz SSG var, bu yüzden seçim yapmak oldukça zor. Popüler olanlarla başlamak en mantıklısı; Jekyll, Hugo, Pelican, Eleventy (11ty), Gatsby...
Benim tercihim Eleventy'den yana oldu çünkü SSG'lere ilk giriş yaptığımda piyasayı Jekyll domine ediyordu ve ben de onunla başlamıştım, Eleventy'de onu oldukça andırıyor. Eleventy'den önce Hugo'yu da oldukça uzun zaman kullanmıştım hatta şu an piyasadaki en hızlı SSG ünvanını taşıyor. Bu siteyi de önce Hugo ile yazmıştım fakat template dili hoşuma gitmediği için ve eleventy'nin de template konusunda sınırlamasının olmaması dolayısıyla en nihayetinde eleventy'e geçtim.
SSG'lerin çalışma mantığına gelecek olursak; sitenin tasarımını, neyin nerede görüneceğini belirleyen şablonlar vardır. Siz yazılarınızı Markdown (🥰) formatında yazarsınız ve SSG bu şablona göre yazdıklarınızı statik bir site haline getirir. (Hiç SSG ile uğraşmayacak olsanız bile Markdown biçimlendirme dilini öğrenmenizi tavsiye ederim, yazma eylemini oldukça kolaylaştırıyor.) Bana özel bir görünüşü olmasına gerek yok, uğraşmak istemiyorum derseniz şablonları elle hazırlamanıza tabi ki gerek yok; Github veya benzeri bir yerden binlerce hazır temayı seçip kullanabilirsiniz fakat bunu yapmanın eğlencesi nerede? 🤷♂️
Şablonlar hazır, yazılarımız hazır bilgisayarımızda duruyor, sırada ne var? Barındırma. SSG'ye siteyi oluşturmasını söyleyip oluşturduğu hazır siteyi de bir sunucuya koymamız gerekiyor fakat bununla da kimsenin uğraşacağını sanmıyorum. (Yine de bilgisayarınızda nasıl göründüğüne bakmak için SSGlerin canlı önizlemelerini kullanabilirsiniz, sitenizde yaptığınız her değişiklik anında tarayıcınızda görünecektir.) Onun yerine bilgisayarımızda hazır olan dosyaları olduğu gibi Github'a (Gitlab veya Bitbucket de olur) yüklüyoruz, daha sonra Netlify'a geçiş yapıp Github ile eşleştirerek yüklediğimiz dosyaları otomatik oluşturmasını sağlıyoruz. Github üzerinde oluşan her değişiklikte Netlify da otomatik olarak siteyi yeniden oluşturacak yani tek yapmanız gerek yazı yazıp yüklemek. Tabi Netlify dışında başka yerlerde de bu işlemi yapabilirsiniz fakat Netlify gerçekten oldukça kolay ve Let's Encrypt ile otomatik SSL sertifikası da sağlıyor.
Yazı yazıp yüklemek kaldı fakat her seferinde bir editör açıp yazı yazıp Github'a yüklemenin de kolay bir yöntemi yok mu? Var tabi. Piyasada bir sürü Headless CMS var (Forestry, NetlifyCMS, Contentful, TinaCMS), yani içerik yönetim sistemi. Sonuçta siteyi Netlify ile oluşturduğum için ve açık kaynak bir yazılım olmasından dolayı CMS olarak da ben NetlifyCMS kullandım. Tek yapmam gereken siteadi.com/admin sayfasına girmem ve yazımı yazmam, kaydedince site de otomatik olarak tekrardan oluşacak.
Bu tarz şeylere ilgisi olmayan insanlar için doğru bir tercih olmasa da bir kere öğrendikten sonra işler gerçtekten kolaylaşıyor. Yine de tüm bunlarla uğraşmak istemeyenler için Wordpress tarzı bir içerik yönetim sistemi daha mantıklı bir seçim olacaktır. Çünkü site büyüdükçe sitenin tekrar oluşma süresi artıyor, basit bir yazım hatasını düzeltmek için bir kaç dakika, belki daha fazla beklemeniz gerekebiliyor.
Evet, bu benim blogum ve benim istediğim gibi çalışıyor çünkü her şeyi sıfırdan kendim yaptım. 💪