Your personal taste, perfected. A Next.js culinary assistant for recipe management, AI-powered discovery, and meal planning.
Palate is a full-stack web application built with Next.js 14 that helps users discover, save, and organize recipes. The platform features AI-assisted recipe generation, image upload to cloud storage, and an intuitive meal planning interface.
- Next.js 14 with App Router
- React 18
- Prisma ORM with PostgreSQL
- Supabase Auth and Storage
- Tailwind CSS
- Framer Motion
- Lucide React icons
palate/
app/
(auth)/
login/
signup/
(main)/
dashboard/
recipes/
planner/
api/
recipes/
meal-plans/
layout.js
page.js
globals.css
components/
lib/
supabase/
prisma/
schema.prisma
public/
middleware.js
- Node.js 20+
- PostgreSQL database
- Supabase account
git clone https://github.com/A-verse/Palate.git
cd Palate
npm installCreate .env.local:
DATABASE_URL=postgresql://user:password@host:5432/palate
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
npx prisma generate
npx prisma db pushnpm run devnpm run dev- Start development servernpm run build- Build for productionnpm start- Start production servernpm run lint- Run ESLint
POST /api/recipes- Create recipeGET /api/recipes- List user recipesPUT /api/recipes- Update recipeDELETE /api/recipes- Delete recipe
POST /api/meal-plans/add- Add meal to planPOST /api/meal-plans/remove- Remove meal from plan
- Push code to GitHub
- Import repository in Vercel
- Add environment variables
- Deploy
Vercel will automatically detect Next.js and configure the build.
Set these in Vercel:
DATABASE_URLNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY
- User authentication via Supabase
- Recipe creation and management
- Image upload to Supabase Storage
- AI-powered recipe generation
- Weekly meal planning
- Responsive design
Ensure DATABASE_URL is correctly formatted and accessible from your deployment environment.
Recipe images are stored in the 'recipes' bucket. Ensure the bucket exists and has proper RLS policies.
If you encounter build errors, verify:
- All environment variables are set
- Prisma client is generated
- Node version is 20+