PaparottiS Pizza Pasta — Tuggerah NSW
A first-pass concept page for PaparottiS Pizza Pasta in Tuggerah, NSW.
Built from the Slipstream Cafe Template v2 (design-4-slipstream-v2.html),
adapted for an Italian restaurant with split lunch/dinner hours, PDF menus,
and a venue-specific palette.
The template is the calibration; this file is the application.
What carries over from the template
The structural decisions are unchanged because they're data-driven, not business-specific:
- Map prominence — visit section in the second/third scroll, not buried
on a contact page
- Front-entry photo — hero triptych leads with the shopfront
(the field most-overlooked across the AU corpus)
- Single H1 with location + venue type — "Italian Pizza & Pasta on the
Central Coast"
- Schema.org Restaurant fully populated — address, hours (with split
windows), telephone, sameAs, amenityFeature
- Sticky bottom CTAs on mobile —
Directions+Call usalways one
tap away
- CLS-clean — explicit width/height on every image, fonts preloaded
- No frameworks — vanilla HTML + inline CSS + minimal JS
What was adapted for this venue
- Palette swapped from cafe terracotta to Italian burgundy
(#8b1a1a accent on cream #faf6ef) — reads warmer-formal vs.
warm-casual
- Hero layout uses the triptych_right the design manifest
identifies as gold-standard for restaurants: one large front-entry image + two thumbnails (interior, signature plate)
- Split lunch/dinner hours — the original template's open-status JS
assumed one continuous window per day. Rewrote it to handle an array of windows per day so "Closed · opens at 5pm today" works during the 3–5pm split
- Inline menu items replaced with two PDF cards (Lunch Menu, Dinner
Menu) since the venue ships menus as Wix-hosted PDFs and the SEO cost of HTML-inline is moot when the PDFs are the source of truth. Day-part labels (Lunch/Dinner) read more usefully than dish-type labels (Pizza/Pasta) because the venue's split lunch/dinner hours map directly to which menu is in effect
- No newsletter section — wasn't in the captured signals; can be
added back if the venue runs a list
- No community-initiatives grid — the cafe template had a soup-kitchen
/ sponsorship block as the wedge. Pizza/pasta venues lean on hospitality story instead, so the story section is leaner: one paragraph + a testimonial slot. If PaparottiS has a community angle, add it back
Captured fields (from the design manifest Isaac supplied)
These came verbatim from the Concept Builder extract on 2026-05-08:
| Field | Captured | Source |
|---|---|---|
| business_name | PaparottiS Pizza Pasta | profile.business_name |
| tagline | Italian Pizza & Pasta Restaurant in Tuggerah NSW | ai.h1_assessment.suggested_h1 |
| street_address | Shop 1038A, 50 Wyong Road | profile.street_address |
| suburb | Tuggerah | profile.town_or_suburb |
| state | NSW | profile.au_state |
| hours | Split lunch/dinner Tue–Sun, closed Mon | ai.opening_hours |
| instagram_url | https://www.instagram.com/paparottis.tuggerah | ai.social_urls.instagram |
| facebook_url | https://www.facebook.com/paparottistuggerah | ai.social_urls.facebook |
| story_paragraph | "PaparottiS Pizza Pasta is a family owned Italian restaurant…" | ai.about_text |
| logo_url | Wix-hosted transparent PNG | client supplied |
| lunch_menu_pdf | filesusr.com/ugd/3cb875_930d758baf9443f4869344cca68333ed.pdf | client supplied |
| dinner_menu_pdf | filesusr.com/ugd/3cb875_bf0f248c9061468c81e7d0d9b575434d.pdf | client supplied |
| establishment_year | 2003 | client supplied (2026-05-11) |
Fields needing client input
These are placeholders — the live concept clearly marks them so client review knows where to look:
- Phone number — placeholder
tel:+61200000000, displayed as
"Phone: client to provide"
- Hero image 1 — front-entry / shopfront photo (placeholder colour
block)
- Hero image 2 — front counter / interior photo
- Hero image 3 — signature plate / drink photo
- Reviews — three sample cards with
citeset to "Sample review",
plus a yellow placeholder banner explaining live Google Business Profile embeds replace this in production
- Postcode —
2259set as a sensible Tuggerah default; verify - Acknowledgement of country — not yet included; client to draft per
local custodian
Hours JS — per-day split windows
The template's original JS hard-codes single open/close per JS-day:
var H = [
[270, 840], // Sun 4:30am – 2:00pm
...
];
For PaparottiS the JS is rewritten to handle multiple windows per day:
var H = [
[[690, 870], [1020, 1200]], // Sun 11:30–14:30, 17:00–20:00
[], // Mon closed
[[690, 870], [1020, 1200]], // Tue
...
];
findCurrentOrNext() walks today's windows for an active match, then
today's later windows, then up to 7 future days. The label outputs
"Open · closes 8pm" / "Closed · opens at 5pm today" / "Closed · opens
tomorrow 11:30am" / "Closed · opens Tue 11:30am" depending on context.
This logic should land back in the cafe template too — split hours are common (cafe → bistro evenings) and the single-window assumption is a limitation, not a feature.
What this concept doesn't try to solve
- Online ordering —
online_ordering.platformwas captured asnone.
No section. Add a "Order online" CTA + integration if/when the venue signs up to Square / Lightspeed / similar
- Loyalty program — also captured as
none. Same treatment - Booking widget —
acceptsReservationsis set toTruein schema
(Italian sit-down venues default to taking reservations) but the booking widget itself isn't wired. Phone fallback only until a platform is chosen
- Multi-location — single venue, one address. PaparottiS Tuggerah is
the only known location. If/when more open, this template forks rather than parameterises
Open questions for client review
1. Phone number for tel: links and schema?
2. Postcode confirmation (Tuggerah covers 2259/2261 area)?
3. Real Google Business Profile URL for the reviews embed?
4. Accept reservations? If yes, which platform (now-book-it / quandoo /
open-table / phone-only)?
5. Does PaparottiS run a newsletter / community angle worth surfacing?
Round 2 — Mitchell's review (2026-05-11)
Mitchell raised four things, all addressed:
- Hero squares — replaced flat colour-blocks with a "stock photo behind +
dark gradient + light blur + label on top" treatment. Reads as intentional
design, makes the placeholder client to supply label legible, and looks
finished even before real photos arrive. Codified as the design rule
placeholder_treatment below.
- Status bar between hero and story — was duplicating CTAs already in the
hero AND the sticky bottom bar. Stripped to just the live open-status
line. Codified as status_bar_no_duplicate_ctas below.
- Address & contact column too tall — moved "What to expect" amenities
out of the right column and into a card directly under the map. The
right column is now Address / Hours / Contact, more balanced. Codified
as visit_amenities_under_map.
- Story felt lopsided — text was alone in a narrow column. Now wrapped
in a 2-column grid with a placeholder image alongside (same blur+darken
treatment as the hero), receiving the same placeholder_treatment
rule. Codified as story_needs_companion_image.
Plus Isaac's adds:
- Full-width Instagram dummy feed under Our Story (6 tiles, edge-to-edge,
with a note that production wires Elfsight / IG Basic Display / curated
static grid). Codified as restaurant_instagram_block.
- Phone number (02) 4352 2500 — replaced placeholder in 5 spots (header,
visit-contact, footer address, sticky CTA, schema.org telephone).
- "In Westfield Tuggerah" added to address — first line now
Shop 1038A, Westfield Tuggerah (visit, footer, schema.org streetAddress).
Map iframe query updated.
- Italian-flag emoji favicon (🇮🇹) via inline SVG. Browser-supported in
Chrome/Firefox/Safari/Edge.
Design rules emerging from this build (2026-05-11)
Two rules surfaced during client review that generalise across the cafe /
restaurant cohort. They're added to design-4-slipstream-v2
(the cafe template) and should land in the centralised commoncrawl
design-rules registry next time the feedback pipeline syncs.
Rule 1 — Establishment year in the footer copyright
If the year a business was established is known, the footer copyright must
read © YYYY-founded – YYYY-current Business Name, not just
© YYYY-current Business Name. The year-range reads as longevity, which
correlates with trust signals across the gold-standard corpus.
- Applied here:
© 2003 – 2026 PaparottiS Pizza Pasta - Data field:
establishment_year(int, optional in schema, REQUIRED
if known)
- Already followed by: design-4 cafe template (
© 2018–2026 Cafe 2261)
Rule 2 — Status badge wording must say "Open now" / "Closed now"
The live open / closed indicator must read "Open now · closes 8pm" or "Closed now · opens at 5pm today" — not "Open · closes 8pm" or "Closed · opens 5pm". The word "now" anchors the badge to the moment of reading, removing the ambiguity of whether "Open" means "open today", "open generally", or "open right now".
The same convention applies in the dark status bar below the hero, so the header badge and the bar speak in one voice (the previous design-4 build had the badge saying "Open · closes 8pm" while the bar said "Open now · closes 8pm" — minor but inconsistent).
- Open today:
Open now · closes 8pm - Closed, opens later today:
Closed now · opens at 5pm today - Closed, opens tomorrow:
Closed now · opens tomorrow 11:30am - Closed, opens later this week:
Closed now · opens Thu 11:30am
Codified in the .json sidecar as open_status_strings for any future
template that wants to copy the convention verbatim. The cafe template's
HTML has been patched in this same change set.
Rule 3 — Placeholder image treatment
When real photos aren't yet supplied, the placeholder must use **stock photo + dark gradient overlay + light blur + centred label**, NOT a flat colour block with text. Reasons:
- The page reads as finished design even pre-photos, so client review
focuses on layout and content rather than "the placeholders look unfinished"
- The dark gradient + blur make the "client photo to supply" label
unambiguously legible regardless of the underlying stock image
- When the client replaces the placeholder, only the inline
background-image URL changes — no structural HTML edit
Applies to: hero squares, story companion image, gallery slots, any above-the-fold placeholder. NOT for body content (use copy or a labelled empty state instead).
Rule 4 — Status bar must not duplicate hero or sticky CTAs
The dark status strip between hero and story carries the live open/closed indicator and nothing else. CTAs that already appear in the hero (Get Directions / View Menus) and in the mobile sticky bottom bar (Directions / Call us) should NOT also appear in the status bar. Three banks of the same CTA is noise, not redundancy.
Rule 5 — Story sections need a companion image
A single-column text-only story block reads as lopsided. Stories take a 2-column grid: text + an image on the right (or above on mobile). If the client doesn't yet have a story photo, use the placeholder treatment from Rule 3.
Rule 6 — Visit column rebalance when contact section is tall
When the right column of the visit-grid (Address / Hours / Contact / What-to-expect) becomes taller than the map+padding on the left, lift "What to expect" (amenities pills) out of the column and place it as a card directly under the map. Restores visual balance without changing the data shown.
Rule 7 — Restaurant pages include an Instagram block
For restaurants, hospitality, and food-led venues, a full-width Instagram grid (6 tiles, edge-to-edge) lands between Our Story and Menus. The production implementation is the venue's choice (live Elfsight embed, Instagram Basic Display API, or a curated 6-tile static grid refreshed monthly). Cafes and bars likely want the same block — TBC during next build of those niches.