# Sandal — Discover Egypt Slowly
**Egypt's slow rural tourism platform.** Discover overlooked villages, book authentic local experiences, and explore the Nile Delta, Suez Canal communities, Fayyum, Mariout, and Upper Egypt frontiers.
Tagline: _Discover Egypt. Slowly._ / _اكتشف مصر. ببطء._
---
## ⚠️ Branch Protection — Read This First
`main` is the protected production branch. **Do not push directly to `main`.**
| Branch | Purpose | Who writes |
|---|---|---|
| `main` | Production-ready code | PRs only, after review |
| `lovable-staging` | Lovable AI iterations | Lovable (configure in Lovable settings) |
| `feat/*` | Feature work | Engineers via PRs |
| `fix/*` | Bug fixes | Engineers via PRs |
**Workflow:**
1. Lovable iterates on `lovable-staging`
2. Engineer reviews the diff, cherry-picks or merges into a `feat/*` branch
3. PR from `feat/*` → `main`, requires review + passing CI
4. Never merge Lovable commits directly to `main` without review
See CONTRIBUTING.md for the full workflow.
---
## Tech Stack
- **Framework:** React 18 + TypeScript + Vite
- **Styling:** Tailwind CSS + shadcn/ui (Radix UI primitives)
- **State / Data:** TanStack Query (React Query)
- **Forms:** React Hook Form + Zod
- **Backend:** Supabase (Auth, Database, Storage, Edge Functions)
- **Maps:** Leaflet + React Leaflet
- **Audio:** Howler.js with Media Session API integration
- **i18n:** i18next + react-i18next (English + Arabic with full RTL)
- **Monitoring:** Sentry (errors + session replay)
- **Analytics:** PostHog (privacy-respecting product analytics)
- **PWA:** vite-plugin-pwa with offline support for audio tours
- **Testing:** Vitest (unit) + Playwright (E2E) + Testing Library
---
## Getting Started
### Prerequisites
- Node.js 20+
- npm (or Bun)
### Setup
```bash
# Clone
git clone
github.com
cd sandaler-egypt-slowly
# Copy env template and fill in values
cp .env.example .env
# Edit .env with your Supabase project cre …