Here is a video showcasing how it works
- Turborepo (for monorepo setup)
- ExpressJS (for backend)
- Prisma ORM / PostgreSQL (for database operations)
- Next.js (for frontend)
- Cloudinary (for file uploads)
- Resend (for emails)
- Zod (for schema validation)
- JWT (for authentication and authorization)
- Setting up enviroment
As we are using turbo repo, we have to create more than one
.env
file, lets see what are those
apps/http/.env
PORT=5000
JWT_SECRET=""
CLOUDINARY_CLOUD_NAME=""
CLOUDINARY_API_KEY=""
CLOUDINARY_URL=""
STRIPE_SECRET_KEY=""
STRIPE_WEBHOOK_SECRET="
RESEND_API_KEY=""
apps/web/env
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=""
NEXT_PUBLIC_CLOUDINARY_API_KEY=""
NEXT_PUBLIC_STRIPE_PUBLIC_KEY=""
packages/db/.env
DATABASE_URL="postgresql://postgres:password@localhost:5432/casify"