We designed and built the Forza Rotterdam website from scratch, with menu, opening hours and facts machine-readable for Google and AI. Then we kept developing it: a lighter foundation, a catering page and a campaign with Felyx.

The brief
An Italian sandwich shop on Pannekoekstraat that needs to be found: in Google for ‘sandwiches rotterdam’ and in answers from AI assistants, with menu, opening hours and prices always right. After launch came the next question: more clicks and more catering.
What we did
A custom website in plain HTML, CSS and JavaScript, with a complete structured-data graph and an llms.txt fact sheet. In a second round we made our own code lighter, from 117 to 51 KB for the homepage, without changing URLs, tracking or structured data. Then came an FAQ and a catering page.
What we built
Forza RotterdamWebsite from scratch
Design and build of the complete site: the story, Il Menu with twelve schiacciatas as real text, an NL/EN switch, a photo gallery and ordering through the Tebi shop.
Lighter foundation
In round two CSS and JavaScript split and cleaned, dead code removed, images to WebP with srcset in 28 variants and fonts cut from 11 to 7. Every anchor, class and tracking selector stayed the same.
Structured data
A complete graph with CafeOrCoffeeShop, a menu of twelve schiacciatas with fixed IDs, FAQPage, WebPage and BreadcrumbList. Every visible price and answer is checked automatically against the schema.
GEO and llms.txt
A fact sheet for AI assistants with address, GPS, opening hours, prices, the full menu with ingredients and the official channels, so AI cites Forza correctly.
Catering page
A dedicated page for group lunches: pick-up through the Tebi shop and delivery from €150, with delivery area, costs and lead time strictly separated.
Measuring what matters
GA4 events for ordering, menu, email, Instagram, directions, calls, catering, language and FAQ. The tag only loads on the production domain, so tests don’t pollute data.
Forza × Felyx
A QR code in the shared scooter leads to a mobile campaign page with the ‘Il Viaggio’ preloader and a digital voucher for a free drink with a schiacciata, for 1,000 drinks.
In pictures
Scroll to browse






The hardest part
Evolving your own work without breaking anything. The temptation was to rebuild the site, but URLs, structured data and content were in good shape. By replacing only the delivery layer, the site got faster and easier to find without losing a single ranking or tracking event.
Under the hood
Languages, frameworks and integrations- Languages
- HTML, CSS, JavaScript
- Approach
- Plain HTML with no build or runtime dependencies
- Data
- JSON-LD: CafeOrCoffeeShop, Menu, FAQPage, BreadcrumbList
- GEO
- llms.txt fact sheet
- Images
- WebP with srcset, PowerShell conversion script
- Measurement
- Google Analytics 4, Search Console, Lighthouse
- Server
- Apache, .htaccess redirects and caching
- Ordering
- Tebi shop
