vibeyour website Hire us
All prompts
Static HTML/CSS Coffee Shop 15.4k chars

Vibe Code a Coffee Shop Website

Free vibe coding prompt to build a specialty coffee shop website. Full drink menu, origin story, daily roast list, and local SEO markup. One HTML file, ready to deploy.

Tested with: ChatGPT, Claude · Updated 2026-08-11 · License: do whatever you want, it's yours
static-coffee-shop.prompt · 15.4k chars
Build a one-page specialty coffee shop website as a single self-contained
HTML file (inline CSS and JS, no external dependencies except Google Fonts
and Unsplash images via their CDN).

═══════════════════════════════════════════════════════════════
BUSINESS DETAILS
═══════════════════════════════════════════════════════════════
- Cafe name: [CAFE NAME]
- Concept: third-wave specialty coffee with [OWN ROASTERY / PARTNER ROASTERS]
- Address: [FULL ADDRESS]
- Phone: [PHONE]
- Email: [EMAIL]
- Social: Instagram + (optional) TikTok (open in new tab, rel="noopener")
- Hours: [WEEKDAY / WEEKEND / SUNDAY], call out when they typically sell out
- Founded year: [YEAR]
- Online ordering: link to external platform if available
- Bean retail: yes/no (sells bags to take home?)

═══════════════════════════════════════════════════════════════
BRAND
═══════════════════════════════════════════════════════════════
- Brand colors: cream background (#f5efe4), espresso brown (#3a2418), sage
 accent (#7a8b6e), single warm-rust accent (#c66a3d) for CTAs. Override if
 user provides hex values; derive darker variants for body text contrast.

═══════════════════════════════════════════════════════════════
DESIGN DIRECTION
═══════════════════════════════════════════════════════════════
- Editorial, hand-crafted, slow-paced. NOT corporate-chain. NOT cutesy.
- Type pairing: high-contrast serif for headings (Recoleta, Cormorant
 Garamond, or PP Editorial New alternative) + monospace for prices/details
 (JetBrains Mono, IBM Plex Mono) + Inter for body. NO script fonts.
- Eyebrow labels: uppercase, tracked .20em, sage color, prefixed by a 28px
 CSS ::before line in espresso brown.
- Headlines: short, sensory, with ONE italic accent ("Roasted *the slow way*").
 Italic word uses warm-rust gradient text fill.
- Generous whitespace, full-bleed photography of pour-over moments, hands
 cupping mugs, latte art close-ups. Asymmetric two-column grids.
- Icon system: 24x24 line icons, fill="none", stroke="currentColor",
 stroke-width 1.6, round caps. Cover at minimum: bean, mug, leaf, drip,
 scale, thermometer, calendar, clock, pin, phone, mail, star, instagram-mark.
- Icon containers: 44x44 rounded squares, cream-tinted bg with espresso
 border (1px), flip to filled espresso with cream icon on hover.
- Motion: scroll fade-ins, Ken Burns zoom on hero photo, subtle parallax on
 decorative SVG bean / leaf elements. No bouncing.

═══════════════════════════════════════════════════════════════
SECTIONS (in this exact order)
═══════════════════════════════════════════════════════════════

1. FIXED NAV (glass effect cream translucent bg + backdrop blur)
 - Wordmark left | nav links center | "Find us" rust pill CTA right
 - Below: ultra-thin info bar with today's hours ("Open today: 7am - 4pm")

2. HERO
 - Full-bleed split: left text, right photo (Unsplash search: "espresso pour"
 or "latte art top view") rounded 28px with espresso gradient overlay
 bottom-left
 - Left: eyebrow with line marker ("EST [YEAR]"), large headline with
 italic accent ("Coffee that *deserves a pause*"), 2-line subhead,
 primary "See today's menu" CTA + secondary "Order online"
 - Floating pill on photo bottom-left: today's featured origin with pulsing
 sage dot
 - Ken Burns slow zoom on hero photo

3. TODAY'S MENU
 - Eyebrow + headline ("On the bar *right now*")
 - 2-column on desktop (collapse to 1 on mobile): Espresso column left,
 Filter column right, both with espresso-bordered cream cards
 - Each item: name (serif) on left + price in monospace on right + 1-line
 origin/tasting note in muted text below
 - 8-12 items total spread across both columns
 - Below: small note in italic serif "Menu rotates with seasons + farms"

4. OUR STORY
 - Two-column: text left, photo composition right
 - Left: eyebrow, headline ("Built on *relationships, not contracts*"), 3
 short paragraphs about sourcing trips, partner farms, roastery details,
 the sourdough-equivalent (a 10-year-old culture, named starter, etc.)
 - Right: layered photo composition, large barista-portrait photo
 (rounded 20px) + overlapping smaller interior shot (rounded 20px,
 cream border frame)
 - "EST [YEAR]" tag floating top-left, sage-green badge with leaf icon
 bottom-right ("Direct-trade partner")

5. THE BEANS
 - Eyebrow + headline ("This month's *single origins*")
 - 3-column grid of origin cards (stack on mobile)
 - Each: country flag pin in line-icon style + country/region/farm name
 (serif) + 3 tasting notes as small chips (sage outline, e.g., "stone
 fruit", "milk chocolate", "honey") + process + roast date in monospace
 + small "Bag at home" rust link

6. CUPPING + EVENTS
 - Two-column: text left, list right
 - Left: eyebrow, headline ("Come learn *with us*"), 2-line subhead about
 monthly cuppings and brewing classes
 - Right: 2-3 upcoming events as horizontal cards
 - Each card: date block left (large day + 3-letter month in serif), event
 name + 1-line description right, "RSVP →" link in rust
 - Below: "Subscribe to event list" inline form (no real backend)

7. FIND US
 - Two-column: hours + transit info left, embedded Google Map right
 (rounded 24px, shadow)
 - Left: large hours table with day + time columns + a small "We often sell
 out by noon" italic line
 - Map iframe via Google Maps embed URL (no API key)
 - Floating overlay top-left of map: cafe name, address, "Get directions →"

8. NEWSLETTER
 - Centered card on cream section, sage radial blob accents
 - Eyebrow "GET THE WEEKLY BREW", headline ("New coffees, *every Friday*"),
 1-line description, inline email input + rust submit button
 - Inline JS success message (preventDefault, no real backend)

9. SOCIAL STRIP
 - Thin section, "FOLLOW THE BAR" label left + 6-image Instagram grid right
 (Unsplash search: "latte art", "coffee bag", "barista hand")
 - Each image rounded 12px, hover desaturates slightly
 - Below grid: real social icons (only platforms user provides)

10. FOOTER (deep espresso)
 - Centered wordmark in cream
 - Italic serif tagline below (NOT handwritten, e.g., "Slow coffee,
 every day")
 - Social row: glass-circle icons (only platforms user provides)
 - Bottom row: address + hours + "Made in [CITY]" + copyright

═══════════════════════════════════════════════════════════════
TECHNICAL REQUIREMENTS
═══════════════════════════════════════════════════════════════
- Single index.html, no build step
- JSON-LD `CafeOrCoffeeShop` schema in <head> with name, address, telephone,
 openingHours, servesCuisine, priceRange
- CSS custom properties for palette/gradients at top
- Smooth scroll with scroll-padding-top
- Real Unsplash images via CDN with ?w=900&q=80&auto=format&fit=crop
- Hero loading="eager", everything else "lazy"
- Use <picture> with WebP source + JPG fallback on hero
- tel:/mailto: links; mailto with prefilled subject
- Responsive at 900px and 500px breakpoints; no horizontal scroll
- Semantic HTML5; aria-labels on icon-only links
- All open hours in local timezone, mention timezone in schema
- Favicon: inline SVG data URI (coffee bean or mug mark)

═══════════════════════════════════════════════════════════════
COPY VOICE
═══════════════════════════════════════════════════════════════
Editorial, sensory, specific. Treats coffee like wine. Writes for someone who
cares about origin, process, and craft. Avoid generic "passion for coffee".
Use sensory specifics: "Nine-month fermentation, dried on raised beds", not
"high quality beans". Mention real-feeling details: a starter named [NAME],
a roastery on [STREET], a partner farm in [COUNTRY]. Body copy short, warm,
deliberate.

═══════════════════════════════════════════════════════════════
ANTI-PATTERNS TO AVOID
═══════════════════════════════════════════════════════════════
- No emojis (including the coffee cup emoji) anywhere
- No "Java", "Joe", "Cuppa Joe", too colloquial for editorial tone
- No script fonts or chalkboard-style typography
- No fake stock photos of overly stylized baristas in suspenders
- No Starbucks-style green/white palettes
- No animated steam GIFs from mugs
- No "We pour love into every cup" filler
- No bouncing add-to-cart popups
- No real coffee certification logos (Fairtrade, Rainforest Alliance), use
 typeset names if user wants to mention them


═══════════════════════════════════════════════════════════════
SEO & DISCOVERABILITY
═══════════════════════════════════════════════════════════════
Implement all of the following so the page ships production-ready for search
engines and social sharing. This is not optional; treat it as part of the
build, not an afterthought.

DO NOT INVENT DATA: never fabricate business names, addresses, phone or email, license or certification numbers, coordinates, prices, reviews or ratings, team members, photos, press mentions, or results and stats. If a detail is not provided, leave a clearly labeled {{TODO: ...}} placeholder — never a plausible-looking fake. Any form must POST to a real endpoint (Formspree, Web3Forms, Basin, or similar) or fall back to a mailto:/tel: link — never show a fake "success" message with no backend. Wrap every motion effect in @media (prefers-reduced-motion: reduce), and make sure any accent color used for text, links, or prices meets WCAG 2.2 AA contrast against its background.

1. TITLE TAG & META DESCRIPTION
   - <title> tag: "[Business Name] - [Primary Service] in [City]" (under 60 chars)
   - <meta name="description"> 150-160 chars, include the city/area, primary
     service, and a call to action (e.g., "Book online" / "Call now")
   - <meta name="robots" content="index, follow">

2. OPEN GRAPH & TWITTER CARDS
   - og:title, og:description, og:image (hero image), og:url, og:type=website
   - twitter:card=summary_large_image, twitter:title, twitter:description,
     twitter:image
   - Place all OG/Twitter meta in <head>

3. STRUCTURED DATA (JSON-LD)
   - Insert a <script type="application/ld+json"> block in <head> with
     @type: "CafeOrCoffeeShop" schema
   - Include: name, description, url, telephone, email, address
     (streetAddress, addressLocality, addressRegion, postalCode,
     addressCountry), image. Add geo, openingHoursSpecification, and priceRange ONLY when the user supplied real values — never invent them; and do NOT output aggregateRating or Review markup unless the user provides real, verifiable reviews (fabricated ratings violate Google's structured-data spam policy)
   - Add BreadcrumbList schema: Home > [Category] > [Business Name]
   - If the page has a FAQ section, add FAQPage schema with every Q&A pair

4. HEADING HIERARCHY FOR SEO
   - Exactly ONE <h1> per page — use the real, human headline the design calls for; put keywords in the <title> and meta, not the visible H1
   - Logical H2 > H3 nesting for every section; never skip a level
   - Section headings should include secondary keywords naturally
     (keep the section's real, human label; put keywords in the title and meta, not stuffed into headings)

5. IMAGE SEO
   - Every <img> must have a descriptive alt attribute that includes
     relevant keywords (NOT just "image1.jpg")
   - Format: alt="[what the image shows] - [Business Name] in [City]"
   - Use the client's own images, or neutral solid/gradient placeholders with a visible "replace with your photo" note — never hardcode Unsplash photo IDs (they often resolve to the wrong or trademarked image). Always set width + height (or aspect-ratio) to prevent layout shift

6. LOCAL SEO SIGNALS
   - Include full NAP (Name, Address, Phone) in the footer, matching the
     schema data exactly
   - Add a link to Google Maps with the business address
   - Use location-specific keywords in at least 3 section headings
   - If the page has testimonials, include the reviewer's city/area

7. TECHNICAL SEO
   - Canonical tag: <link rel="canonical" href="[PAGE URL]">
   - Language: <html lang="en">
   - Charset: <meta charset="UTF-8"> + viewport meta (already required)
   - All internal anchor links use descriptive text (not "click here")
   - Loading performance: critical CSS inline, fonts via display=swap,
     hero image eager, everything else lazy
   - Keep the CSS and JS readable and editable — do NOT minify (this file is meant to be customized by the owner)

8. CONTENT SEO SIGNALS
   - Write real, useful body copy (not just headings and bullet points).
     Each major section should have at least one paragraph of 2-3 sentences
     that describes the offering in natural language a search engine can parse.
   - Use the primary keyword once or twice where it reads naturally; keep the rest in the title tag and meta description, never stuffed into copy.
   - Include a clear call-to-action with anchor text that includes the
     service keyword (e.g., "Book your appointment" not "Click here").

═══════════════════════════════════════════════════════════════
DELIVERABLE
═══════════════════════════════════════════════════════════════
One polished HTML file (~65-75KB), production-ready, that I can open in a
browser and immediately deploy. Include JSON-LD schema. Show the file as a
single code block and briefly summarize the design decisions made.

This prompt generates a complete one-page website for a specialty coffee shop — a categorized drink and food menu, the roaster or origin story, a rotating single-origin list, prominent hours, and a map — as a single HTML file. It is written for independent cafes and roasters who want regulars to find the menu and today’s hours in seconds, not dig through a bloated point-of-sale website.

What does the coffee shop website prompt build?

The spec covers the sections a cafe actually needs. A hero with your location, hours, and a “See the menu” call to action. A categorized menu — espresso, batch brew, seasonal drinks, and pastries — with prices. An origin or roaster story. A rotating single-origin or roast-of-the-week block. A barista and team section, a gallery, hours shown up top, and a map with directions. Prefer to build it in an AI chat yourself? The spec is tuned to build it with Claude. If you would rather it arrive finished, we build static sites for a flat fee.

Who is this coffee shop prompt for?

It fits independent cafe owners, specialty roasters with a retail bar, drive-thru espresso stands, and roaster-retailers who want a clean menu-and-hours page without a POS website’s bulk. It suits both a new shop about to open and an established one replacing a page nobody can read on their phone. If you also run a full kitchen, the Italian restaurant prompt handles a sit-down menu instead.

What’s inside the coffee shop prompt?

  • A drink and food menu grouped by espresso, filter, seasonal, and pastries, all editable in plain text
  • A rotating single-origin or roast-of-the-week block you swap out weekly
  • Hours shown prominently up top and again in the footer — the one thing people check most
  • CafeOrCoffeeShop JSON-LD with address, hours, price range, and menu for local and AI search
  • A map with one-tap directions, click-to-call, and an optional online-ordering button you point at Toast or Square
  • An origin-story and team section, plus an anti-pattern list so the design skips the tired chalkboard-font look

Frequently asked questions

Where do the hours show up, since that’s what people check most?

Hours appear in the hero at the top and again in the footer, so a customer sees them without scrolling. The CafeOrCoffeeShop schema also carries your opening hours in machine-readable form, which is what Google and maps pull into a listing.

Can I update the menu and the weekly single-origin easily?

Yes. The menu and the roast-of-the-week block are plain HTML text, so you edit the item, the price, or this week’s coffee and re-upload. You do not need to touch your POS to change what the website says — the two are separate.

Does it link to online ordering or my POS?

The page includes an optional order button you can point at Toast, Square, Clover, or your own app. The static file does not process payments itself; it hands the customer off cleanly to whichever provider you already use.

Will the coffee shop schema help me rank for “coffee near me”?

The prompt writes CafeOrCoffeeShop JSON-LD with your address, hours, and price range, which is the structured data Google, maps, and AI assistants read for nearby-coffee queries. Pair it with a Google Business Profile for the best local visibility.

Can I show whether I roast my own beans or feature a guest roaster?

Yes. The origin-story section has room to explain your sourcing and roasting, and the rotating block can credit a guest roaster by name. It is built for specialty shops that want to tell customers where the coffee actually comes from.

How to actually run this.

01

Copy the whole thing

All of it. Do not trim it down, every line is in there for a reason.

02

Swap in your details

Find the BUSINESS DETAILS part and drop in the real business. Name, what they do, all of it.

03

Paste and wait

Drop it into Claude for the first pass, or v0 if it is a landing page. Give it a minute.

04

Clean it up

Tweak the boring 10 percent. Spacing, mobile, that one cringe line. Ship it.

What’s next: from generated code to a website that works

The prompt did the hard 90 percent. What’s left is the boring 10 percent that turns a folder of code into a site people can actually find and trust. Here’s the whole checklist, in order.

1. Buy a domain

Grab your name at a registrar like Namecheap, Cloudflare, or Porkbun — about $10 to $15 a year for a .com. Skip the ten-year prepay and the upsells; you just need the domain and, ideally, the free WHOIS privacy most registrars now include.

2. Put it online

If the AI built you a static site (HTML, CSS, and JavaScript), you can host it for free: drag the folder into Netlify or Vercel, or connect a GitHub repo, then point your domain at it. If it built a WordPress theme, you need WordPress hosting — pick a managed host, install WordPress, upload the theme, and connect the domain. Either way, turn on HTTPS; it’s free and automatic on every modern host.

3. Wire up the parts AI skips

Generated sites almost always ship with a contact form that goes nowhere and a fake “success” message. Connect it to a real endpoint (Formspree, Web3Forms, or a plain mailto link) so leads actually reach you. While you’re in there: add a favicon, swap the placeholder images for your own compressed photos, and open the site on your phone to catch whatever breaks on a small screen.

4. Do the basic SEO and AI-search setup

This is what gets you found on Google and cited by ChatGPT, Perplexity, and AI Overviews. The essentials: a unique title tag and meta description on every page, one clear topic per page, an XML sitemap submitted to Google Search Console, basic structured data (Organization and FAQ schema), and an llms.txt file so AI crawlers can read you. If that reads like a foreign language, our SEO optimization service does it as a flat-fee pass, and our free SEO checklist walks the DIY route step by step.

5. Make it fast

AI builders love shipping four-megabyte images and render-blocking scripts. Compress your images, lazy-load anything below the fold, and run the page through PageSpeed Insights until Core Web Vitals turn green — speed lifts both rankings and conversions, so it’s the rare fix that pays twice. Our speed optimization service handles it if you’d rather not.

6. Get found locally, and measure it

Add analytics (GA4, or a lighter option like Plausible) so you can see what’s working instead of guessing. If you serve a local area, set up a Google Business Profile and use the exact same business name, address, and phone number everywhere — that consistency is what lands you in the map pack and in local AI answers.

7. Keep it alive

A website isn’t set-and-forget, especially on WordPress. Budget for backups, security, and updates so a routine plugin update doesn’t take the site down six months from now. Our care plans cover all of it from $290 a month, or you can do it yourself — you own all the code either way.

When it’s worth handing off

If any of these steps stall you — and hosting, DNS, and SEO stall a lot of people — that’s exactly what we’re for. We build the whole thing at a flat fee, ship it live, and hand you the code on GitHub, having read every line the AI wrote. Or take the free prompts and run with it yourself. Both outcomes are genuinely fine with us.

More from the stash.

You read. We build.

No free weekend? We will build it for you.

This is the exact prompt we would use. Flat fee, real deadline, code is yours.

Have us build this one Fixed fee · Fixed timeline