A Next.js application for Green Ghost, a weed shop menu with cart functionality synced to Google Spreadsheet data.
- Menu Categories: Buds, Pre-rolls, and Gadgets
- Product Displays:
- Buds: Grid layout with images
- Pre-rolls: Full-width row layout (no images)
- Gadgets: Grid layout with images
- Cart System: Add items, view cart, update quantities
- Responsive Design: Built with Tailwind CSS
- Google Sheets Integration: Sync product data from spreadsheet
-
Clone the repository
-
Install dependencies:
npm install
-
Set up Google Sheets API (optional):
- Get a Google API key from Google Cloud Console
- Make the spreadsheet publicly viewable (Share > Anyone with the link can view)
- Set environment variable:
(Or the API key is hardcoded for development)
GOOGLE_API_KEY=your-api-key-here - Spreadsheet URL: https://docs.google.com/spreadsheets/d/1_tPKbwLkZHYZB99lOs91NhlW1YjkiP7UOsp9hIuVRnc/edit?gid=1335065453#gid=1335065453
- Columns: Item ID (used as slug), Item name, Type (Buds/Pre-rolls/Gadgets), Price, Stock, Status
-
Run the development server:
npm run dev
Open http://localhost:3000 to view the app.
/app/menu: Menu pages/app/menu/buds: Buds listing and individual pages/app/menu/pre-rolls: Pre-rolls listing and individual pages/app/menu/gadgets: Gadgets listing and individual pages/app/cart: Cart page/components: Reusable components/contexts: React contexts (Cart)/lib: Utility functions and data handling/types: TypeScript type definitions
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Google Sheets API