A healthy menu that is never out of date

project overview
Fresh food deserves a fresh menu
- project type
- Restaurant website & admin panel
- services
- UX/UI designWeb developmentAdmin panelTechnical SEOHosting & DevOps
- stack
- Next.jsTypeScriptPostgreSQLRedisDocker
The Urban Garden is a healthy-living restaurant in Vilnius. We designed and built its website in Lithuanian and English — a menu with a page for every dish, catering services, ordering and booking links — and an admin panel that lets the venue change dishes, photos and opening hours in seconds, without a developer.
Restaurant menus change all the time: a new bowl, a seasonal dessert, a dish that is off for the week. The Urban Garden needed a site that feels as calm and fresh as the food — and that the team can keep accurate without waiting for anyone.
We kept the visual language light: warm cream, deep navy type, the brand's sage green and generous food photography, with a single typeface, Jost, doing all the work.

the menu
Every dish gets its own page
The menu is split into six categories — all-day brunch, power bowls, toasts and wraps, sweet bowls, protein and energy, snacks — and every dish has its own page with a photo, ingredients, dietary labels and the allergens it contains.
Dish and category URLs are localised too, so /lt/meniu and /en/menu each rank in their own language and a guest can share the exact bowl they liked.


by the numbers
Small menu, serious platform
- 2
- languages, each with its own URLs
- 11
- dishes at launch, in 6 categories
- 14
- EU allergens tracked on every dish
- 0
- deploys needed to change a dish
run by the venue
Change the menu over a coffee
The admin panel covers dishes with drag-to-reorder and archiving, categories, page copy, a media library with automatic image processing, and every contact detail and outbound link. A save is live on the site within seconds — no build, no deploy.
Accounts have roles and two-factor sign-in, and the fourteen EU allergens stay in code as a fixed legal list, so nobody can mistype one.

Illustration of the admin panel — dishes and photos are real, the screen is a mockup.
on the phone
Built for the walk to lunch
Most guests open the menu on a phone, minutes before they arrive. Order and Reserve stay one tap away on every page, categories scroll sideways and dish photos load sharp but light.



fast & findable
Static pages, live content
Public pages are statically generated and refreshed the moment content changes, so the site loads instantly and still shows today's menu. Every page carries hreflang, structured data and a sitemap entry; a strict content security policy, rate limiting and scheduled backups keep it safe.
End-to-end tests cover the public site, admin flows, accessibility and visual regressions, so a menu update can never quietly break the layout.


what makes it work
Four things the venue relies on
- (1)
Live menu editing
Dishes, photos, categories and prices change in the admin and appear on the site within seconds.
- (2)
Allergens by the book
All 14 EU allergens on every dish, kept as a fixed list so the data is always valid.
- (3)
Two languages, two sets of URLs
Lithuanian and English with localised slugs, hreflang and separately written copy.
- (4)
Media pipeline
Uploads are validated, resized and converted automatically, so photos stay crisp and light.
visual language
Calm, fresh, edible
Everything comes from the client's brand: deep navy ink on warm cream, the logo's sage green on every button, a pale green behind the food photos — and Jost as the one typeface for headlines and body.
#0C2638#FFFAF4#EEF2EB#849E7F#9EB599more work
all projects →Turn your task into a route?
Tell us about the task, timeline and budget. We'll review the brief, ask the right questions and come back with a clear plan.

