feat: SEO altyapısı — pre-render, meta tags, blog posts, robots/sitemap

- vite-plugin-prerender yerine Playwright tabanlı post-build pre-render scripti
  (apps/web/scripts/prerender.mjs): 10 public route statik HTML'e dönüştürülüyor
- usePageMeta hook: her public route'da özgün title/description/canonical/OG tags
- index.html: favicon.svg, canonical, OG/Twitter Card, geliştirilmiş title+desc
- apps/web/public/: robots.txt, sitemap.xml (10 URL), favicon.svg
- nginx HSTS header eklendi (Strict-Transport-Security)
- Blog post sayfaları: blog_/$slug.tsx (4 tam yazı, 600-800 kelime)
- blog.tsx: post kartlarına Link eklendi
- Homepage: Schema.org JSON-LD (Organization + SoftwareApplication)
- Footer: placeholder href="#" sosyal linkler kaldırıldı
- deploy.sh + deploy.yml: playwright install chromium + prerender adımı

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Sase Dev
2026-02-22 14:15:35 +00:00
parent f1a27810db
commit 7194393e6d
32 changed files with 1022 additions and 539 deletions

View File

@@ -42,6 +42,13 @@ jobs:
echo "$(date '+%Y-%m-%d %H:%M:%S') - Building..."
pnpm build
echo "$(date '+%Y-%m-%d %H:%M:%S') - Installing Playwright Chromium (if missing)..."
cd apps/web && npx playwright install chromium --with-deps 2>/dev/null || true
echo "$(date '+%Y-%m-%d %H:%M:%S') - Pre-rendering public pages..."
pnpm prerender || echo "WARNING: Pre-render failed (non-fatal)"
cd /home/${{ secrets.SSH_USER }}/ss
echo "$(date '+%Y-%m-%d %H:%M:%S') - Running database migrations..."
cd apps/api && pnpm db:push && cd ../..