A theme for restaurants, cafés, and bars whose website exists to answer three questions: what's on the menu, when are you open, and how do I get a table? Built with EmDash and deployed on Cloudflare Workers with D1 and R2.
Live demo: supper.superherotech.ai
Create a site from this theme:
npm create astro@latest -- --template github:ecropolis/emdash-theme-supperThe menu is structured content, not page copy: dishes live in a Menu Items collection with price, description, dietary flags, photo, and a menu section taxonomy (starters / mains / desserts / drinks). The /menu page groups by section automatically; homepage "favorites" blocks pull featured dishes with photos.
- Menu Items collection +
menu_sectiontaxonomy — dishes with prices, one-line descriptions, dietary flags (V / VG / GF rendered as chips), photos, featured flag, per-section ordering. Grouped/menupage with course-order sections and anchor links. - Seven content blocks — hero, menu (list or photo-card layouts), hours & contact, gallery, reviews, FAQ, reservation CTA banner.
- Compass Customizer — no-code design controls in Admin → Design built on the shared token contract: palette presets, brand colors, typeface, roundness, live preview.
- Compass Forms — the seeded Reservations page carries a reservation-request form (name, email, phone, date/party details) with stored submissions, an admin list, and spam basics.
- Compass Mail — EmDash's missing email transport comes bundled; add a SendGrid/Resend key and reservation requests land in your inbox.
- Menu-driven reserve CTA in the header (
ctamenu), dark/light mode, and demo content for a fictional Chicago wood-fire restaurant so the theme looks real out of the box.
| Page | Route | Source |
|---|---|---|
| Home | / |
pages entry home, composed of blocks |
| Menu | /menu |
grouped archive of menu_items by menu_section |
| Our story | /about |
pages entry, blocks + prose + gallery |
| Reservations | /reservations |
pages entry with hours + reservation form |
| Any page | /{slug} |
catch-all over the pages collection |
| 404 | fallback | — |
pnpm install
pnpm devThen open http://localhost:4321/_emdash/admin and complete the setup wizard — it applies seed/seed.json (schema, taxonomy, menus, and demo content) automatically.
pnpm deployRequires a Cloudflare account with D1 and R2. Edit wrangler.jsonc to set your worker, database, and bucket names.
- Site title and tagline — admin → Settings.
- Colors and typeface — Admin → Design (no code), or
src/styles/theme.cssfor the shipped identity. - Replace the demo menu, page copy, and reviews in the admin — dishes are entries under Menu Items.
- Swap the demo imagery (Unsplash) for your own photos.
- Point the
ctamenu at your booking system if you use one; otherwise the built-in reservation-request form emails you.
MIT © Ecropolis