From 7a874ab11db44b71b0f5d6fc2bd1650e1b9a712a Mon Sep 17 00:00:00 2001 From: Ayris Dev Date: Wed, 15 Jul 2026 13:51:22 +0300 Subject: [PATCH] Update gallery to bento grid, add real reviews, update phone numbers and locations --- app/[lang]/aktiviteler/page.tsx | 6 +- app/[lang]/galeri/page.tsx | 12 +- app/[lang]/hakkimizda/page.tsx | 12 +- app/[lang]/iletisim/page.tsx | 12 +- app/[lang]/layout.tsx | 2 +- app/[lang]/odalar/page.tsx | 222 ++----- app/[lang]/page.tsx | 628 ++---------------- app/llms.txt/route.ts | 2 +- app/sitemap.ts | 2 +- check-users.ts | 42 ++ components/BentoGallery.tsx | 144 ++++ components/Footer.tsx | 8 +- components/Navbar.tsx | 4 +- components/WhatsAppButton.tsx | 2 +- components/home/AboutSection.tsx | 90 +++ components/home/ActivitiesGrid.tsx | 81 +++ components/home/CtaBand.tsx | 50 ++ components/home/EventsPreview.tsx | 99 +++ components/home/FeaturesStrip.tsx | 46 ++ components/home/HeroSection.tsx | 61 ++ components/home/InstagramFeed.tsx | 63 ++ components/home/RoomsSection.tsx | 57 ++ components/home/TestimonialsSection.tsx | 59 ++ lib/openinary-loader.ts | 39 ++ lib/openinary-url.ts | 5 + lib/openinary.ts | 19 + next.config.ts | 6 + prisma/schema.prisma | 29 +- public/kitesurf.png | Bin 0 -> 1316616 bytes ...sApp Image 2026-07-13 at 17.02.15 (1).jpeg | Bin 0 -> 1111155 bytes ...WhatsApp Image 2026-07-13 at 17.02.15.jpeg | Bin 0 -> 1822928 bytes ...WhatsApp Image 2026-07-13 at 17.02.18.jpeg | Bin 0 -> 1890255 bytes ...WhatsApp Image 2026-07-13 at 17.02.19.jpeg | Bin 0 -> 1122001 bytes ...sApp Image 2026-07-13 at 17.02.20 (1).jpeg | Bin 0 -> 1195758 bytes ...sApp Image 2026-07-13 at 17.02.20 (2).jpeg | Bin 0 -> 631161 bytes ...WhatsApp Image 2026-07-13 at 17.02.20.jpeg | Bin 0 -> 822025 bytes ...WhatsApp Image 2026-07-13 at 17.02.21.jpeg | Bin 0 -> 1248050 bytes update-about-image.ts | 16 + update-about.ts | 24 + update-activities.ts | 69 ++ update-kitesurf-image.ts | 19 + upload-kitesurf.mjs | 41 ++ upload-rooms.mjs | 53 ++ 43 files changed, 1234 insertions(+), 790 deletions(-) create mode 100644 check-users.ts create mode 100644 components/BentoGallery.tsx create mode 100644 components/home/AboutSection.tsx create mode 100644 components/home/ActivitiesGrid.tsx create mode 100644 components/home/CtaBand.tsx create mode 100644 components/home/EventsPreview.tsx create mode 100644 components/home/FeaturesStrip.tsx create mode 100644 components/home/HeroSection.tsx create mode 100644 components/home/InstagramFeed.tsx create mode 100644 components/home/RoomsSection.tsx create mode 100644 components/home/TestimonialsSection.tsx create mode 100644 lib/openinary-loader.ts create mode 100644 lib/openinary-url.ts create mode 100644 lib/openinary.ts create mode 100644 public/kitesurf.png create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.15 (1).jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.15.jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.18.jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.19.jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.20 (1).jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.20 (2).jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.20.jpeg create mode 100644 public/rooms/WhatsApp Image 2026-07-13 at 17.02.21.jpeg create mode 100644 update-about-image.ts create mode 100644 update-about.ts create mode 100644 update-activities.ts create mode 100644 update-kitesurf-image.ts create mode 100644 upload-kitesurf.mjs create mode 100644 upload-rooms.mjs diff --git a/app/[lang]/aktiviteler/page.tsx b/app/[lang]/aktiviteler/page.tsx index d4c278e..b072458 100644 --- a/app/[lang]/aktiviteler/page.tsx +++ b/app/[lang]/aktiviteler/page.tsx @@ -13,10 +13,10 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str const { lang } = await params; return buildMeta(lang, "/aktiviteler", { title: "Aktiviteler | Kite Beach Akyaka", - description: "Kitesurf, yoga, SUP ve bisiklet kiralama. Akyaka'nın doğasında IKO sertifikalı eğitmenlerle unutulmaz deneyimler.", + description: "Kitesurf, yoga, SUP ve bisiklet kiralama. Akyaka'nın doğasında profesyonel eğitmenlerle unutulmaz deneyimler.", }, { title: "Activities | Kite Beach Akyaka", - description: "Kitesurf, yoga, SUP and bicycle rental. Unforgettable experiences in Akyaka with IKO certified instructors.", + description: "Kitesurf, yoga, SUP and bicycle rental. Unforgettable experiences in Akyaka with professional instructors.", }); } @@ -55,7 +55,7 @@ export default async function AktivitelerPage({ params }: { params: Promise<{ la {/* Activities */}
-
+
{activities.length > 0 ? activities.map((act, i) => (
diff --git a/app/[lang]/galeri/page.tsx b/app/[lang]/galeri/page.tsx index 6729594..605bf20 100644 --- a/app/[lang]/galeri/page.tsx +++ b/app/[lang]/galeri/page.tsx @@ -23,13 +23,13 @@ const getAltText = (alt: string, isEn: boolean) => { }; const gallery: { src: string; alt: string; category: "Odalar" | "Aktiviteler" | "Restoran" | "Doğa" }[] = [ -// { src: "https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop", alt: "Standart Oda", category: "Odalar" }, + { src: "https://images.unsplash.com/photo-1618773928121-c32242e63f39?q=80&w=2940&auto=format&fit=crop", alt: "Standart Oda", category: "Odalar" }, { src: "https://images.unsplash.com/photo-1526367790999-0150786686a2?q=80&w=2940&auto=format&fit=crop", alt: "Kitesurf", category: "Aktiviteler" }, { src: "https://images.unsplash.com/photo-1544551763-46a013bb70d5?q=80&w=2940&auto=format&fit=crop", alt: "Nehir Doğa", category: "Doğa" }, -// { src: "https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2874&auto=format&fit=crop", alt: "Nehir Manzaralı Oda",category: "Odalar" }, + { src: "https://images.unsplash.com/photo-1566665797739-1674de7a421a?q=80&w=2874&auto=format&fit=crop", alt: "Nehir Manzaralı Oda",category: "Odalar" }, { src: "https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?q=80&w=2940&auto=format&fit=crop", alt: "Restoran", category: "Restoran" }, { src: "https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?q=80&w=2940&auto=format&fit=crop", alt: "Yoga", category: "Aktiviteler" }, -// { src: "https://images.unsplash.com/photo-1499955085172-a104c9463ece?q=80&w=2940&auto=format&fit=crop", alt: "Bungalow", category: "Odalar" }, + { src: "https://images.unsplash.com/photo-1499955085172-a104c9463ece?q=80&w=2940&auto=format&fit=crop", alt: "Bungalow", category: "Odalar" }, { src: "https://images.unsplash.com/photo-1507525428034-b723cf961d3e?q=80&w=2940&auto=format&fit=crop", alt: "SUP", category: "Aktiviteler" }, { src: "https://images.unsplash.com/photo-1551504734-5ee1c4a1479b?q=80&w=2940&auto=format&fit=crop", alt: "Kahvaltı", category: "Restoran" }, { src: "https://images.unsplash.com/photo-1511994298241-608e28f14fde?q=80&w=2940&auto=format&fit=crop", alt: "Bisiklet", category: "Aktiviteler" }, @@ -42,15 +42,15 @@ export default function GaleriPage({ params }: { params: Promise<{ lang: string const isEn = lang === "en"; const filters = isEn - ? ["All", "Activities", "Restaurant", "Nature"] - : ["Tümü", "Aktiviteler", "Restoran", "Doğa"]; + ? ["All", "Rooms", "Activities", "Restaurant", "Nature"] + : ["Tümü", "Odalar", "Aktiviteler", "Restoran", "Doğa"]; const [active, setActive] = useState(isEn ? "All" : "Tümü"); const [lightbox, setLightbox] = useState(null); const getInternalCategory = (filterName: string) => { if (filterName === "All" || filterName === "Tümü") return "Tümü"; - // if (filterName === "Rooms") return "Odalar"; + if (filterName === "Rooms") return "Odalar"; if (filterName === "Activities") return "Aktiviteler"; if (filterName === "Restaurant") return "Restoran"; if (filterName === "Nature") return "Doğa"; diff --git a/app/[lang]/hakkimizda/page.tsx b/app/[lang]/hakkimizda/page.tsx index b86e984..409a0fa 100644 --- a/app/[lang]/hakkimizda/page.tsx +++ b/app/[lang]/hakkimizda/page.tsx @@ -31,7 +31,7 @@ const valuesTr = [ { icon: Award, title: "Premium Deneyim", - desc: "IKO sertifikalı kitesurf okulumuzdan restoranımıza kadar her noktada en yüksek kalite standartlarını sunuyoruz.", + desc: "Kitesurf okulumuzdan restoranımıza kadar her noktada en yüksek kalite standartlarını sunuyoruz.", }, ]; @@ -49,21 +49,21 @@ const valuesEn = [ { icon: Award, title: "Premium Experience", - desc: "From our IKO certified kitesurf school to our restaurant, we offer the highest quality standards at every point.", + desc: "From our kitesurf school to our restaurant, we offer the highest quality standards at every point.", }, ]; const statsTr = [ { value: "10+", label: "Yıllık Deneyim" }, { value: "500+", label: "Mutlu Misafir" }, - { value: "3", label: "IKO Sertifikalı Eğitmen" }, + { value: "3", label: "Profesyonel Eğitmen" }, { value: "4", label: "Benzersiz Aktivite" }, ]; const statsEn = [ { value: "10+", label: "Years Experience" }, { value: "500+", label: "Happy Guests" }, - { value: "3", label: "IKO Certified Instructor" }, + { value: "3", label: "Professional Instructor" }, { value: "4", label: "Unique Activity" }, ]; @@ -123,9 +123,9 @@ export default async function HakkimizdaPage({ params }: { params: Promise<{ lan

{isEn ? ( - "With our nature-friendly architecture, our kitchen supporting local producers, and our training center in IKO standards, we aim to be the face of sustainable tourism in Akyaka." + "With our nature-friendly architecture, our kitchen supporting local producers, and our professional training center, we aim to be the face of sustainable tourism in Akyaka." ) : ( - "Doğaya saygılı mimarimiz, lokal üreticileri destekleyen mutfağımız ve IKO standartlarındaki eğitim merkezimizle, Akyaka'nın sürdürülebilir turizm yüzü olmayı hedefliyoruz." + "Doğaya saygılı mimarimiz, lokal üreticileri destekleyen mutfağımız ve profesyonel eğitim merkezimizle, Akyaka'nın sürdürülebilir turizm yüzü olmayı hedefliyoruz." )}

diff --git a/app/[lang]/iletisim/page.tsx b/app/[lang]/iletisim/page.tsx index 9e25fb7..09c59c1 100644 --- a/app/[lang]/iletisim/page.tsx +++ b/app/[lang]/iletisim/page.tsx @@ -30,8 +30,8 @@ export default async function IletisimPage({ params }: { params: Promise<{ lang: { icon: Phone, label: "Phone / WhatsApp", - value: "+90 533 081 6181", - href: "tel:+905330816181", + value: "+90 544 504 03 10", + href: "tel:+905445040310", }, { icon: Mail, @@ -55,8 +55,8 @@ export default async function IletisimPage({ params }: { params: Promise<{ lang: { icon: Phone, label: "Telefon / WhatsApp", - value: "+90 533 081 6181", - href: "tel:+905330816181", + value: "+90 544 504 03 10", + href: "tel:+905445040310", }, { icon: Mail, @@ -211,13 +211,13 @@ export default async function IletisimPage({ params }: { params: Promise<{ lang: {/* Map */}