A lean, mobile-first order management system for Teco's Farms (Tanzania). Replaces the manual WhatsApp-to-spreadsheet workflow with a public order form and an admin dashboard.
Stack: Next.js (App Router), Tailwind, Supabase, Vercel. Target cost: $0/month on free tiers.
Full vision, architecture, schema, and phases are in docs/PROJECT_CONTEXT.md. For the full documentation set (overview, API, codebase, deployment, etc.), see docs/README.md.
- Phase 1 (MVP): Implemented — public order form, admin dashboard, PDF export, settings.
- Phase 2–3: Cutoff logic, repeat customers, shareable assets, notifications; later, M-Pesa and analytics (see
docs/PROJECT_CONTEXT.md).
git clone <repo-url>
cd "tecos farms"
npm installCopy the example env file and fill in your Supabase values:
cp .env.local.example .env.localEdit .env.local and set:
NEXT_PUBLIC_SUPABASE_URL— your Supabase project URL (Settings → API).NEXT_PUBLIC_SUPABASE_ANON_KEY— anon/public key.SUPABASE_SERVICE_ROLE_KEY— service role key (Settings → API; keep secret).
- Create a project at supabase.com.
- In the SQL Editor, run the migrations in order (see supabase/README.md):
supabase/migrations/20260223000001_initial_schema.sqlsupabase/migrations/20260223000002_seed_settings.sql
- In Authentication → Users, add one admin user (email + password). Use this to log in at
/admin/login.
npm run dev- Public order form: http://localhost:3000/order
- Admin: http://localhost:3000/admin (log in with the user you created).
- Push the repo to GitHub (or connect your Git provider in Vercel).
- In Vercel, Add New Project and import this repo.
- In Settings → Environment Variables, add the same three variables as in
.env.local:NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY
- Deploy. Optionally add a custom domain (e.g.
order.tecosfarms.co.tz) in Settings → Domains.
npm run dev— start dev server (Turbopack).npm run build— production build.npm run start— start production server.npm run lint— run ESLint.