ADR-001 ARGE: Müşteri Landing Frontend Stack
DerinVersiyon: 1.5.0
Tarih: 2026-06-16
Durum: Operatör onaylı Astro (D-024); BL-001 benchmark ile tam ADR kilidi bekliyor
React: Kesin (komponentler veya islands; doğrudan React UI)
İlgili: ADR-001: Müşteri Landing Frontend Stack, Mimari Backlog BL-001
1. Amaç ve kapsam
Bölüm başlığı “1. Amaç ve kapsam”Müşteri tuning web siteleri (reprocar freeze; kfzservice24 ve sonrası) için landing frontend stack seçimi.
Sabit kararlar (değişmez):
- Admin: Laravel Filament Site Hub (
admin.{musteri}.com), site başına PostgreSQL - Landing: ayrı repo, Hub Content API tüketici, müşteriye teslim edilebilir
- Kendi markalar: Next.js 16 tam klon (bu ARGE kapsamı dışı)
- Inertia: yeni üretimde hayır
- React: evet (Astro islands veya Next RSC/client)
2. npm ve ekosistem trendleri (Haziran 2026)
Bölüm başlığı “2. npm ve ekosistem trendleri (Haziran 2026)”Kaynaklar: npm registry, PkgPulse 2026, devpick, State of JS 2025, sektör blogları.
| Paket | Haftalık indirme (aralık) | YoY yön | Yorum |
|---|---|---|---|
react | 30–50M | → (hacim ↑, hız yavaş) | Taban; yeni sinyal meta-framework’te |
next | 11–30M | ↑ (+28% YoY) | React yeni projelerinin varsayılanı |
astro | 1.9–3.1M | ↑↑ (+85% YoY küçük taban) | İçerik/landing en hızlı büyüyen meta-framework |
@astrojs/react | ~650K | ↑ | Astro büyümesinin ~%20–25’i |
gatsby | 180–316K | ↓↓ (-65%) | Ölüyor; Astro yerine geçiyor |
@inertiajs/react | ~450K | → (niş) | Laravel monolith; headless değil |
next-intl | 2.2–3.7M | ↑↑ | Next App Router i18n lideri |
react-i18next | 12–13M | → | Framework-agnostic; routing çözmez |
react-router (v7 lib) | ~48M | → | Çoğunluk SPA library mode; Framework Mode değil |
@react-router/dev | ~1.3–1.5M | ↑ | RR7 Framework Mode (eski Remix) |
@remix-run/react | ~1.5M | ↓ | Legacy; RR7’ye migrate |
@tanstack/react-router | ~400–800K | ↑↑ | TanStack Start tabanı; erken |
@tanstack/start | düşük | ↑ | RC; üretim için erken |
nuxt | 1.5–3.1M | ↑ +35% | Vue; React şartıyla ADR dışı |
@sveltejs/kit | ~1.6M | ↑↑ +55% | Svelte; ADR dışı |
2026–2027 sektör yönü:
- Marketing/docs: Astro (Cloudflare satın alımı Ocak 2026; islands mimarisi)
- SaaS/dashboard/B2B app: Next.js (RSC, PPR, enterprise default)
- Headless CMS + ayrı frontend: endüstri standardı
- Gatsby: migrate ediliyor
- Hibrit pattern: Astro marketing + Next app (yaygınlaşıyor)
AB/TR iş piyasası: Next + React + TS dominant; Astro dedicated ilan az. RR7 Framework “Remix dev” niş; TanStack Start çok erken.
React Router 7 notu (Remix birleşmesi)
Bölüm başlığı “React Router 7 notu (Remix birleşmesi)”Aralık 2024: Remix v2 → React Router v7 Framework Mode. Tek paket, üç mod:
| Mod | Kullanım |
|---|---|
| Library Mode | SPA (BrowserRouter) — landing için uygun değil |
| Framework Mode | SSR + prerender + loaders — headless CMS consumer |
| Data Mode | Orta katman |
create-react-router@latest ile scaffold. Shopify Hydrogen RR7 kullanıyor. Landing segmentinde Next/Astro baskın; Framework Mode adoption ~1.3M/hafta (@react-router/dev).
3. Meclis tartışması (6 eksen + 3 derin eksen)
Bölüm başlığı “3. Meclis tartışması (6 eksen + 3 derin eksen)”Eksen 1 — npm ve trend (Ajan: npm trend)
Bölüm başlığı “Eksen 1 — npm ve trend (Ajan: npm trend)”Görüş: Landing için büyüme sinyali Astro’da; hacim ve iş gücü Next’te. Meta-framework indirmeleri asıl adoption göstergesi.
Eksen 2 — Laravel Filament Hub uyumu (Ajan: Hub entegrasyon)
Bölüm başlığı “Eksen 2 — Laravel Filament Hub uyumu (Ajan: Hub entegrasyon)”Görüş: Stack bağımsız Hub API (Sanctum token, locale-resolved Spatie JSON, revalidate webhook). Skor: Next trimmed 86/100, Astro 80/100, React SPA 64/100, Inertia 38/100.
Eksen 3 — Çok dil i18n (Ajan: i18n)
Bölüm başlığı “Eksen 3 — Çok dil i18n (Ajan: i18n)”Görüş: reprocar laravel-react-i18n acısından kaçın. Astro native i18n 91/100 (hard <a> nav, prefixDefaultLocale false). next-intl 84/100 (Pro/simulator). Hub API alternates[] + translation_group_id zorunlu.
Eksen 4 — 2026–2031 sürdürülebilirlik (Ajan: projeksiyon)
Bölüm başlığı “Eksen 4 — 2026–2031 sürdürülebilirlik (Ajan: projeksiyon)”Görüş: Kendi marka Next (8/10), müşteri Astro (7.8/10), dual-template (6.5/10), Inertia yeni (4/10). “Boring reliable” üçlü: Laravel Hub + Astro client + Next own-brand.
Eksen 5 — Müşteri teslimi (Ajan: handoff)
Bölüm başlığı “Eksen 5 — Müşteri teslimi (Ajan: handoff)”Görüş: Astro handoff 88/100, Vite SPA 80, Next trimmed 62. Öneri: Astro + paylaşılan @ygt/client-widgets React paketi; Next Pro yalnızca benchmark fallback.
Eksen 6 — SEO ve CWV (Ajan: performans)
Bölüm başlığı “Eksen 6 — SEO ve CWV (Ajan: performans)”Görüş: Astro SSG hybrid CWV 94/100, SEO 92. Next trimmed CWV 82, SEO 90, revalidation ops en düşük. Vite SSR önerilmez.
Meclis oylama özeti (ağırlıklı)
Bölüm başlığı “Meclis oylama özeti (ağırlıklı)”| Aday | Trend | Hub | i18n | 5Y | Handoff | CWV | Ortalama |
|---|---|---|---|---|---|---|---|
| Astro 5 + React islands | 88 | 80 | 91 | 78 | 88 | 94 | 85 |
| Next 16 trimmed | 92 | 86 | 84 | 70 | 62 | 82 | 79 |
| Dual (Astro Lite + Next Pro) | 85 | 83 | 88 | 65 | 75 | 88 | 81 |
| Vite React SPA | 70 | 64 | 58 | 60 | 80 | 72 | 67 |
| Inertia (referans) | 40 | 38 | 45 | 40 | 30 | 55 | 41 |
Derin eksen 7 — React Router 7 Framework Mode (Ajan: RR7)
Bölüm başlığı “Derin eksen 7 — React Router 7 Framework Mode (Ajan: RR7)”Skor toplam: 77/100 | Karar: Reject (fabrika varsayılanı)
| Güçlü | Zayıf |
|---|---|
Route loader → Hub API doğal eşleşme | revalidateTag yok; ADR-002 custom cache (56/100) |
| Tam React; simulator port kolay | ETP ekibi RR7 deneyimi sıfır (54/100 öğrenme) |
| Vite tabanlı; Next’ten ince repo | Full hydrate; CWV Astro’nun altında (79 vs 94) |
| Shopify backing; Remix merge tamam | i18n: Paraglide/Intlayer; next-intl/astro kadar olgun değil (73) |
| PM2 + nginx (reprocar SSR benzeri) | Üçüncü meta-framework; Astro+Next yeterli |
İstisna: reprocar migrate (D-023 freeze) kalkarsa loader mental modeli sürekliliği için secondary değerlendirilebilir.
i18n RR7: prefix(":locale?", routes) + Hub alternates[] → meta(). prefixDefaultLocale: false mümkün. Middleware henüz rewritten Request’i loader’a geçirmiyor (dikkat).
Derin eksen 8 — TanStack Start (Ajan: ek adaylar)
Bölüm başlığı “Derin eksen 8 — TanStack Start (Ajan: ek adaylar)”Skor toplam: 76/100 | Karar: İzleme listesi (üretim şablonu değil)
| Güçlü | Zayıf |
|---|---|
| Full-stack React; loader benzeri pattern | RC/erken 1.x; May 2026 supply-chain olayı |
| Simulator tam React | ISR/tag revalidation yok (Astro gibi DIY) |
| Router hızlı büyüyor | i18n birinci sınıf değil |
| npm hacmi Next/Astro altında |
Rol: BL-001 benchmark’ta Astro island fail → Next yerine opsiyonel üçüncü satır.
Derin eksen 9 — Reddedilen ek adaylar
Bölüm başlığı “Derin eksen 9 — Reddedilen ek adaylar”| Aday | Skor | Red nedeni |
|---|---|---|
| RR7 Library + Vite SSR | 61 | Standart fabrika yok; ADR Vite SPA (67) kötüleşmiş hali |
| Nuxt 4 | 83* | Vue; React zorunlu; @ygt/client-widgets uyumsuz |
| SvelteKit | 81* | Svelte; aynı neden |
| Gatsby | ~25 | Ölü trend |
*React şartı olmasaydı güçlü; ADR-001 kapsamı dışı.
Genişletilmiş meclis sıralaması (11 aday)
Bölüm başlığı “Genişletilmiş meclis sıralaması (11 aday)”| Sıra | Aday | Toplam | Fabrika rolü |
|---|---|---|---|
| 1 | Astro 5 + React islands | 86.0 | Primary |
| 2 | Dual-template | 82.1 | Opsiyonel (bakım maliyeti) |
| 3 | Next 16 trimmed | 80.4 | Secondary (Pro fallback) |
| 4 | RR7 Framework Mode | 77.0 | Reject |
| 5 | TanStack Start | 76.0 | İzleme |
| 6 | Vite React SPA | 66.8 | Reject |
| 7 | RR7 Library + SSR | 61.0 | Reject |
| 8 | Inertia | 41.0 | Reject (freeze referans) |
4. 100 üzerinden kapsamlı puanlama (genişletilmiş)
Bölüm başlığı “4. 100 üzerinden kapsamlı puanlama (genişletilmiş)”Ağırlıklar müşteri landing fabrikası için kalibre edildi (SEO ağır, satış hızı, teslim, Filament uyumu).
| Kriter | Ağırlık | Astro | Next | RR7 FW | TanStack | Dual | Vite SPA |
|---|---|---|---|---|---|---|---|
| SEO | 15% | 92 | 90 | 85 | 84 | 91 | 78 |
| Core Web Vitals | 15% | 94 | 82 | 79 | 86 | 88 | 72 |
| Laravel Hub API uyumu | 12% | 80 | 86 | 83 | 78 | 83 | 64 |
| Çok dil (1–3 locale) | 12% | 91 | 84 | 73 | 66 | 88 | 58 |
| ADR-002 revalidation | 10% | 68 | 92 | 56 | 70 | 80 | 45 |
| Müşteri teslimi (R6) | 10% | 88 | 62 | 69 | 70 | 75 | 80 |
| Satış hızı | 8% | 90 | 70 | 65 | 72 | 78 | 75 |
| Ekip öğrenilebilirlik | 8% | 72 | 92 | 54 | 78 | 78 | 55 |
| Deploy/ops maliyeti | 5% | 88 | 65 | 63 | 68 | 72 | 70 |
| 5 yıl sürdürülebilirlik | 5% | 78 | 70 | 77 | 62 | 65 | 60 |
| npm/trend / iş gücü | 5% | 75 | 92 | 78 | 70 | 84 | 70 |
| Simulator / Pro | 5% | 78 | 88 | 83 | 88 | 85 | 75 |
| TOPLAM | 100% | 86.0 | 80.4 | 77.0 | 76.0 | 82.1 | 66.8 |
Kriter notları
Bölüm başlığı “Kriter notları”RR7 Framework (77.0): Loader pattern güçlü ama ADR-002 ve ekip öğrenme fabrika için engel. Next’in arasında skor alıyor, hiçbir eksende birinci değil.
TanStack Start (76.0): RR7 ile örtüşür; RC riski. Benchmark izleme listesi.
Dual-template (82.1): En dengeli “doğru işe doğru araç” ama iki starter bakımı.
5. Laravel + PostgreSQL + Filament adaptasyonu
Bölüm başlığı “5. Laravel + PostgreSQL + Filament adaptasyonu”| Entegrasyon noktası | Tüm stack’lerde ortak |
|---|---|
| İçerik kaynağı | Filament Resource → Hub PostgreSQL (site scoped) |
| API | REST GET /api/v1/sites/{slug}/*?locale= |
| Spatie JSON | Hub Resource locale-resolved flat string döner |
| Auth | HUB_SITE_TOKEN server-side only (landing ENV) |
| Revalidate | Filament observer → POST landing /api/revalidate |
| Admin deploy | PHP-FPM admin.{domain} |
| Landing deploy | Astro static/nginx veya PM2 Node |
En rahat adaptasyon: Hub API sözleşmesi stack’ten bağımsız. Filament tarafı değişmez; consumer seçimi Astro vs Next.
i18n için Hub zorunlu alanlar:
alternates[](hreflang)translation_group_id(blog)locale_switcher[](hard nav paths)default_locale+prefix_default_locale: false
6. React kullanımı (kesin karar)
Bölüm başlığı “6. React kullanımı (kesin karar)”| Stack | React nasıl? |
|---|---|
| Astro (önerilen) | @astrojs/react islands: client:load / client:visible; simulator, carousel, form |
| Next trimmed | RSC shell + "use client" bileşenler; ETP components/landing/ extract |
| RR7 Framework | Route modules + loader; tam React hydrate |
| TanStack Start | Route loaders + server functions |
| Paylaşılan paket | @ygt/client-widgets (Vehicle cascade, charts) — framework agnostic props |
react-i18next: Site geneli için önerilmez (routing yok, reprocar acısına yakın). Island içi lokal string için sınırlı kullanım OK.
7. Öneri (meclis çoğunluğu)
Bölüm başlığı “7. Öneri (meclis çoğunluğu)”Birincil öneri: Astro 5 + React islands + Hub API
Bölüm başlığı “Birincil öneri: Astro 5 + React islands + Hub API”Toplam skor: 86/100
| Şablon | Kullanım |
|---|---|
| Client Standard | kfzservice24, basit müşteriler |
| Client Pro | Aynı Astro repo + @ygt/client-widgets (simulator) |
Gerekçe: En yüksek CWV/SEO/teslim; Laravel Hub ile temiz ayrım; npm trend landing segmentinde Astro; React islands ile “basit kalır” endişesi giderilir.
İkincil (fallback): Next 16 trimmed
Bölüm başlığı “İkincil (fallback): Next 16 trimmed”Benchmark’ta Astro revalidation p95 > 5 sn veya simulator island yetersiz kalırsa yalnızca Client Pro.
Reddedilen / izleme
Bölüm başlığı “Reddedilen / izleme”- Inertia (yeni)
- Vite SPA, RR7 Library+SSR (birincil)
- RR7 Framework Mode (77/100) — fabrika default reject
- TanStack Start (76/100) — izleme listesi, BL-001 opsiyonel
- Nuxt/SvelteKit — React şartı dışı
- Dual-template varsayılan (bakım maliyeti)
Karar hiyerarşisi (güncel)
Bölüm başlığı “Karar hiyerarşisi (güncel)”| Sıra | Stack | Skor | Rol |
|---|---|---|---|
| 1 | Astro 5 + React islands | 86 | Primary |
| 2 | Next 16 trimmed | 80 | Secondary (Pro / revalidation fallback) |
| — | RR7 Framework | 77 | Reject |
| — | TanStack Start | 76 | İzleme |
| — | Dual-template | 82 | Opsiyonel (iki starter maliyeti) |
8. Açık riskler ve backlog
Bölüm başlığı “8. Açık riskler ve backlog”| ID | Risk | Mitigasyon |
|---|---|---|
| BL-001 | Astro revalidation kanıtı yok | Sentetik benchmark öncelik |
| BL-004 | Hub OpenAPI yok | Filament MVP ile paralel |
| BL-007 | ADR-002 Astro adapter | POST /api/revalidate Astro endpoint |
| BL-016 | Umami + Vitals Astro port | tunerstack landing kanıtı; @ygt/landing-analytics |
| BL-013 | HANDOFF spec (local content mode) | Stack seçiminden bağımsız yaz |
9. Benchmark doğrulama planı (BL-001)
Bölüm başlığı “9. Benchmark doğrulama planı (BL-001)”- Hub mock API (config, homepage, blog + alternates)
- Astro Standard + Next trimmed aynı mock
- Ölç: LCP p75, JS KB, build süresi, revalidation p50/p95, simulator mini
- Umami event + Vitals POST parity (ETP ile aynı payload)
- Stajyer 4 saat “yeni section” testi
- Skorları güncelle → ADR-001 v1.0.0 kilitle
Tetikleyici: İlk yeni müşteri satışı (D-018); reprocar freeze (D-023).
10. Karar matrisi (operatör onayı: 2026-06-16)
Bölüm başlığı “10. Karar matrisi (operatör onayı: 2026-06-16)”| Seçenek | 100 skor | Operatör onayı |
|---|---|---|
| A) Astro tek stack | 86 | ☑ Onaylı |
| B) Next trimmed tek stack | 80 | ☐ Red |
| C) Dual Astro + Next Pro | 82 | ☐ Red |
| E) RR7 Framework Mode | 77 | ☐ Reject |
| F) TanStack Start | 76 | ☐ İzleme |
| D) BL-001 tam kilit | — | ☐ Benchmark bekliyor |
11. ETP üretim kanıtı: Umami, RUM, Astro taşınabilirlik
Bölüm başlığı “11. ETP üretim kanıtı: Umami, RUM, Astro taşınabilirlik”Kaynak: ecutuningportal.com/httpdocs kod denetimi (2026-06-16). Amaç: “Next’te çalışan özellik Astro’da kaybolur mu?” sorusunu dosya düzeyinde yanıtlamak.
11.1 Umami (framework bağımsız)
Bölüm başlığı “11.1 Umami (framework bağımsız)”| Bileşen | Dosya | Next bağımlılığı |
|---|---|---|
| Script yükleme | components/landing/shell/LandingAnalyticsScripts.tsx | Yalnızca next/script lazyOnload; script tag ile değişir |
| Bot guard | Aynı dosya, inline UMAMI_BOT_GUARD_SCRIPT | Yok |
| CRM tracking | lib/landing/analytics/analytics.ts (~740 satır) | Yok (saf browser JS) |
| Session init | components/landing/shell/AnalyticsProvider.tsx | usePathname (SPA nav); Astro MPA’da gereksiz |
Umami instance: https://analytics.ygtlabs.ai/script.js?v=3. data-website-id, data-tag={locale}, data-before-send="ecpBeforeSend" Astro layout’ta birebir taşınır.
Astro port: @ygt/landing-analytics paketi; AnalyticsProvider React island client:load; BaseLayout.astro içinde defer script.
11.2 RUM / Web Vitals (framework bağımsız)
Bölüm başlığı “11.2 RUM / Web Vitals (framework bağımsız)”| Bileşen | Dosya | Next bağımlılığı |
|---|---|---|
| Client ölçüm | components/landing/shell/VitalsReporter.tsx | usePathname; MPA’da her load yeterli |
| Paket | web-vitals ^5.2.0 (package.json) | Yok |
| API | app/api/vitals/route.ts | NextRequest; Astro export const POST ile aynı mantık |
| DB | prisma/schema.prisma model WebVital | ORM değil; PostgreSQL tablosu Hub’da |
| Admin UI | components/admin/performance/AdminPerformancePage.tsx | Filament Resource/widget hedefi (BL-016) |
Outlier guard (30 sn) client + server tarafında mevcut; taşınır.
11.3 Next’e özgü landing parçaları (migrate listesi)
Bölüm başlığı “11.3 Next’e özgü landing parçaları (migrate listesi)”| Parça | Dosya sayısı | Astro / Hub alternatifi |
|---|---|---|
| Landing API | 15 route (app/api/landing/*) | Astro server endpoint veya Hub Laravel API |
| Cache invalidation | app/api/revalidate/route.ts | Hub webhook + Astro cache purge (BL-007) |
| OG image | lib/landing/seo/og-image.tsx (next/og) | Satori veya statik OG |
| i18n routing | next-intl | astro-i18n; messages/landing/*.json taşınır |
11.4 Sunucu referans karşılaştırması
Bölüm başlığı “11.4 Sunucu referans karşılaştırması”| Proje | Stack | Umami | Vitals RUM | Kanıt |
|---|---|---|---|---|
| ETP | Next 16 | Var | Var | Prod |
| tunerstack.io landing | Astro 5 SSR | Yok | Yok | PM2 :4321; BL-016 hedefi |
tunerstack Astro şablonu Umami/Vitals eklenince “Astro yetersiz” argümanı kapanır.
11.5 Skor etkisi
Bölüm başlığı “11.5 Skor etkisi”Umami ve RUM Astro’da kayıp yaratmaz; Astro’nun CWV üstünlüğü (94 vs 82) RUM hedefleriyle uyumlu. Next trimmed’in tek net üstünlüğü revalidateTag (ADR-002); benchmark ile Astro webhook doğrulanacak (BL-001).
Operatör sinyali (oturum 11): Landing için Next tercih edilmiyor. Bu ARGE kapsamı müşteri landing; kendi marka revizyonu ayrı OD (CONSTITUTION D-007).
12. ARGE tamamlanma denetimi ve BL-001 kabul kriterleri
Bölüm başlığı “12. ARGE tamamlanma denetimi ve BL-001 kabul kriterleri”12.1 Goal çıktı eşlemesi
Bölüm başlığı “12.1 Goal çıktı eşlemesi”| Goal kriteri | Doküman bölümü | Durum |
|---|---|---|
| npm trendleri (Haziran 2026) | §2 | Tamam |
| Laravel + Filament + PostgreSQL uyumu | §3, §5, Hub API | Tamam |
| Çok dil (1-3 locale) | §4 i18n satırı, §7 | Tamam |
| React kesin | §1, §6 | Tamam |
| 100 üzerinden puanlama | §4 (13 kriter, 11 aday) | Tamam |
| Öneri | §7 (Astro 86 primary) | Tamam |
Verify: ADR-001-RESEARCH.md + 100 | Bu dosya | Tamam |
12.2 Goal sonrası kapılar (ARGE çıktısı değil)
Bölüm başlığı “12.2 Goal sonrası kapılar (ARGE çıktısı değil)”| Kapı | ID | Bloker |
|---|---|---|
| Sentetik benchmark çalıştırma | BL-001 | Uygulama |
| Operatör stack onayı | OD-002 | İnsan kararı |
| Umami/Vitals Astro kanıtı | BL-016 | tunerstack port |
12.3 BL-001 ölçüm senaryoları
Bölüm başlığı “12.3 BL-001 ölçüm senaryoları”Ortam: sentetik demo site + Hub mock API (D-003). Her stack için aynı içerik seti.
| # | Senaryo | Sayfa |
|---|---|---|
| S1 | Homepage | slider + services + FAQ |
| S2 | Blog | liste + detay |
| S3 | Locale switch | / ↔ /tr |
| S4 | Revalidation | Hub webhook → görünür güncelleme |
| S5 | Simulator mini | vehicle cascade mock (reprocar tipi) |
| S6 | Analytics parity | Umami pageview + Vitals POST 201 |
Katılımcılar: Astro 5 + React islands (birincil), Next 16 trimmed (karşılaştırma). TanStack Start opsiyonel (BL-015).
12.4 BL-001 kabul eşikleri (pass/fail)
Bölüm başlığı “12.4 BL-001 kabul eşikleri (pass/fail)”| Metrik | Astro geçiş | Next referans | Kaynak |
|---|---|---|---|
| Revalidation p95 | ≤ 5000 ms | ≤ 3000 ms | ADR-002 SLA |
| Revalidation p50 | ≤ 3000 ms | ≤ 1500 ms | ADR-002 SLA |
| LCP p75 (mobile, lab) | ≤ 2500 ms | ölçüm kaydı | web.dev CWV |
| Homepage JS (gzip) | ≤ 120 KB | ölçüm kaydı | bundle analyzer |
| Build süresi (cold) | ≤ 180 s | ölçüm kaydı | CI log |
| Simulator TTI | ≤ 4000 ms | ölçüm kaydı | Lighthouse |
| Stajyer 4h section | Tamamlanır | Tamamlanır | BL-001 |
| Vitals POST | 201 + valid payload | 201 | ETP parity |
| Umami event | pageview + locale tag | pageview | BL-016 |
Astro fail koşulları (D-028: Next fallback yok; benchmark tekrar):
- S4 revalidation p95 > 5000 ms (3 deneme ortalaması)
- S5 simulator TTI > 4000 ms veya island hydrate hatası
- S6 analytics parity başarısız
Fail durumunda: Astro webhook/cache iyileştirme tekrar; Next fallback yok (D-028).
12.5 Benchmark sonrası skor güncelleme
Bölüm başlığı “12.5 Benchmark sonrası skor güncelleme”BL-001 tamamlanınca §4 tablosunda şu satırlar güncellenir:
- ADR-002 revalidation (Astro): benchmark ölçümüne göre 68 → hedef 75+
- Simulator / Pro (Astro): ölçüme göre 78 → hedef 85+
ADR-001 landing-frontend-stack.md durumu Accepted olur; OD-002 kapanır.
13. İzole jüri oturumu (2026-06-16)
Bölüm başlığı “13. İzole jüri oturumu (2026-06-16)”8 savunucu + 3 jüri üyesi; her ajan izole (Composer 2.5). Savunucular birbirini, jüri üyeleri birbirinin oyunu görmedi.
13.1 Savunucu katılımcılar
Bölüm başlığı “13.1 Savunucu katılımcılar”| Seçenek | Skor | Savunma özeti |
|---|---|---|
| Astro 5 + islands | 86 | CWV, i18n, teslim, tunerstack kanıtı |
| Dual-template | 82.1 | Lite/Pro segmentasyon |
| Next trimmed | 80.4 | revalidateTag, ETP prod kanıtı |
| RR7 Framework | 77 | loader→Hub, tam React |
| TanStack Start | 76 | Pro tam React, RC riski |
| Vite SPA | 66.8 | en temiz handoff |
| Inertia | 41 | reprocar canlı referans |
| RR7 Library+SSR | 61 | minimal meta-framework |
13.2 Jüri oyları (3/3 oybirliği)
Bölüm başlığı “13.2 Jüri oyları (3/3 oybirliği)”| Jüri rolü | Birincil | Güven |
|---|---|---|
| Senior Architect | Astro tek stack | 7/10 |
| PM/PdM | Astro tek stack (A) | 8/10 |
| QA/Performance | Koşullu Astro; ADR Accepted BL-001 sonrası | 7/10 |
13.3 Nihai jüri kararı
Bölüm başlığı “13.3 Nihai jüri kararı”| Karar | İçerik |
|---|---|
| Birincil | Astro 5 + React islands + Hub Content API |
| Standard | Astro + Hub API (kfzservice24 tipi) |
| Pro | Aynı Astro repo + @ygt/client-widgets islands |
| Fallback | |
| Red | Inertia, Vite SPA, RR7 FW, RR7 Lib, TanStack üretim, Next tek stack, Dual varsayılan |
| Kilit | Yön şimdi; ADR Accepted → BL-001 pass sonrası |
Operatör onay cümlesi (PM jüri): Müşteri landing fabrikasını Astro 5 + React islands olarak kilitle; Standard ve Pro aynı starter; BL-001 geçene kadar Next yalnızca gizli Pro fallback.
Revizyon
Bölüm başlığı “Revizyon”| Versiyon | Tarih | Değişiklik |
|---|---|---|
| 1.0.0 | 2026-06-16 | 6 eksen meclis ARGE, 100 skor, öneri Astro |
| 1.1.0 | 2026-06-16 | RR7, TanStack Start, Nuxt/SvelteKit derin ARGE; genişletilmiş skor tablosu |
| 1.2.0 | 2026-06-16 | Bölüm 11: ETP Umami/RUM kanıt denetimi, Astro taşınabilirlik, BL-016 |
| 1.3.0 | 2026-06-16 | Bölüm 12: goal denetimi, BL-001 kabul eşikleri |
| 1.4.0 | 2026-06-16 | Bölüm 13: izole jüri oturumu, oybirliği Astro |
| 1.5.0 | 2026-06-16 | Operatör Seçenek A onayı (D-024) |
Kaynaklar
Bölüm başlığı “Kaynaklar”- PkgPulse npm trends 2026
- React Router v7 modes
- React Router rendering
- Remix merge blog
- Paraglide + RR7
- Astro vs Next vs Remix 2026
- Strapi + RR7 headless
- Sunucu kanıt:
tunerstack.io/httpdocs(Astro),ecutuningportal.com/httpdocs(Next) - Mimari:
docs/architecture/products/04-site-hub-cms.md