Files
Vula Builder b429b316b0 Deploy
2026-07-26 16:40:54 +00:00

610 lines
22 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"projectName": "vaVenda Lodge",
"businessType": "hotel",
"industry": "hotel",
"tone": "",
"tier": 2,
"serviceType": "hotel",
"generatedAt": "2026-07-26T16:05:47.477Z",
"sections": [
{
"name": "HeroSection",
"importPath": "@/components/sections/HeroSection",
"position": 0,
"role": "hero",
"hasImage": false,
"hasForm": false,
"itemCount": 0,
"layout": "flex-row",
"headings": [],
"buttonLabels": [],
"people": [],
"allText": [
"next/link",
"hero",
"relative min-h-[72vh] flex flex-col items-center justify-center px-6 py-24 text-center",
"#f9f7f4",
"#211c0d",
"uppercase tracking-[0.1em] text-[12.5px] font-semibold opacity-60 mb-4",
"vaVenda Lodge",
"text-6xl lg:text-7xl font-extrabold tracking-[-0.02em] mb-7 max-w-4xl",
"A boutique lodge in Limpopo offering deep Venda cultural immersion",
"text-[#18181b]",
"combined with.",
"text-lg lg:text-xl max-w-xl mb-10",
"#6e6853",
"Professional boutique hotel in South Africa.",
"inline-block bg-[#18181b] text-white px-8 py-4 text-base font-bold rounded-xl shadow-lg hover:-translate-y-0.5 transition-all duration-200",
"Book a room"
]
},
{
"name": "OurStorySection",
"importPath": "@/components/sections/OurStorySection",
"position": 1,
"role": "about",
"hasImage": true,
"hasForm": false,
"itemCount": 10,
"layout": "grid",
"headings": [
"A Family's Vision, A Village's Welcome"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"ourstory",
"our-story",
"py-20 lg:py-28",
"#ffffff",
"container mx-auto px-4",
"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
"inline-block text-[#16a34a] text-sm md:text-base tracking-widest uppercase font-semibold mb-3",
"Founded in 2015",
"text-3xl md:text-5xl font-bold leading-tight mb-6",
"#211c0d",
"A Family's Vision, A Village's Welcome",
"space-y-4 text-base leading-relaxed",
"#211c0d/80",
"vaVenda Lodge was born from a single belief: that the most authentic travel experiences\n are shared around a table, under a thatched roof, with the sounds of the bushveld as your soundtrack.\n Our founder, Makhado Ravele, returned to his ancestral land in the Soutpansberg mountains with a dream\n to welcome the world into his home.",
"Every detail — from the hand-stamped clay walls to the indigenous garden paths — is a tribute to the\n Venda people's deep connection with nature. We partner with local artisans, storytellers, and guides\n to ensure every guest leaves with more than a tan: they take home a piece of Venda soul.",
"border-l-4 pl-4 italic text-lg",
"#d4af37",
"\"I am because we are.\" — Ubuntu philosophy, echoed in every interaction at vaVenda.",
"relative",
"aspect-[4/3] rounded-2xl overflow-hidden shadow-xl",
"Limpopo bushveld at sunrise",
"(max-width: 768px) 100vw, 50vw",
"object-cover",
"absolute -bottom-6 -left-6 w-36 h-36 rounded-full overflow-hidden border-4 border-white shadow-lg",
"Makhado Ravele, founder of vaVenda Lodge",
"144px",
"grid grid-cols-2 md:grid-cols-4 gap-8 mt-20 pt-12 border-t",
"#e2dfd4",
"Suites",
"Venda Artisans Featured",
"12",
"Years Open",
"Languages Spoken",
"text-center",
"text-4xl font-bold",
"text-sm uppercase tracking-wider mt-1",
"#211c0d/60",
"mt-12 text-center text-sm",
"Makhado, Limpopo, South Africa  ·  +27 15 001 2345  ·  info@vavendalodge.co.za"
]
},
{
"name": "RoomsSection",
"importPath": "@/components/sections/RoomsSection",
"position": 2,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 16,
"layout": "grid",
"headings": [
"Six Rooms, Six Stories"
],
"buttonLabels": [
"Book Now",
"View All Rooms & Availability"
],
"people": [],
"allText": [
"use client",
"@/hooks/useMedusaProducts",
"@/components/ui/Card",
"@/components/ui/Button",
"next/link",
"next/image",
"lucide-react",
"rooms",
"py-20",
"#f9f7f4",
"container mx-auto px-4 text-center",
"animate-pulse space-y-4",
"h-8 bg-[#e2dfd4] rounded w-1/3 mx-auto",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-12",
"h-80 bg-[#e2dfd4] rounded-xl",
"py-20 lg:py-28",
"container mx-auto px-4",
"text-center mb-14",
"inline-block text-[#16a34a] text-sm md:text-base tracking-widest uppercase font-semibold mb-2",
"Venda-Inspired Accommodation",
"text-3xl md:text-5xl font-bold",
"#211c0d",
"Six Rooms, Six Stories",
"mt-4 max-w-2xl mx-auto",
"#211c0d/80",
"Each suite handcrafted with locally woven textiles and named after Venda clans and landmarks.",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",
"group overflow-hidden rounded-2xl shadow-lg transition-all duration-300 hover:shadow-xl hover:-translate-y-1",
"relative h-60 overflow-hidden",
"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw",
"object-cover transition-transform duration-500 group-hover:scale-105",
"absolute top-4 right-4 bg-[#18181b] text-white text-sm font-bold px-3 py-1 rounded-full",
"/ night",
"text-xl font-bold",
"text-sm leading-relaxed line-clamp-3",
"#211c0d/70",
"Experience the authentic Venda charm in our carefully curated space.",
"flex items-center gap-1 mt-4",
"w-4 h-4 fill-[#d4af37] text-[#d4af37]",
"w-full",
"default",
"Book Now",
"text-center mt-12",
"outline",
"lg",
"View All Rooms & Availability"
]
},
{
"name": "VendaExperiencesSection",
"importPath": "@/components/sections/VendaExperiencesSection",
"position": 3,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "grid",
"headings": [
"Beyond the Lodge",
"{activity.title}"
],
"buttonLabels": [
"Enquire Now"
],
"people": [
"Craft Workshops"
],
"allText": [
"use client",
"next/link",
"next/image",
"@/components/ui/Button",
"lucide-react",
"Traditional Dance & Drumming",
"Join local Venda dancers in a rhythmic evening under the stars. Learn the tshikona reed dance or beat the djembe around a fire.",
"Village Walk & Storytelling",
"Walk through the neighbouring Makhado village with an elder guide who shares oral histories, folklore, and the meaning behind Venda symbols.",
"Home-Cooked Venda Cuisine",
"Taste dishes passed down through generations: morogo with pap, tshiovha (pumpkin leaves), and freshly brewed mageu. Cook alongside our chefs.",
"Craft Workshops",
"Try your hand at clay pottery, basket weaving, or beadwork with Venda artisans. Take home your own creation as a souvenir.",
"vendaexperiences",
"venda-experiences",
"py-20 lg:py-28",
"#f9f7f4",
"container mx-auto px-4",
"text-center mb-14",
"inline-block text-[#16a34a] text-sm md:text-base tracking-widest uppercase font-semibold mb-2",
"Cultural Immersion",
"text-3xl md:text-5xl font-bold",
"#211c0d",
"Beyond the Lodge",
"mt-4 max-w-2xl mx-auto",
"#211c0d/80",
"Step into daily Venda life — each experience is led by community members who open their homes and\n their hearts.",
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",
"group relative rounded-2xl overflow-hidden bg-white shadow-md hover:shadow-xl transition-all duration-300",
"relative h-48 overflow-hidden",
"(max-width: 768px) 100vw, 50vw",
"object-cover transition-transform duration-500 group-hover:scale-105",
"absolute inset-0 bg-gradient-to-t from-black/40 to-transparent",
"p-6",
"flex items-center gap-3 mb-3",
"p-2 rounded-lg",
"#d4af37/15",
"w-5 h-5",
"#d4af37",
"text-lg font-bold",
"text-sm leading-relaxed",
"#211c0d/70",
"mt-5",
"outline",
"sm",
"w-full",
"Enquire Now",
"mt-16 text-center",
"text-sm",
"#211c0d/60"
]
},
{
"name": "CulturalInsightsSection",
"importPath": "@/components/sections/CulturalInsightsSection",
"position": 4,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Cultural Insights",
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"next/link",
"@/components/ui/Badge",
"lucide-react",
"@/hooks/useEmDashContent",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"cultural-insights",
"culturalinsights",
"py-20 bg-white",
"container mx-auto px-4",
"text-[2rem] font-display font-bold text-[#18181b] text-center mb-4",
"Cultural Insights",
"text-center text-[#211c0d] mb-12 max-w-2xl mx-auto font-serif italic",
"Explore Venda traditions, local recipes, and travel tips from our team.",
"grid grid-cols-1 md:grid-cols-3 gap-8",
"group rounded-2xl overflow-hidden shadow-[0_4px_20px_rgba(0,0,0,0.06)] hover:shadow-[0_8px_30px_rgba(0,0,0,0.12)] transition-all duration-300 border border-[#e2dfd4]",
"relative h-48 overflow-hidden",
"(max-width: 768px) 100vw, 33vw",
"object-cover group-hover:scale-105 transition-transform duration-500",
"p-5",
"outline",
"border-[#16a34a] text-[#16a34a] text-xs mb-2",
"text-lg font-semibold text-[#18181b] mb-2",
"text-sm text-[#211c0d] font-serif italic leading-relaxed mb-4",
"...",
"flex items-center justify-between",
"text-xs text-[#16a34a]",
"text-[#d4af37] text-sm font-medium flex items-center gap-1 group-hover:underline",
"Read more",
"w-3 h-3"
],
"cmsCollection": "posts"
},
{
"name": "SpecialsSection",
"importPath": "@/components/sections/SpecialsSection",
"position": 5,
"role": "cms-campaigns",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Seasonal Offers"
],
"buttonLabels": [
"Book Now"
],
"people": [],
"allText": [
"use client",
"next/image",
"next/link",
"@/components/ui/Button",
"@/components/ui/Badge",
"@/components/ui/Card",
"@/hooks/useEmDashContent",
"campaigns",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"specials",
"py-20 bg-[#f9f7f4]",
"container mx-auto px-4",
"text-[2rem] font-display font-bold text-[#18181b] text-center mb-4",
"Seasonal Offers",
"text-center text-[#211c0d] mb-12 max-w-2xl mx-auto",
"Limited-time stays that celebrate the richness of Venda culture and nature.",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",
"group overflow-hidden rounded-2xl shadow-[0_4px_20px_rgba(0,0,0,0.08)] hover:shadow-[0_8px_30px_rgba(0,0,0,0.12)] transition-all duration-300",
"relative h-48 overflow-hidden",
"(max-width: 768px) 100vw, 50vw",
"object-cover group-hover:scale-105 transition-transform duration-500",
"absolute top-3 left-3 flex gap-2",
"success",
"bg-[#16a34a] text-white border-0",
"Limited",
"bg-[#d4af37] text-white border-0",
"Seasonal",
"text-xl font-semibold text-[#18181b]",
"text-[#211c0d] font-serif italic",
"...",
"pt-0",
"default",
"bg-[#d4af37] hover:bg-[#b8962e] text-white w-full",
"outline",
"border-[#d4af37] text-[#d4af37] hover:bg-[#d4af37]/10 w-full",
"Book Now"
],
"cmsCollection": "campaigns"
},
{
"name": "GallerySection",
"importPath": "@/components/sections/GallerySection",
"position": 6,
"role": "gallery",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Moments at vaVenda",
"{selected.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"next/image",
"lucide-react",
"@/hooks/useEmDashContent",
"gallery",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"py-20 bg-white",
"container mx-auto px-4",
"text-[2rem] font-display font-bold text-[#18181b] text-center mb-4",
"Moments at vaVenda",
"text-center text-[#211c0d] mb-12 max-w-2xl mx-auto font-serif italic",
"Every corner tells a story — from the warmth of our thatched lapa to the quiet of the bushveld at dawn.",
"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",
"relative group cursor-pointer overflow-hidden rounded-xl aspect-square",
"Gallery image",
"(max-width: 768px) 50vw, 33vw",
"object-cover group-hover:scale-105 transition-transform duration-500",
"absolute inset-0 bg-black/0 group-hover:bg-black/30 transition-colors duration-300 flex items-end p-3",
"text-white text-sm font-medium opacity-0 group-hover:opacity-100 transition-opacity duration-300",
"Untitled",
"fixed inset-0 z-50 bg-black/80 flex items-center justify-center p-4",
"relative max-w-4xl w-full bg-white rounded-2xl overflow-hidden shadow-2xl",
"absolute top-3 right-3 z-10 bg-white/80 rounded-full p-1 hover:bg-white transition-colors",
"w-5 h-5 text-[#18181b]",
"relative h-[50vh] md:h-[60vh]",
"100vw",
"object-contain",
"p-6 bg-white",
"text-xl font-semibold text-[#18181b]",
"mt-2 text-[#211c0d] font-serif italic"
],
"cmsCollection": "gallery"
},
{
"name": "GuestStoriesSection",
"importPath": "@/components/sections/GuestStoriesSection",
"position": 7,
"role": "blog",
"hasImage": false,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"What Our Guests Say"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"lucide-react",
"@/hooks/useEmDashContent",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"guest-stories",
"gueststories",
"py-20 bg-[#f9f7f4]",
"container mx-auto px-4",
"text-[2rem] font-display font-bold text-[#18181b] text-center mb-4",
"What Our Guests Say",
"text-center text-[#211c0d] mb-12 max-w-2xl mx-auto font-serif italic",
"Real stories from travelers who found something special in the heart of Limpopo.",
"grid grid-cols-1 md:grid-cols-3 gap-6",
"bg-white rounded-2xl p-6 shadow-[0_4px_20px_rgba(0,0,0,0.06)] border border-[#e2dfd4] relative",
"absolute top-4 left-4 text-[#d4af37] opacity-20 w-10 h-10",
"relative z-10",
"text-[#211c0d] font-serif italic mb-4 leading-relaxed",
"A truly unforgettable experience.",
"flex items-center gap-3",
"w-10 h-10 rounded-full bg-[#d4af37]/20 flex items-center justify-center text-[#d4af37] font-bold text-sm",
"text-sm font-semibold text-[#18181b]",
"Guest",
"text-xs text-[#16a34a]"
],
"cmsCollection": "posts"
},
{
"name": "BookingCTASection",
"importPath": "@/components/sections/BookingCTASection",
"position": 8,
"role": "booking",
"hasImage": false,
"hasForm": false,
"itemCount": 3,
"layout": "unknown",
"headings": [
"Ready to Experience Venda?"
],
"buttonLabels": [
"Reserve Your Stay"
],
"people": [],
"allText": [
"use client",
"@/components/ui/Button",
"bookingcta",
"booking-cta",
"relative bg-[#c0653a] text-white py-20 px-6 overflow-hidden",
"absolute inset-0 bg-gradient-to-r from-[#c0653a]/80 to-[#d4af37]/20 z-0",
"relative z-10 max-w-4xl mx-auto text-center",
"text-4xl md:text-5xl font-bold mb-6 font-bricolage",
"Ready to Experience Venda?",
"text-lg md:text-xl mb-8 text-white/90 max-w-2xl mx-auto font-lora italic",
"The baobab trees are waiting, the fire is lit, and your suite is ready. Book now and feel the warmth of Limpopo.",
"accent",
"lg",
"bg-[#18181b] text-white hover:bg-[#18181b]/90 px-8 py-3 text-lg",
"Reserve Your Stay",
"absolute bottom-0 left-0 right-0 h-2 bg-[#d4af37]/40"
]
},
{
"name": "LocationSection",
"importPath": "@/components/sections/LocationSection",
"position": 9,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "grid",
"headings": [
"Find Us in the Heart of Limpopo",
"vaVenda Lodge interactive map"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/components/ui/Card",
"lucide-react",
"vaVenda Lodge",
"Farm 45, Alldays Road, Alldays, Limpopo",
"From Polokwane",
"2h15min via R521 north. Turn left onto Alldays Road after 85 km.",
"Mapungubwe National Park",
"45 min drive UNESCO World Heritage site with ancient gold rhino artifacts.",
"Northern Sotho & Venda Villages",
"Guided cultural tours available meet local artisans and taste traditional dishes.",
"location",
"py-24 bg-[#f9f7f4]",
"max-w-7xl mx-auto px-4",
"text-3xl md:text-4xl font-bold text-[#211c0d] text-center mb-4 font-bricolage",
"Find Us in the Heart of Limpopo",
"text-[#211c0d]/70 text-center max-w-2xl mx-auto mb-12 font-lora italic",
"Nestled between the baobab-studded savannah and the ancient sandstone hills, vaVenda Lodge is remote enough to feel like a secret, yet close enough to major attractions.",
"grid md:grid-cols-2 gap-8 mb-12",
"rounded-xl overflow-hidden shadow-md border border-[#e2dfd4] h-80",
"100%",
"lazy",
"no-referrer-when-downgrade",
"vaVenda Lodge interactive map",
"space-y-4",
"border border-[#e2dfd4] shadow-sm",
"flex items-start gap-4 p-5",
"bg-[#d4af37]/10 p-2 rounded-full",
"w-5 h-5 text-[#d4af37]",
"font-semibold text-[#211c0d]",
"text-sm text-[#211c0d]/70",
"text-center",
"text-[#211c0d]/60 text-sm",
"GPS coordinates:",
"S 22° 59' 15.6\" E 29° 07' 26.8\" accurate for offline navigation."
]
},
{
"name": "ContactSection",
"importPath": "@/components/sections/ContactSection",
"position": 10,
"role": "contact",
"hasImage": true,
"hasForm": true,
"itemCount": 13,
"layout": "grid",
"headings": [
"We can't wait to welcome you",
"Visit Us",
"vaVenda Lodge location"
],
"buttonLabels": [
"Send Message"
],
"people": [],
"allText": [
"use client",
"@/components/ui/Card",
"@/components/ui/Button",
"@/components/ui/Input",
"lucide-react",
"react",
"Thank you! We will get back to you soon.",
"contact",
"py-24 bg-[#f9f7f4]",
"max-w-7xl mx-auto px-4",
"grid md:grid-cols-2 gap-12 items-start",
"border border-[#e2dfd4] shadow-md",
"p-8",
"text-3xl font-bold text-[#211c0d] mb-2 font-bricolage",
"We can't wait to welcome you",
"text-[#211c0d]/70 mb-6 font-lora italic",
"Send us a message and we'll reply within 24 hours.",
"space-y-4",
"Your name",
"email",
"Email address",
"Your message...",
"w-full border border-[#e2dfd4] rounded-lg px-4 py-3 focus:outline-none focus:ring-2 focus:ring-[#d4af37] resize-none bg-white",
"submit",
"default",
"w-full bg-[#d4af37] text-[#211c0d] hover:bg-[#d4af37]/90",
"Send Message",
"space-y-8",
"text-xl font-semibold text-[#211c0d] mb-4 font-bricolage",
"Visit Us",
"space-y-4 text-[#211c0d]/80",
"flex items-start gap-3",
"w-5 h-5 text-[#16a34a] mt-1 shrink-0",
"font-medium",
"vaVenda Lodge",
"text-sm",
"Farm 45, Alldays Road",
"Alldays, 0909, Limpopo",
"South Africa",
"flex items-center gap-3",
"w-5 h-5 text-[#16a34a] shrink-0",
"+27 15 012 3456",
"bookings@vavendalodge.co.za",
"_blank",
"noopener noreferrer",
"flex items-center gap-3 text-[#16a34a] hover:text-[#16a34a]/80 transition-colors",
"w-5 h-5",
"text-sm font-medium",
"WhatsApp Us",
"rounded-lg overflow-hidden shadow-md border border-[#e2dfd4] h-64"
]
}
],
"navigationLinks": [
"vaVenda Lodge",
"Home",
"Our Story",
"Specials",
"Gallery",
"Cultural Insights",
"Contact",
"Book a Room"
]
}