• 16-05-2026, 16:34:45
    #1
    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
  • 16-05-2026, 19:25:32
    #2
    çok başarılı tebrik ederim hocam elinize kolunuza emeginize saglık