Hostaria San Carlo: website and menus updated independently.
The panel where the restaurant manages menus, wine list, website copy and opening hours, and generates PDFs and QR codes.
The restaurant updates menus, wine list, copy and opening hours and prints PDFs and QR codes without going through a developer. The public website reads everything from the back office through an API.
- Client
- Hostaria San Carlo
- Industry
- Restaurant
- Year
- 2025
- Services
- Custom software and web apps

Context
Hostaria San Carlo’s public website was built by another freelancer. The restaurant needed a direct way to manage its content over time: my work was the back office and the API that feeds the website.
Problem
Every change to the menu or to website information risked turning into a technical request. For a restaurant, dishes, prices and seasonal menus need to change quickly, and printed menus and QR codes must stay in sync.
Solution
I built the back office that lets the team edit content and produce all menu-related materials from one place.
- Menus organised into courses and dishes, with prices, descriptions, allergens and images, in five categories: à la carte, daily, holidays, events, signature dishes.
- Holiday menus with validity dates, manual ordering and full duplication of a menu for the following seasons.
- Drinks list with type, region or country of origin, price and visibility.
- Menu and wine list PDFs with layout options: spacing, cover image, one course per page.
- Printable QR codes pointing to the menu page on the website: the code stays the same when the menu changes.
- Page copy, opening hours and venue gallery editable from the panel and exposed to the public website through protected JSON APIs.
The backoffice



Result
Hostaria San Carlo keeps menus and website up to date on its own. PDFs and QR codes come straight from the back office, and holiday menus appear on the website only during their validity period.
The result is qualitative: no verified metrics are available.
Technical details
Laravel 11 with a Filament panel, PostgreSQL, PDFs generated with DomPDF, QR codes, media management and Docker deployment. The public website consumes thirteen read-only JSON endpoints.
- Laravel
- Filament
- PHP
- PostgreSQL
- DomPDF
- Docker
Want to update your website without technical requests?
I can build a back office around the tasks you do most often.

