A recipe-sharing platform built for developers.
- Next.js
- TypeScript
- Tailwind CSS
- Shadcn UI
- Radix UI
- Auth.js
- Zod (for validations)
- Drizzle ORM
- Neon Postgres (serverless postgres)
- Vercel KV Database (for rate limiting)
- Vercel Blob Store (for image storage)
Mobile Speed Insights on Moto G Power with Slow 4G Throttling
Desktop Speed Insights
Used Partial Pre-Rendering, App Router, Server Actions, and React Server Components in Next.js.
- Fork and clone the repo using
git clone - Install the packages using
npm i - Add environment variables as specified in the
.env.examplefile. - Make sure
?sslmode=requiredis at the end of thePOSTGRES_URLenv variable. - For database migrations, use
npx drizzle-kit generate:pgandnpx drizzle-kit push:pg - Run these migrations manually by using
npx drizzle-kit generate:pg --custom:CREATE EXTENSION IF NOT EXISTS pg_trgm;,CREATE INDEX IF NOT EXISTS trgm_idx ON recipes USING GIN (title gin_trgm_ops, cuisine gin_trgm_ops, category gin_trgm_ops);
- Make sure the Vercel project is connected to a Vercel Postgres (Neon) database.
- Connect the project to a Vercel Blob store.
- For rate limiting, add a Vercel KV (Upstash) database.
- Run
npx drizzle-kit push:pgto push changes to your database. - Update
metadataBaseinapp/layout.tsxto match your target domain.
- Open an issue if you believe you've encountered a bug.
- Make a pull request to add new features/make quality-of-life improvements/fix bugs.

