Launch a production-ready restaurant ordering app in minutes.
- Used in real multi-location deployments
- Includes menu, cart, checkout, auth
- Works with Square / Toast (or mock data)
- CraveUp Ordering Stack – Integrates the CraveUp Storefront SDK for live menus, cart mutations, and checkout handoffs.
- Rich Menu Experience – Sticky category navigation, featured carousel, and responsive cards with hover states.
- Product Dialog & Drawer – Desktop dialogs and mobile drawers share the same content for parity and accessibility.
- Cart & Recommendations – Persistent sidebar/cart drawer with quantity controls, item notes, and CTA for checkout.
- Theme Ready – Light/dark palettes, brand tokens, and easily adjustable typography in Tailwind.
- Accessible UI – Built on shadcn/ui + Radix primitives, ensuring keyboard navigation and screen-reader friendliness.
Live Demo: leclerc-bakery.order.page
| Hero (Light) | Hero (Dark) |
|---|---|
![]() |
![]() |
| Menu Grid | Product Dialog |
|---|---|
![]() |
![]() |
| Cart Sidebar |
|---|
![]() |
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS
- shadcn/ui + Radix UI
- CraveUp Storefront SDK
- Clone the repo
git clone --depth=1 https://github.com/your-org/leclerc-bakery cd leclerc-bakery - Install dependencies
pnpm install
- Configure environment variables (see below).
- Run the dev server
Visit http://localhost:3000 to explore the storefront.
pnpm dev
Start from the provided template:
cp .env.example .env.localReplace the placeholders with your own credentials.
| Key | Required | Description |
|---|---|---|
NEXT_PUBLIC_CRAVEUP_API_KEY |
✅ | Public API key from the CraveUp dashboard. |
NEXT_PUBLIC_LOCATION_ID |
✅ | Default location used for menus and cart operations. |
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY |
✅ | Enables Google Maps for address autocomplete + delivery radius. |
Need sandbox access? Email hello@craveup.com.
| Command | Description |
|---|---|
pnpm dev |
Start the local development server |
pnpm build |
Create the optimized production build |
pnpm start |
Serve the production build locally |
pnpm lint |
Run ESLint checks |
- Branding – Replace imagery in
public/imagesand update color tokens insrc/app/globals.css. - Copywriting – Adjust hero, footer, story, and CTA text inside
src/app/components/. - Menu Data – Manage categories/products within the CraveUp dashboard; the template consumes the live API response for
NEXT_PUBLIC_LOCATION_ID. - UX Enhancements – Extend cart behavior or product options by editing hooks/providers under
src/hooksandsrc/app/providers. - Testing – Run
pnpm lintandpnpm buildbefore shipping to catch regressions early.
src/
|-- app/ # App Router routes, layouts, providers
|-- components/ # Hero, menu, cart, shared UI
|-- hooks/ # Cart + ordering session hooks
|-- lib/ # API clients, constants, utilities
`-- store/ # Zustand stores
public/ # Images, screenshots, icons
README.md
- Push your changes to GitHub/GitLab/Bitbucket.
- Visit vercel.com/new and import the repository.
- Add the environment variables listed above in the project settings.
- Deploy—Vercel installs via
pnpm, runspnpm build, and serves the production bundle. - Configure preview environments, analytics, and custom domains as needed.
Need implementation help? Reach out to hello@craveup.com.
Distributed under the MIT License — see LICENSE for details.




