Initial MVP for the NAS CodeWorks public website, admin content control, and automatic problem-intake email pipeline.
- Public Arabic-first website.
- Admin panel at
/adminfor editing visible website text. - Cloud save/load buttons for site content through
/api/content. - Editable intake recipient email and email subject prefix.
- Problem intake form.
- Serverless
/api/intakeendpoint prepared for Vercel. - Email delivery through Resend using environment variables.
- Supabase schema for content and intake tables.
npm install
npm run lint
npm run build
npm run devRESEND_API_KEY=
NAS_INTAKE_FROM=NAS CodeWorks <onboarding@resend.dev>
NAS_INTAKE_TO=
SUPABASE_URL=
SUPABASE_SERVICE_ROLE_KEY=NAS_INTAKE_TO is optional. If it is set, it overrides the recipient email entered in the admin panel.
- Create a Supabase project.
- Open SQL Editor.
- Run
supabase/schema.sql. - Copy Project URL into
SUPABASE_URL. - Copy service role key into
SUPABASE_SERVICE_ROLE_KEY. - Add both values to Vercel environment variables.
- Redeploy the Vercel project.
Open:
/adminThe admin panel still keeps a local fallback in browser localStorage, but the official workflow is now:
Edit text -> Save Cloud -> Vercel API -> Supabase -> Any device can load the same contentCloud content requires Supabase environment variables. Email delivery requires Resend environment variables.