Status: Live — horseridingessaouira.com (originally launched as brahimcavalier.com, recently renewed and relaunched under horseridingessaouira.com)
The problem
An independent equestrian guide in Essaouira competing against large commercial agencies needs a platform that conveys immediate trust, professionalism, and local authenticity. Travelers researching horse and camel rides want to know ride durations, safety standards, and pricing upfront, and expect a fast, frictionless way to confirm availability from a mobile device without navigating complicated international payment portals.
My role
I designed and implemented the web application as the sole full-stack developer, creating both the responsive client interface and the backend service architecture, while configuring local search engine optimization for Essaouira tour queries.
What I built
- Full-stack React & Express application: Developed a modern web platform using React 18, TypeScript, Wouter routing, Tailwind CSS, and shadcn/ui components, powered by an Express.js backend with centralized error handling.
- Type-safe database architecture: Designed a PostgreSQL database schema managed via Drizzle ORM, with shared TypeScript types and Zod runtime validation for services, booking requests, testimonials, horse profiles, and blog posts.
- Service catalog & tour showcases: Built structured service pages detailing beach rides (1h–2h sunset gallops), half-day Argan forest countryside excursions, and coastal dune camel treks with transparent pricing in Moroccan Dirhams and Euros.
- Direct WhatsApp booking integration: Implemented an online reservation workflow featuring React Hook Form and Zod validation, paired with a direct WhatsApp booking fallback prefilled with the selected service and date.
- Local SEO & Schema.org structured data: Implemented rich JSON-LD graph metadata for
LocalBusiness,TouristAttraction, andOfferCatalog, along with optimized meta tags and sitemaps targeting high-intent equestrian travel queries in Essaouira.
Results
I do not have access to internal booking records or WhatsApp conversion metrics, so no unsubstantiated booking or revenue claims are presented here.
Owner TODO: if the business shares seasonal booking growth, WhatsApp inquiry volume, or customer review metrics from the renewed domain, those verified figures will replace this note.
