KHALES ADVISORY — AGRIFOOD COMPLIANCE CONSULTANCY WEBSITE

https://khalesadvisory.com
Khales Advisory — Agrifood Compliance Consultancy Website

The idea of the project

Khales Advisory is a Moroccan food-safety consultancy helping agrifood businesses obtain ONSSA agrément and HACCP/ISO 22000 certification. The site needed a full rebuild — replacing a fragile WordPress installation with a fast, custom-built platform giving the client complete control over services, blog posts, testimonials, and team content, without ever touching code.

The technology used

My Role

I was the sole developer on this project — design, frontend, backend, database, and deployment. I migrated the site off WordPress onto a server-rendered Astro application backed by a Supabase (Postgres) content model, and built a custom admin dashboard so the client manages services, blog posts, testimonials, team members, and media without touching code. The build covered the full stack: UI/UX, database schema, authentication, a transactional email pipeline, structured data/SEO, and a complete WordPress-to-Astro URL migration (301 redirects, sitemap, Search Console setup) to preserve the site's existing search ranking.

Key Features

  • Custom headless CMS and admin panel (no WordPress) with role-gated authentication
  • Dynamic, database-driven service pages, blog, testimonials, and client references
  • Animated marquees, responsive design, and a full brand design system
  • Contact form with auto-reply and branded email notifications
  • Full SEO migration preserving search ranking from the old site

Tech Stack

  • Astro 5 (SSR, Node standalone adapter) + React islands
  • Tailwind CSS
  • Supabase — PostgreSQL, Auth, Storage, Row-Level Security; Astro Actions for CRUD
  • Admin SPA: React, React Router, TanStack Query, Tiptap rich-text editor
  • Resend for transactional email
  • Sharp image pipeline (WebP)
  • JSON-LD structured data, dynamic sitemap, 301 migration redirects
  • Deployed on a VPS: Node + Nginx + PM2

Live at khalesadvisory.com.