Skip to content
Arrit Gashi
← All work
Shipped2026Client work · Web app

Dolce & Amaro

Site for an Italian artisan bakery in Greensboro and Charlotte: a 61-item menu, wedding cakes and a contact form, in English, Spanish and Italian.

The bakery's home page: the headline Where sweet meets bitter beside a glazed chocolate cake topped with salted caramel and a macaron, with a scrolling strip of pastry names below.
menu items, each with its own page
61
languages on every page
3

The problem

Dolce & Amaro is an Italian artisan bakery with two shops in North Carolina, Greensboro and Charlotte. Their old website was out of date: some pages no longer loaded and the opening hours did not match the shops. For a bakery that takes cake, wedding and catering orders days ahead, the website is where most of those orders start, so a broken one costs real business.

What I built

A complete rebuild, from the ground up: home, a full menu, weddings, locations, the bakery's story, the team and contact. The menu holds 61 items in 9 categories, each with its own page, its lead time and a gluten-free filter. The weddings page shows 12 cake designs, and every enquiry button opens the contact form already set to the right topic.

The whole site is in English, Spanish and Italian, and a customer can switch language on any page and stay on the same page. Both shops have their own hours and map on the locations page.

The hard part

A contact form on hosting with no server

The bakery is on simple shared hosting, so there is no app server to run a contact form, and a third-party form service would mean another account and another monthly bill for the client. The site itself is exported as static pages, which makes it fast and cheap to host, but static pages cannot send mail.

The answer is one small PHP file on the same host. The form posts to it, and it emails the bakery. The recipient is fixed inside the file and never read from the request, so nobody can use the form to send mail anywhere else. Each visitor is limited to five messages an hour, and every enquiry arrives labelled with its topic, its shop and the language the customer wrote in.

Outcome

  • Live on the bakery's own domain, built and delivered as paid client work.
  • 61 menu items in 9 categories, each with its own page.
  • Every page in English, Spanish and Italian.
  • Enquiries arrive by email labelled by topic (wedding, custom cake, catering, wholesale), by shop and by language.

Screens

  • The Weddings page: the headline The sweetest part of your day on a dark ground, beside a four-tier white wedding cake with greenery and a Mr and Mrs topper.
  • A menu item page for the Dolce and Amaro Cake: photo, description, an Order 3 days ahead badge, lead time and dietary rows, and buttons to ask about the item or call.
  • The home page in Italian: the menu reads Home, Menù, Matrimoni, Dove siamo, Chi siamo, Il team, Contatti, the IT language button is selected, and the headline reads Dove il dolce incontra l'amaro beside the signature chocolate cake.

    The same home page in Italian. Every page switches between English, Spanish and Italian and stays on the page the customer was reading.

  • The home page on a phone: the logo, EN ES IT buttons and a menu icon, the headline Where sweet meets bitter, buttons for Explore the menu and Order a cake, and the signature cake below.
  • The menu on a phone: category chips for Cakes, Pastries and Tarts beside a Gluten-free toggle, the line 11 items, and the Dolce and Amaro Cake card with an Order 3 days ahead badge and a View details link.
  • The Weddings page on a phone: the headline The sweetest part of your day on a dark ground, buttons for Plan your wedding cake and Browse designs, and a white tiered wedding cake with a Mr and Mrs topper.

Want something like this built? I take on a small number of projects at a time.