Merhaba,

Son aylarda kendi mimari blogum için sıfırdan yazdığım PHP tabanlı CMS'i açık kaynak olarak GitHub'a yükledim. Belki birinin işine yarar diye paylaşıyorum, eleştirilerinize/önerilerinize açığım.

Kısaca ne? Hazır CMS'lerden (WordPress, Ghost, vb.) sıkıldım. Mimari ve restorasyon yazıları için "magazine atelier" estetiğinde, hızlı, sade ve tamamen elimde olan bir altyapı istedim. Sonuç: framework kullanmayan, PHP 8.2+ üzerine kurulu, MySQL ile çalışan, paylaşımlı hosting'de bile sorunsuz çalışan bir CMS.

Canlı görmek için:odogan.com.tr
Kaynak kodu:github.com/mimarodogan/odogan


Neden Yine Bir CMS Daha?

WordPress'in eklenti karmaşası, Ghost'un Node.js bağımlılığı, statik generator'ların dinamik özellik eksikliği... Kendi ihtiyaçlarıma göre yazmak daha temiz oldu. Özellikle:
  • Magazine grid + featured + editörün seçimi gibi yayıncılık odaklı düzen
  • Türkçe içeriğe özel: Ateşman okunabilirlik puanı, doğru karakter encoding
  • cPanel/paylaşımlı hosting friendly — Node.js/Docker gerekmiyor
  • Atelier estetiği — serif tipografi, § paragraf işareti, kobalt aksent
Öne Çıkan Özellikler

İçerik Editörü:
  • WYSIWYG zengin metin editörü
  • Slash komutları (/alıntı, /tablo, /görsel — Notion tarzı)
  • Footnote sistemi (akademik [^1] syntax)
  • Outline panel (yazarken yan tarafta H2/H3 live)
  • Co-author / çoklu yazar
  • Series (dizi yazılar)
  • Auto-save + revision history
  • Quick edit modal
  • Markdown + sanitized HTML dual format
SEO:
  • Otomatik XML sitemap (posts, projects, authors, images)
  • IndexNow protokolü (Bing/Yandex anında bildirim)
  • llms.txt (AI search engine optimizasyonu)
  • JSON-LD @graph (Article, Person, Organization, FAQ, ImageGallery)
  • OG image otomatik üreteç
  • SEO skoru + Ateşman okunabilirlik (canlı, debounced)
  • Internal link önerisi (FULLTEXT search tabanlı)
  • Reading progress + table of contents

Güvenlik:
  • Argon2id password hashing
  • TOTP 2FA (RFC 6238)
  • CSRF middleware (global)
  • Rate limiting (login, register, password reset)
  • HSTS + CSP + X-Frame-Options + Permissions-Policy
  • File upload polyglot sanitization
  • Forgot password flow + email change pending pattern
  • KVKK Cookie Consent + Consent Mode V2 (GDPR uyumlu)
Performans:
  • Build pipeline: PurgeCSS + cssnano + Stylelint
  • JS pipeline: ESLint + Prettier + Terser + source maps
  • AVIF + WebP + JPEG fallback (<picture>)
  • BlurHash placeholder (lazy image loading)
  • Brotli + gzip + tag-based cache invalidation
  • Critical CSS desteği
Erişilebilirlik (WCAG 2.2 AA):
  • prefers-reduced-motion global
  • Modal focus traps
  • aria-pressed, aria-current, aria-live
  • Tablo <th scope> + caption
  • :focus-visible outline tutarlılığı

Teknoloji Yığını
  • Backend: PHP 8.2+, MySQL 8.0+ (framework YOK)
  • Frontend: Vanilla JS (33 modül), CSS partials → Terser/cssnano
  • Cache: File-based (Redis opsiyonel)
  • Mail: Brevo (transactional + newsletter)
  • Error tracking: Sentry
  • Hosting: cPanel / paylaşımlı (LiteSpeed / Apache)
Composer için sadece 4 paket: PHPMailer, Parsedown, Brevo SDK, Sentry SDK. "Framework yok" derken gerçekten yok — Router, DB, Cache, Schema renderer hepsi sıfırdan yazıldı. 481 dosya, ~22 MB.

Bonus: İlginç Olabilecek Özellikler
  • Proje portfolyo + Leaflet interaktif harita (yapı tipi filter chip)
  • Sözlük modülü — alfabetik akordeon + FULLTEXT arama
  • Yazar başvuru sayfası (multi-step wizard)
  • Yorum sistemi (threaded, moderasyon, admin email)
  • Etkileşim — clap, bookmark, follow author, emoji reactions, quote-to-tweet
  • Newsletter (Brevo, double opt-in, unsubscribe token)
  • Backup CLI — DB + uploads otomatik yedek (cron destekli)
  • Migration runner (admin panelden veya CLI'dan)

Kullanım — Hızlı Başlangıç

git clone https://github.com/mimarodogan/odogan
cd odogan
composer install
npm install && npm run build
cp .env.example .env  # DB credentials doldur
php database/migrate.php
php -S localhost:8000 router.php
Lisans

MIT — istediğin gibi kullan, fork'la, modifiye et, satışa koy. Sadece LICENSE dosyasını koruman yeterli. Atıf zorunlu değil ama yapılırsa sevinirim.

Geri Bildirim

Henüz yeni public oldu. Eleştirilerinizi, bug raporlarınızı, PR'larınızı bekliyorum. Özellikle:
  • Kod kalitesi (PHP 8.2 idiomatik mi?)
  • Güvenlik açıkları (responsible disclosure için profile'da mail var)
  • Performans (TTFB, LCP iyileştirme önerileri)
  • Eksik özellik fikirleri
Sorularınız varsa altta yazın, elimden geldiğince hızlı cevap veririm.

Teşekkürler 🌿

Linkler:
🌐 odogan.com.tr
🐙 github.com/mimarodogan/odogan
👤 github.com/mimarodogan