import { KEYS_17, dynamicKeys } from "@/lib/keys"; import { Button, Input, Separator } from "@sase/ui"; import { Link, createFileRoute, useNavigate } from "@tanstack/react-router"; import { ArrowRight, Car, CheckCircle2, ChevronRight, Database, FolderTree, Gift, Hash, Loader2, Menu, MessageCircle, Moon, MousePointerClick, Puzzle, Search, ShieldCheck, ShoppingCart, Sun, Tag, Wrench, X, Zap, } from "lucide-react"; import { Suspense, lazy, useEffect, useRef, useState } from "react"; // Remotion — lazy loaded to keep initial bundle lean const RemotionSchemaPlayer = lazy(() => Promise.all([import("@remotion/player"), import("@/remotion/SchemaDemo")]).then( ([{ Player }, { SchemaDemo }]) => ({ default: ({ isDark }: { isDark: boolean }) => ( ), }), ), ); const RemotionDashboardPlayer = lazy(() => Promise.all([import("@remotion/player"), import("@/remotion/DashboardDemo")]).then( ([{ Player }, { DashboardDemo }]) => ({ default: ({ isDark }: { isDark: boolean }) => ( ), }), ), ); const RemotionEcommercePlayer = lazy(() => Promise.all([import("@remotion/player"), import("@/remotion/EcommerceDemo")]).then( ([{ Player }, { EcommerceDemo }]) => ({ default: ({ isDark }: { isDark: boolean }) => ( ), }), ), ); import { useAuth } from "@/hooks/use-auth"; import { usePageMeta } from "@/hooks/use-page-meta"; import { ApiError, api } from "@/lib/api-client"; import { capture } from "@/lib/posthog"; import { toast } from "@/lib/toast"; import { getUserSettings, setUserSetting } from "@/lib/user-settings"; import { useAuthStore } from "@/stores/auth.store"; // ─── DATA ──────────────────────────────────────────────────────────────────── const BRANDS = [ "BMW", "Mercedes-Benz", "Audi", "VW", "Fiat", "Renault", "Peugeot", "Citroen", "Toyota", "Honda", "Hyundai", "Kia", "Ford", "Opel", "Skoda", "Seat", "Volvo", "Nissan", "Mazda", "Porsche", "Land Rover", "Jaguar", "Mini", "Dacia", "Subaru", "Suzuki", "Mitsubishi", ]; const FEATURES = [ { icon: Search, title: "Şase Çözme", description: "Müşteri araç bilgisini tam bilmiyor mu? Şase numarasını girin — marka, model, motor, donanım saniyeler içinde karşınızda.", bullets: [ "Marka, model ve yıl tespiti", "Motor ve şanzıman detayları", "Donanım paketi bilgileri", ], mockupTitle: "Şase Çözme — Araç Bilgileri", mockupContent: (
WVWZZZ1JZ3W597935
{[ ["Marka", "Volkswagen"], ["Model", "Golf"], ["Yıl", "2003"], ["Motor", "1.6 FSI"], ["Kasa", "Hatchback"], ].map(([k, v]) => (
{k} {v}
))}
), }, { icon: MousePointerClick, title: "İnteraktif Şema", description: "Parça kataloglarında kaybolmak yerine, tıklanabilir diyagramlarda parçayı görsel olarak bulun.", bullets: ["Tıklanabilir parça diyagramları", "Zoom & pan navigasyon", "Alt kategori derinliği"], mockupTitle: "İnteraktif Şema — Motor Bölgesi", mockupContent: (isDark: boolean) => ( Yükleniyor… } > ), }, { icon: Database, title: "OEM Parça Numaraları", description: "Birden fazla katalogda çapraz sorgulama yaparak her zaman en güncel ve doğru OEM kodlarını sunar — yanlış parça, iade derdi tarih olur.", bullets: [ "Çoklu katalog çapraz sorgulama", "Her zaman güncel OEM kodları", "Fiyat karşılaştırma", ], mockupTitle: "OEM Katalog — Parça Listesi", mockupContent: (
{[ { code: "1J0 820 803F", name: "Klima Kompresörü", qty: 1 }, { code: "1J0 819 031A", name: "Kalorifer Motoru", qty: 1 }, { code: "1J0 698 151G", name: "Ön Fren Balatası", qty: 4 }, ].map((p) => (
{p.code} {p.name}
×{p.qty}
))}
), }, ]; const USE_CASES = [ { icon: Search, title: "Yedek Parça Arama", description: "Şase numarası ile araç modelinize uygun orijinal parçaları anında bulun.", }, { icon: Tag, title: "Orijinal Parça Numarası", description: "OEM parça kodlarına erişerek doğru parçayı ilk seferde sipariş edin.", }, { icon: Car, title: "Araç Tanımlama", description: "Şase çözme ile aracın tüm teknik detaylarını ve donanım bilgilerini öğrenin.", }, { icon: ShieldCheck, title: "Çıkma Parça Doğrulama", description: "OEM kodlarıyla çıkma parçaların orijinalliğini ve uyumluluğunu kontrol edin.", }, { icon: Wrench, title: "Servis & Bakım", description: "Bakım planlarına uygun parça listeleriyle servis süreçlerini hızlandırın.", }, ]; const BENTO_ITEMS = [ { icon: Search, title: "Şase Girin", description: "17 haneli şase numarasını girin, araç anında tanımlansın.", stat: "<2sn", wide: true, }, { icon: Car, title: "27+ Marka", description: "Avrupa, Asya ve Amerikan markaları tek çatı altında.", stat: null, wide: false, }, { icon: FolderTree, title: "Kategorileri Seçin", description: "Motor, şasi, elektrik... İstediğiniz parça kategorisine dalın.", stat: null, wide: false, }, { icon: MousePointerClick, title: "Şema İnceleyin", description: "İnteraktif teknik diyagramlarda parça konumlarını görsel olarak keşfedin.", stat: null, wide: true, }, { icon: Hash, title: "OEM Kod Alın", description: "Orijinal üretici parça numarasını kopyalayın, siparişe hazır olun.", stat: null, wide: true, }, { icon: ShoppingCart, title: "Sipariş Verin", description: "Doğru parça numarasıyla tedarikçilere hızlıca sipariş oluşturun.", stat: null, wide: false, }, ]; const STATS = [ { value: "1.2sn", label: "Ortalama sorgu süresi" }, { value: "27", label: "Desteklenen marka" }, { value: "243K+", label: "OEM parça numarası" }, { value: "%99.9", label: "Platform erişilebilirlik" }, ]; const COMPARISON = [ { label: "Parça arama süresi", manual: "~15 dakika", sase: "30 saniye" }, { label: "Yanlış parça riski", manual: "Yüksek", sase: "Sıfıra yakın" }, { label: "OEM kodu bulma", manual: "Tek katalog, güncel olmayabilir", sase: "Çoklu katalog çapraz sorgu", }, { label: "Fiyat karşılaştırma", manual: "İmkansız", sase: "Tek ekranda" }, { label: "Aylık zaman tasarrufu", manual: "—", sase: "~40 saat" }, ]; const TESTIMONIALS = [ { name: "Ahmet Y.", role: "Yedek Parça Mağazası Sahibi", initials: "AY", text: "Eskiden bir parça aramak için 3-4 katalog açıyordum. Sase.tr ile şase numarasını giriyorum, 30 saniyede doğru OEM kodunu buluyorum. İade oranımız %80 düştü.", rating: 5, }, { name: "Mehmet K.", role: "Oto Servis İşletmecisi", initials: "MK", text: "Sase.tr'ye geçtiğimizden beri yanlış parça siparişlerimiz neredeyse sıfıra indi. Aylık 40 saatin üzerinde zaman tasarrufu sağlıyoruz.", rating: 5, }, { name: "Özge D.", role: "E-Ticaret Yöneticisi", initials: "ÖD", text: "Online mağazamıza VIN entegrasyonu ekledik. Müşteriler şase numarasını giriyor, sadece uyumlu parçalar listeleniyor. İade oranımız %42 düştü.", rating: 5, }, { name: "Burak T.", role: "Filo Yöneticisi", initials: "BT", text: "200+ araçlık filomuz için parça yönetimi çok kolay hale geldi. Özellikle interaktif şema özelliği montaj sürecini çok hızlandırıyor.", rating: 5, }, ]; // ─── HELPERS ───────────────────────────────────────────────────────────────── function SectionBadge({ children }: { children: React.ReactNode }) { return ( {children} ); } function BrowserFrame({ title, children, }: { title: string; children: React.ReactNode; }) { return (
{title}
{children}
); } // ─── ROUTE ─────────────────────────────────────────────────────────────────── export const Route = createFileRoute("/")({ component: HomePage, }); export function HomePage() { usePageMeta({ title: "Şase Numarası Sorgulama & OEM Parça Kataloğu | Sase.tr", description: "Araç şase numarasını (VIN) girin, saniyeler içinde OEM parça kodlarına ulaşın. 27+ marka, 243.000+ parça. Yanlış sipariş yapmadan doğru parçayı bulun.", canonical: "https://sase.tr", }); useEffect(() => { const schemas = [ { "@context": "https://schema.org", "@type": "Organization", name: "Sase.tr", url: "https://sase.tr", email: "info@sase.tr", description: "Türkiye'nin VIN/şase numarası sorgulama ve OEM yedek parça kataloğu platformu.", }, { "@context": "https://schema.org", "@type": "SoftwareApplication", name: "Sase.tr", applicationCategory: "BusinessApplication", operatingSystem: "Web", offers: { "@type": "Offer", price: "200", priceCurrency: "TRY", }, description: "Araç şase numarası ile OEM yedek parça sorgulama platformu.", }, ]; const scripts = schemas.map((schema) => { const el = document.createElement("script"); el.type = "application/ld+json"; el.textContent = JSON.stringify(schema); el.dataset.seoSchema = "true"; document.head.appendChild(el); return el; }); return () => { for (const el of scripts) el.remove(); }; }, []); const navigate = useNavigate(); const { isAuthenticated } = useAuth(); const [vin, setVin] = useState(""); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [isDark, setIsDark] = useState(() => { const theme = getUserSettings().theme ?? "dark"; if (theme === "system") { return window.matchMedia("(prefers-color-scheme: dark)").matches; } return theme === "dark"; }); const [vinPreview, setVinPreview] = useState<{ make: string; model: string; year: string; engine: string; } | null>(null); const [vinLoading, setVinLoading] = useState(false); const [vinError, setVinError] = useState(false); const [decodeLoading, setDecodeLoading] = useState(false); const toggleTheme = () => { const next = isDark ? "light" : "dark"; document.documentElement.classList.toggle("dark", next === "dark"); setUserSetting("theme", next); setIsDark(next === "dark"); }; // VIN preview via backend (pl24 + emex) useEffect(() => { if (vin.length !== 17) { setVinPreview(null); setVinError(false); return; } const controller = new AbortController(); setVinLoading(true); setVinError(false); fetch(`/api/vehicles/preview/${vin}`, { signal: controller.signal }) .then((res) => { if (!res.ok) throw new Error("Bulunamadı"); return res.json(); }) .then((data) => { const r = data.data !== undefined ? data.data : data; if (r?.brandName) { setVinPreview({ make: r.brandName, model: r.model || "—", year: r.year ? String(r.year) : "—", engine: r.engine || "—", }); } else { setVinError(true); } setVinLoading(false); }) .catch((err) => { if (err.name !== "AbortError") { setVinError(true); setVinLoading(false); } }); return () => controller.abort(); }, [vin]); const handleVinSearch = async () => { const trimmed = vin.trim(); if (!trimmed) return; // Read latest auth state directly from store (avoids stale closure) const { user, isLoading } = useAuthStore.getState(); // If session still loading, wait for it to resolve if (isLoading) { setDecodeLoading(true); await new Promise((resolve) => { const unsub = useAuthStore.subscribe((state) => { if (!state.isLoading) { unsub(); resolve(); } }); }); } const loggedIn = !!useAuthStore.getState().user; if (!loggedIn) { setDecodeLoading(false); navigate({ to: "/register", search: { vin: trimmed } }); return; } setDecodeLoading(true); try { const vehicle = await api.post<{ id: string }>("/vehicles/decode", { vin: trimmed }); capture("vin_decode_success", { vin: trimmed, source: "landing", vehicle_id: vehicle.id }); navigate({ to: "/dashboard/vehicles/$id", params: { id: vehicle.id } }); } catch (err) { const message = err instanceof ApiError ? err.message : "Bir hata oluştu. Lütfen tekrar deneyin."; capture("vin_decode_error", { vin: trimmed, source: "landing", error: message }); if (err instanceof ApiError) { if (err.status === 403) { toast.error(message); navigate({ to: "/dashboard/subscription" }); } else if (err.status === 400) { toast.error(message); } else { toast.error(message); } } else { toast.error(message); } } finally { setDecodeLoading(false); } }; const fillExampleVin = () => { setVin("WVWZZZ1JZ3W597935"); }; // ─── Social proof impression tracking ──────────────────────────────────── const heroBadgeRef = useRef(null); const testimonialStripRef = useRef(null); const testimonialsRef = useRef(null); const heroBadgeFiredRef = useRef(false); const testimonialStripFiredRef = useRef(false); const testimonialsFiredRef = useRef(false); useEffect(() => { const el = heroBadgeRef.current; if (!el) return; const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting && !heroBadgeFiredRef.current) { heroBadgeFiredRef.current = true; capture("social_proof_impression", { page: "landing", section: "hero_badge" }); } }, { threshold: 0.5 }, ); observer.observe(el); return () => observer.disconnect(); }, []); useEffect(() => { const el = testimonialStripRef.current; if (!el) return; const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting && !testimonialStripFiredRef.current) { testimonialStripFiredRef.current = true; capture("social_proof_impression", { page: "landing", section: "testimonial_strip" }); } }, { threshold: 0.5 }, ); observer.observe(el); return () => observer.disconnect(); }, []); useEffect(() => { const el = testimonialsRef.current; if (!el) return; const observer = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting && !testimonialsFiredRef.current) { testimonialsFiredRef.current = true; capture("social_proof_impression", { page: "landing", section: "testimonials" }); } }, { threshold: 0.5 }, ); observer.observe(el); return () => observer.disconnect(); }, []); function handleSocialProofEngaged(section: string) { capture("social_proof_engaged", { page: "landing", section }); } return (
{/* ─── 1. STICKY HEADER ─────────────────────────────────────────── */}
SASE {/* Desktop nav */}
{isAuthenticated ? ( ) : ( <> )}
{/* Mobile toggle */}
{/* Mobile menu */} {mobileMenuOpen && (
)}
{/* ─── 2. HERO SECTION ──────────────────────────────────────────── */}
{/* Decorative glow */}
{/* Pill badge — loss framing */}
Her yanlış parça siparişi ortalama 450 TL'ye mal olur
{/* Social proof badge */}
handleSocialProofEngaged("hero_badge")} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); handleSocialProofEngaged("hero_badge"); } }} className="mt-3 inline-flex cursor-pointer items-center gap-3 rounded-full border border-border bg-muted px-4 py-1.5 text-xs text-muted-foreground" >
{["AY", "MK", "ÖD", "BT"].map((initials) => (
{initials}
))}
⭐ 4.9/5 500+ İşletme Güveniyor

Doğru Parçayı Anında Bulun

Birden fazla katalogda çapraz sorgulama ile her zaman en güncel OEM kodları. Şase numarasını girin, doğru parçayı ilk seferde gönderin.

{/* VIN Input */}
setVin(e.target.value.toUpperCase())} placeholder="Örnek: WVWZZZ1JZ3W597935" maxLength={17} className="h-12 rounded-full border-border bg-muted pl-12 pr-4 font-mono text-sm text-foreground placeholder:text-muted-foreground/70 focus-visible:ring-ring sm:h-14 sm:text-base" onKeyDown={(e) => e.key === "Enter" && handleVinSearch()} />
{/* VIN Progress Bar */}
{KEYS_17.map((k, i) => (
))}
{/* VIN Preview Card */} {vinLoading && (
Araç bilgileri alınıyor...
)} {vinPreview && !vinLoading && (
{vinPreview.make} {vinPreview.model} {vinPreview.year} {vinPreview.engine !== "—" && ( {vinPreview.engine} )}
)} {vinError && !vinLoading && (
Şase bilgisi bulunamadı. Lütfen kontrol edip tekrar deneyin.
)} {/* Example VIN invite */}

Şase numaranız yok mu?{" "}

{/* Metric badges */}
{[ { icon: Zap, label: "Ortalama 1.2sn Sonuç" }, { icon: Car, label: "27 Marka Desteği" }, { icon: Database, label: "243.000+ OEM Parça" }, ].map(({ icon: Icon, label }) => (
{label}
))}
{/* ─── 3. MARKA CAROUSEL ────────────────────────────────────────── */}

Desteklenen 27+ Otomobil Markası

{/* Gradient overlays */}
{[...BRANDS.map((b) => `${b}::a`), ...BRANDS.map((b) => `${b}::b`)].map((id) => ( {id.split("::")[0]} ))}
{/* ─── 3.5. TESTIMONIAL STRIP ────────────────────────────────── */}

Kullanıcılarımız ne diyor?

{[ { text: "Sase.tr ile yanlış parça siparişlerimiz %80 azaldı. Artık gönül rahatlığıyla sipariş veriyoruz.", name: "Ahmet Y.", role: "Yedek Parça Mağazası", }, { text: "Ayda 40 saatten fazla zaman kazanıyoruz. Şase numarasını girip anında doğru koda ulaşmak inanılmaz.", name: "Mehmet K.", role: "Oto Servis İşletmecisi", }, { text: "Online mağazamıza entegre ettik, iade oranımız yarıya düştü. Müşteri memnuniyeti gözle görülür arttı.", name: "Özge D.", role: "E-Ticaret Yöneticisi", }, ].map((t) => (
handleSocialProofEngaged("testimonial_strip")} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); handleSocialProofEngaged("testimonial_strip"); } }} className="cursor-pointer rounded-2xl border border-border bg-surface px-6 py-5 transition-all duration-300 hover:-translate-y-0.5 hover:border-foreground/10" >
{dynamicKeys(5).map((k) => ( ))}

“{t.text}”

{t.name} — {t.role}

))}
{/* ─── 4. ÇÖZÜMLER / ÖZELLİKLER ────────────────────────────────── */}
Çözümlerimiz

Şase Çözme & Parça Kataloğu

Araç tanımlamadan parça siparişine kadar tüm süreç tek platformda.

{FEATURES.map((feature, idx) => { const reversed = idx === 1; const Icon = feature.icon; return (
{/* Text */}

{feature.title}

{feature.description}

    {feature.bullets.map((b) => (
  • {b}
  • ))}
{/* Browser mockup */}
{typeof feature.mockupContent === "function" ? feature.mockupContent(isDark) : feature.mockupContent}
); })}
{/* ─── 5. KARŞILAŞTIRMA TABLOSU (YENİ) ─────────────────────────── */}
Karşılaştırma

Manuel Yöntem vs Sase.tr

{/* Desktop: table */}
{COMPARISON.map((row, idx) => ( ))}
Manuel Sase.tr
{row.label} {row.manual} {row.sase}
{/* Mobile: cards */}
{COMPARISON.map((row) => (

{row.label}

Manuel

{row.manual}

Sase.tr

{row.sase}

))}
{/* ─── 6. BENTO GRID — NASIL ÇALIŞIR ────────────────────────────── */}
Nasıl Çalışır

3 Adımda Orijinal Parçaya Ulaşın

{BENTO_ITEMS.map((item) => { const Icon = item.icon; const wide = item.wide; return (

{item.title}

{item.description}

{item.stat && (

{item.stat}

)}
); })}
{/* ─── 7. KULLANIM ALANLARI ─────────────────────────────────────── */}
Kullanım Alanları

Kimler İçin?

{USE_CASES.map((uc, idx) => { const Icon = uc.icon; return (

{uc.title}

{uc.description}

); })} {/* CTA card */}

Farklı bir ihtiyacınız mı var?

Özel entegrasyon veya toplu sorgulama ihtiyacınız varsa bize ulaşın.

{/* ─── 8. RAKAMLARLA SASE.TR ────────────────────────────────────── */}
{/* Ambient grid pattern — breaks digital flatness */}
{/* Brand accent glow */}
Platform

Rakamlarla
Sase.tr

{STATS.map((stat) => (

{stat.value}

{stat.label}

))}
{/* ─── 9. DASHBOARD SHOWCASE ────────────────────────────────────── */}
{/* Decorative circles */}

Tüm Veriler, Tek Platform

Şase çözme, parça kataloğu ve interaktif şemalar tek bir arayüzde.

Yükleniyor…
} > {/* Floating labels */}
Şase Arama
İnteraktif Şema
OEM Kodları
{/* ─── 9.5. E-TİCARET ENTEGRASYONU ────────────────────────────── */}
E-Ticaret Entegrasyonu

Kendi Sitenize Şase Çözme Gücü Katın

Müşterileriniz yanlış parça sipariş edip iade mi açıyor? Sase.tr entegrasyonu ile VIN bazlı filtreleme ekleyin — iadeler düşsün, dönüşüm artsın.

{/* Left — Video */}
Yükleniyor…
} >
{/* Right — Text + Bullets + CTA */}
Kolay Entegrasyon

Birkaç Satır Kod, Büyük Fark

E-ticaret sitenize Sase.tr'nin VIN çözme motorunu entegre edin. Müşterileriniz şase numarasını girsin — sadece araçlarına uygun parçalar listelensin.

    {[ "API & Widget — Birkaç satır kodla sitenize entegre edin", "VIN Bazlı Filtreleme — Sadece uyumlu parçalar görünsün", "İade Oranını Düşürün — Doğru parça, ilk seferde", "White-Label — Widget sitenizin tasarımına uyum sağlar", ].map((b) => (
  • {b}
  • ))}
{/* Stats grid */}
{[ { value: "%42", label: "Daha Az İade" }, { value: "%35", label: "Daha Yüksek Dönüşüm" }, { value: "<30dk", label: "Entegrasyon Süresi" }, ].map((stat) => (

{stat.value}

{stat.label}

))}
{/* ─── 9.6. TESTIMONIALS ────────────────────────────────────── */}
Müşteri Yorumları

İşletme Sahipleri Ne Diyor?

{TESTIMONIALS.map((t) => (
handleSocialProofEngaged("testimonials")} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); handleSocialProofEngaged("testimonials"); } }} className="group cursor-pointer rounded-2xl border border-border bg-surface p-6 transition-all duration-300 hover:-translate-y-1 hover:border-foreground/20 hover:shadow-[var(--shadow-md)]" >
{dynamicKeys(t.rating).map((k) => ( ))}

“{t.text}”

{t.initials}

{t.name}

{t.role}

))}
{/* ─── 10. PRICING ─────────────────────────────────────────────── */}
Fiyatlandırma

Günde 7 TL'den
başlayan fiyatlar.

Tek bir yanlış parça iadesinin maliyetinden daha az. Tüm planlarda 30 gün ücretsiz deneme var, kart bilgisi gerekmez.

{/* Tier tiles — horizontal row, compact, breaks 4-tower symmetry */}
{[ { name: "1 Marka", description: "Tek marka için erişim", price: "200", yearly: "2.000", features: [ "1 marka seçimi", "Sınırsız VIN arama", "Parça kataloğu", "Şema görüntüleyici", ], }, { name: "2 Marka", description: "İki farklı marka", price: "350", yearly: "3.500", features: [ "2 marka seçimi", "Sınırsız VIN arama", "Parça kataloğu", "Öncelikli destek", ], }, { name: "3 Marka", description: "Üç marka kapsamlı", price: "500", yearly: "5.000", features: [ "3 marka seçimi", "Sınırsız VIN arama", "Parça kataloğu", "Öncelikli destek", ], }, ].map((plan, idx) => (

{plan.name}

/ay

{plan.description}

{plan.price} TL

yıllık {plan.yearly} TL

    {plan.features.map((f) => (
  • {f}
  • ))}
))}
{/* Hero plan — Full Paket, asymmetric horizontal card with brand emphasis */}
{/* Brand accent glow */}
{/* Left: pitch + price */}
En çok tercih edilen

Full Paket

Tüm markalara sınırsız erişim. Tek bir aboneliğe sığdırdık.

999 TL/ay

yıllık 9.990 TL — ayda 832 TL'ye denk gelir

Kart bilgisi gerekmez. İstediğin zaman iptal et.

{/* Right: feature list, two columns */}

Pakete dahil

    {[ "Tüm 27+ markaya erişim", "Sınırsız VIN arama", "OEM parça kataloğu", "İnteraktif şema görüntüleyici", "Geçmiş sorgular & favoriler", "Öncelikli e-posta desteği", "API erişimi (talep üzerine)", "Toplu sorgu özelliği", ].map((f) => (
  • {f}
  • ))}
Detaylı karşılaştırmayı gör
{/* ─── 11. REFERRAL BANNER (YENİ) ───────────────────────────────── */}

Arkadaşını Davet Et

3 davet = +7 gün ücretsiz, 5 davet = +1 ay ücretsiz

{/* ─── 12. SON CTA ──────────────────────────────────────────────── */}
{/* SVG grid pattern */}
{/* Blur glow */}

Her Yanlış Parça Size 200-500 TL'ye Mal Oluyor

İade kargosu, müşteri kaybı, zaman kaybı. Şase çözme ile ilk seferde doğru parçayı bulun.

{/* ─── 13. FOOTER ───────────────────────────────────────────────── */}
); }