A Progressive Web App (PWA) for managing events, bookings, support directories, and donations for non-governmental organisations. Built with Next.js, Supabase, and Stripe.
- Frontend: Next.js (App Router), TypeScript, Tailwind CSS
- Database & Auth: Supabase (PostgreSQL with Row Level Security)
- Payments: Stripe
- PWA: next-pwa
- Hosting: Vercel
git clone https://github.com/Scottish-Tech-Army/SpottyZebras.git
cd spotty-zebras
npm installAsk a team member for the Supabase credentials, then create a .env.local file in the project root:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-keyDo not commit this file — it is already in .gitignore.
npm run devOpen http://localhost:3000. You should see Supabase marked as connected.
app/
├── api/health/ # Health check endpoint
├── layout.tsx # Root layout
└── page.tsx # Homepage
lib/
└── supabase.ts # Supabase client
types/
└── index.ts # Shared TypeScript types
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Run production build |
npm run lint |
Lint code |
Supabase not connecting — Check that .env.local exists in the project root, values are correct, and you have restarted the dev server after editing it.
Port 3000 in use — Run npm run dev -- -p 3001 and open http://localhost:3001.