A marketplace platform connecting home chefs with food lovers in Singapore. Discover authentic home-cooked meals from talented local chefs and book unique dining experiences in the comfort of their homes.
Potluck is also available as native mobile apps — book a home chef on the go:
- iOS (App Store): https://apps.apple.com/app/id6759842391
- Android (Google Play): https://play.google.com/store/apps/details?id=io.potluckhub.app
Potluck solves the problem of finding authentic, home-cooked meals by connecting passionate home chefs with people who want to experience genuine local cuisine. Whether you're craving Peranakan, Malay, Japanese, Korean, or Indian food, Potluck lets you book a dining experience directly with a home chef in Singapore.
- Explore Chefs - Browse home chefs by cuisine type, location, ratings, and price range
- Search & Filter - Find exactly what you're looking for with real-time search and category filters
- Book Dining Experiences - Select from chef's available dates and time slots
- Chef Profiles - View detailed menus, reviews, ratings, and social media links
- Booking System - Request bookings with guest count and special dietary requirements
- Multi-tier Pricing - Free, Pro ($19/mo), and Unlimited ($49/mo) subscription plans for chefs
- Next.js 15 - React framework with App Router
- React 19 - UI library with latest features
- Tailwind CSS 4 - Utility-first CSS framework
- TypeScript - Type-safe JavaScript
- Fastify - Fast Node.js web framework
- Drizzle ORM - TypeScript ORM
- PostgreSQL - Relational database
The native iOS & Android apps live in separate repositories and are already on the App Store / Play Store. This repo contains the web, API, and shared packages only.
- Turborepo - Monorepo build system
- pnpm - Fast, disk space efficient package manager
- Coolify - Self-hosted deployment (on Hostinger, via Docker)
potluck/
├── apps/
│ ├── web/ # Next.js frontend application
│ │ ├── app/ # App Router pages
│ │ └── ...
│ └── api/ # Fastify backend API
│ ├── src/
│ │ ├── db/ # Database schema & migrations
│ │ └── routes/ # API endpoints
│ └── ...
├── packages/
│ └── shared/ # Shared types, constants, utilities
├── turbo.json # Turborepo configuration
└── package.json # Root workspace config
- Node.js >= 20.0.0
- pnpm >= 9.0.0
-
Clone the repository
git clone https://github.com/alfredang/potluck.git cd potluck -
Install dependencies
pnpm install
-
Set up environment variables
# Copy example env files cp apps/web/.env.example apps/web/.env cp apps/api/.env.example apps/api/.env -
Configure environment variables
Web App (
apps/web/.env):NEXT_PUBLIC_API_URL=http://localhost:3001
API (
apps/api/.env):DATABASE_URL=postgresql://user:password@host/database JWT_SECRET=your-secret-key
-
Set up the database
# Push schema to database pnpm db:push # Seed sample data (optional) pnpm db:seed
-
Start development servers
pnpm dev
This starts:
- Web app at
http://localhost:3000 - API at
http://localhost:3001
- Web app at
| Command | Description |
|---|---|
pnpm dev |
Start all apps in development mode |
pnpm build |
Build all apps for production |
pnpm lint |
Run ESLint on all packages |
pnpm typecheck |
Run TypeScript type checking |
pnpm db:push |
Push database schema changes |
pnpm db:seed |
Seed database with sample data |
pnpm db:studio |
Open Drizzle Studio |
The web app and API are self-hosted on Coolify (Docker, on Hostinger). Each app
ships with a Dockerfile; Coolify builds and deploys automatically on push to main.
- In Coolify, create an application from this Git repository for each service
(
apps/webandapps/api), using the includedDockerfile. - Configure the environment variables below in each service.
- Push to
main— Coolify rebuilds and redeploys.
Set these in each Coolify service:
DATABASE_URL- Your Neon PostgreSQL connection stringJWT_SECRET- Secret key for JWT tokensNEXT_PUBLIC_API_URL- The public API base URL (e.g.https://api.potluckhub.io)
- Provision a PostgreSQL database (any provider, or self-hosted).
- Copy the connection string to
DATABASE_URL. - Run
pnpm db:pushto create tables.
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
