İnternette yazılım, web tasarım, SEO ve sunucu yönetimi hakkında sayısız içerik var. Bunların arasına aynı şeyleri farklı cümlelerle anlatan yeni bir blog daha eklemek istemiyorum.

Bu blogu açmaktaki amacım; yıllar boyunca gerçek projelerde karşılaştığım sorunları, ürettiğim çözümleri ve zaman içinde değişen bakış açımı paylaşmak. Bazen teknik bir problemi çözeceğiz, bazen bir tasarımın neden iyi görünmediğini konuşacağız. Bazen de işin kodla ilgisi olmayan ama projenin sonucunu doğrudan etkileyen taraflarına bakacağız.

Çünkü gerçek dünyada bir web projesi yalnızca koddan ibaret değil.

Tasarımla Başlayan Yolculuk

Web dünyasıyla tanışmam 1999 yılına dayanıyor. O dönemde bugünkü araçların, hazır sistemlerin ve birkaç komutla kurulan geliştirme ortamlarının hiçbiri yoktu. Bir şey üretmek için daha fazla araştırmak, denemek ve çoğu zaman bozarak öğrenmek gerekiyordu.

Benim yolculuğum tasarımla başladı. Renklerin, boşlukların, tipografinin ve görsel dengenin bir arayüzü nasıl değiştirdiğini zaman içinde öğrendim. Daha sonra yalnızca görünen yüzü hazırlamanın yetmediğini fark ederek yazılım tarafına yöneldim.

2017 yılından itibaren programlama, yaptığım işlerin merkezine yerleşti. PHP ve Laravel başta olmak üzere farklı teknolojilerle kurumsal web siteleri, yönetim panelleri ve iş süreçlerine özel uygulamalar geliştirdim.

Bugün bir projeye baktığımda onu yalnızca tasarım veya yazılım olarak değerlendiremiyorum. Arayüzü, veri yapısını, kullanıcı deneyimini, sunucu altyapısını, performansını ve arama motorlarındaki karşılığını birlikte düşünüyorum.

Bu yaklaşım zaman zaman işleri zorlaştırıyor. Ama ortaya çıkan sonucun daha tutarlı olmasını da sağlıyor.

Gerçek Projeler, Gerçek Sorunlar

Eğitim içeriklerinde her şey genellikle olması gerektiği gibi çalışır. Veritabanı bağlantısı kurulur, paket sorunsuz yüklenir ve yazılan kod ilk denemede görevini yerine getirir.

Gerçek projelerde ise durum pek böyle değildir.

Bir Laravel kuyruğu yerel ortamda çalışırken sunucuda durabilir. Gönderilen e-posta herhangi bir hata vermemesine rağmen Gmail’e ulaşmayabilir. Silinen bir görsel, farklı cache katmanları nedeniyle günler sonra bile görüntülenmeye devam edebilir. Çok dilli çalışan bir veri yapısı, proje büyüdükçe tahmin edilmeyen sorunlara yol açabilir.

Bazen de teknik olarak kusursuz çalışan bir bölüm, kullanıcı açısından tamamen başarısız olabilir.

Bu blogda özellikle bu tür durumlara yer vermek istiyorum. Yalnızca çalışan son kodu değil; sorunun nasıl ortaya çıktığını, hangi yolları denediğimi, nerede hata yaptığımı ve çözüme nasıl ulaştığımı anlatacağım.

Çünkü çoğu zaman asıl öğretici olan sonuç değil, sonuca ulaşırken yaşanan süreçtir.

Burada Neler Olacak?

Blogun önemli bir bölümünü web geliştirme yazıları oluşturacak. Laravel, Livewire, Filament, Alpine.js ve kullandığım diğer teknolojilerle ilgili deneyimlerimi paylaşacağım. Fakat bunlar yalnızca başlangıç seviyesinde kod örneklerinden oluşmayacak. Mimari kararlar, performans problemleri, paket uyumsuzlukları ve üretim ortamında yaşanan sorunlar da bu içeriklerin parçası olacak.

Sunucu tarafında cPanel, WHM, CWP, Nginx, Apache, LiteSpeed, PHP sürümleri, Supervisor, queue sistemleri ve e-posta teslimatı gibi konulara değineceğim. Özellikle çözümü dağınık kaynaklarda bulunan veya Türkçe anlatımı yetersiz kalan sorunlara odaklanacağım.

Tasarım ve kullanıcı deneyimi tarafında ise bir arayüzün neden iyi ya da kötü göründüğünü inceleyeceğim. Boşluk kullanımı, görsel hiyerarşi, tipografi, kurumsal renkler ve premium marka algısı gibi konuları gerçek örneklerle ele alacağım.

SEO, içerik üretimi ve proje fiyatlandırması da blogun önemli parçaları olacak. Teknik olarak iyi hazırlanmış bir sitenin neden görünür olamadığını, SEO çalışmalarının nasıl planlanması gerektiğini ve bir web projesinin fiyatının gerçekte hangi unsurlardan oluştuğunu konuşacağız.

Ayrıca geliştirdiğim projelerden hareketle proje günlükleri paylaşacağım. Elbette müşterilere ve projelere ait özel bilgileri kullanmadan; problemleri, kararları, yanlışları ve sonuçları anlatacağım.

Her Şeyi Bildiğimi İddia Etmiyorum

Teknoloji sürekli değişiyor. Birkaç yıl önce doğru kabul ettiğimiz yöntemler bugün geçerliliğini kaybedebiliyor. Kullandığımız framework’ler, sunucu altyapıları ve kullanıcı alışkanlıkları dönüşüyor.

Bu nedenle buradaki yazıları değişmez doğrular olarak sunmak istemiyorum.

Anlatacaklarım çoğunlukla kendi projelerimde karşılaştığım durumlara, yaptığım araştırmalara ve ulaştığım sonuçlara dayanacak. Gerektiğinde eski içerikleri güncelleyecek, daha iyi bir yöntem bulduğumda önceki düşüncemi değiştirmekten çekinmeyeceğim.

Benim için gelişmenin önemli bir kısmı da bu zaten: Yanlış yaptığını fark etmek ve daha iyisini yeniden kurabilmek.

Biraz da İşin İnsan Tarafı

Üretmek her zaman temiz ve düzenli ilerleyen bir süreç değil. Aynı anda birden fazla projeyle uğraşmak, müşterilerin beklentilerini anlamak, yeni teknolojileri takip etmek ve bütün bunların arasında odağını korumak kolay olmuyor.

Bu nedenle blog yalnızca kod ve sunucu komutlarından oluşmayacak.

Bağımsız çalışmanın zorluklarını, proje yönetimini, dikkat dağınıklığını, üretkenliği ve yıllar içinde mesleğe bakışımın nasıl değiştiğini de yazmak istiyorum. Zaman zaman teknoloji dışına çıkarak hayatımda iz bırakan deneyimlere, izlediğim yapımlara veya üzerine düşünmeye değer bulduğum konulara da yer vereceğim.

Sonuçta burası kurumsal bir bilgi merkezi değil, kişisel bir blog.

Başlangıç Noktası

Uzun süredir internet için bir şeyler üretiyorum. Ancak üretirken öğrendiklerimi düzenli biçimde yazıya dökmeyi çoğu zaman erteledim.

Bu blog, biraz da o birikimi kayıt altına alma çabası.

Burada kusursuz teorilerden çok gerçek deneyimler, ezberlenmiş cevaplardan çok denenmiş çözümler olacak. Bazen uzun bir proje analizini, bazen yalnızca birkaç komutla çözülebilen küçük ama sinir bozucu bir problemi paylaşacağım.

Kısacası; tasarımın, kodun, sunucuların, SEO’nun ve bağımsız üretim hayatının kesiştiği yerde ne varsa burada konuşacağız.

Başlayalım.