Brewery website built with Next.js 15 and Payload CMS 3, deployed on Vercel.
- Clone the repo
cp .env.example .envand fill in your valuespnpm install && pnpm dev- Open
http://localhost:3000
Payload admin is at /admin. Follow the on-screen instructions to create your first admin user.
- Framework: Next.js 15 (App Router)
- CMS: Payload CMS 3 (MongoDB)
- Styling: Tailwind CSS 4, shadcn/ui
- Maps: Mapbox GL
- Monitoring: Sentry
- Storage: Vercel Blob
- Deployment: Vercel
- Beers - Beer catalog with styles, ABV, pricing, Untappd ratings
- Styles - Beer style definitions
- Menus - Draft and can menus per location
- Products - Menu items linking beers to menus
- Events - Brewery events calendar
- Food - Food truck schedule
- Food Vendors - Food truck vendor directory
- Locations - Brewery locations with hours
- Holiday Hours - Holiday hour overrides
- Distributors - Distribution partners with geocoded locations
- FAQs - Frequently asked questions
- Media - Image uploads (Vercel Blob storage)
- Users - Admin users with role-based access
- Coming Soon - Upcoming beer announcements
- Recurring Food - Weekly food truck schedule
- Site Content - Editable site-wide content (about page, etc.)
pnpm dev # Start dev server
pnpm build # Production build
pnpm type-check # TypeScript check
pnpm lint # ESLint
pnpm test:int # Integration tests (vitest)
pnpm test:e2e # E2E tests (playwright)
pnpm generate:types # Regenerate Payload types
pnpm generate:importmap # Regenerate Payload import map