---
slug: 'way.food'
client: 'way.food'
category: ['Product', 'Design', 'Development']
date: '2024 — Present'
website: https://way.food
services: ['Product', 'Design', 'Development', 'System Architecture', 'DevOps', 'Stripe Integration']
technologies:
    - Laravel
    - Livewire
    - Alpine.js
    - Tailwind CSS
    - MySQL
    - Filament
    - Mapbox GL JS
    - Laravel Cashier
    - Stripe
    - OpenAI API
    - Sentry
title: 'Foodtruck & Catering Booking Platform'
story_preview: "We built way.food from the ground up: started as a comparison portal for foodtrucks, caterers and party services, today a full booking platform with real payments on Stripe Connect. Brand, design, product strategy, marketing and the entire technical architecture, scaled to 2,000+ registered users, 650+ providers and 7-figure traffic."
fineprint: "From zero to market leader. We turned a complex, multi-party marketplace into a real payments platform, complete with Stripe Connect, tax-correct invoicing and a booking engine that carries a transaction from first message to settled payout. From strategy and product roadmap to creative direction and full-stack development, we own every layer of this platform."
---

> **Case study source:** https://unlimited.studio/en/case-study/way.food

# Building a Foodtruck & Catering Booking Platform

way.food started as a comparison portal for foodtrucks, caterers, and party services. It has since grown into a full transactional booking platform, currently focused on the DACH region with plans to expand worldwide. We have been with the startup from day one: brand identity, product strategy, investor pitches, marketing and social media, and the entire technical side. We own the technical architecture, from strategy, system design and DevOps to payment infrastructure and full-stack development.

## Infrastructure at Scale

We architected a **production-grade server infrastructure** designed for growth:

- **Multi-environment setup:** Separate servers for development, staging, and production
- **CI/CD pipeline:** Automated deployments with zero-downtime releases
- **Load balancing:** Distributed traffic handling for high-demand periods
- **Database architecture:** Dedicated database servers with automated backups
- **S3 integration:** Static media handling and scheduled backups to AWS S3
- **Two payment rails in parallel:** Stripe Connect handles the booking money flow, Laravel Cashier handles provider subscriptions — migrated live, without downtime

## From Discovery to Direct Booking

The core of way.food is no longer just browsing — it's booking. Providers build structured packages and extras with calendar-based capacity, and customers move through a **Discover search wizard** that factors in guest count, date, and budget.

- **In-booking chat:** Customers and providers negotiate directly inside the platform, with binding offers rendered as cards right in the conversation
- **Deposit checkout:** A Stripe deposit secures the booking, with the remainder collected before the event
- **Five ways a booking can start:** an instant direct booking, a change request negotiated in chat, a custom price-on-request offer, a concierge offer built by our support team, or a landing-page lead converted later

## The Provider Page as a Booking Desk

Discover now lists providers instead of loose packages, and a click opens the provider page in a new tab, so the search stays where it was. The provider page works as a hub: a flat gallery, logo and name with one line of facts (including how many guests the team serves per hour), three trust tiles, bestseller packages, reviews and similar providers at the end. Once the gallery scrolls away, a section bar sticks to the top and marks where you are. The request box takes date and guest count over from the search and confirms both right under their fields. Taking a package and adding extras updates the total, the deposit, staff and travel costs line by line, before anyone has typed an address. A guest count outside a package's range gets a one-tap fix instead of an error message.

- **Search pill:** Where, when and how many in one bar, with the calendar and the guest count opening in place
- **Bottom sheets on the phone:** The request box, the Discover filters and the navigation open as drawers from the bottom edge
- **Booking modal:** Occasion, extras, event address and terms in one step, then straight into the Stripe checkout
- **Open about availability:** The Discover card says how many of the chosen days are still free, and the request box ticks off date and guest count
- **Reviews with a face:** Reviewers decide whether their first name and initial show, named reviews get an initials avatar

## Negotiating in the Chat

Not every event fits a package. For anything custom, the request opens a chat between customer and provider, and the provider answers with a binding offer: price per guest, staff, travel, extras and deposit, laid out like a direct booking and available as a PDF, also after confirmation. The customer accepts or declines in the chat itself and pays the deposit right there. The provider sees the same thread from the other side, with the payout instead of the customer price and buttons to correct or withdraw the offer. Phone number and e-mail stay hidden until the booking is paid, so the deal does not move off the platform.

## Answers Before Questions

A searchable FAQ splits its answers into organisers, providers and partners, with category navigation and a contact box for everything it does not cover. Deposit, cancellation and force majeure each get their own answer instead of a pointer to the terms.

## Small Parts, One System

The new footer stages the brand as a food truck scene in a clay look, with the newsletter as a modal. Navigation drawer, account menu and the language and country switcher (three languages, five markets, each with its own currency) share one look. The provider forms run on components ported from Arc UI: money and number fields that format while typing, upload zones with one drag state, gliding tabs, a toast stack and confirm dialogs instead of the browser's confirm().

The mails got an audit of their own. Providers get at most one onboarding mail a day, the booking confirmation and the cancellation terms travel in one mail with their documents, and an admin page renders every mail the server can send, for review before it goes out.

## Payments, Tax, and Paper Trail

Every booking runs through a **Stripe Connect** setup with destination charges — the platform commission is taken as an application fee on the provider's side, payouts are automated, and disputes trigger holds automatically.

Behind it sits a **tax-correct pricing engine**: catalog prices are net, the platform applies its markup, and VAT is calculated per line item — 7% on food, 19% on drinks and service — with a dedicated path for small-business providers. Every booking produces a clean, itemized breakdown instead of a single lump sum.

The whole lifecycle is backed by **automated, branded documents**: customer invoices, provider commission statements, cancellation invoices, and offer PDFs are generated and mailed at the right moment, without anyone touching them by hand.

## Fair by Design

Cancellations are handled by a dedicated **cancellation engine**: fees are tiered by how close the cancellation is to the event date, terms are frozen to the booking at the moment it's made, and there's a free-cancellation window before fees apply. No-shows settle through a separate path, and our support team can adjust fees with a full history of the change. Checkout copy and terms were reviewed for legal compliance, with versioned terms stamped to each booking.

Search results are ranked by a **transparent, weighted score** — subscription tier, behavior, review average, and deposit rate — with the exact formula published on a public ranking page. There's no paid placement and no hidden boosts. Free-tier providers are fully listed and bookable, just ranked last.

## Provider Experience

Providers manage their business from a dedicated cockpit:

- **Signup in five steps:** Basics, offer, service area, images and links, wrap-up. Every step saves a draft, a counter shows the open required fields, the description gets an AI rewrite on request, and a reminder goes out when a draft is left open
- **Dashboard & analytics:** KPI tiles with 30-day trends, period comparison, a custom range from the calendar and a year of profile views as a heatmap
- **Notification bell:** Every provider mail also lands in the dashboard
- **Bookings inbox:** Status tabs for open, confirmed, done and cancelled bookings
- **Packages & extras builder:** Providers structure their own offering and pricing
- **Availability calendar:** Capacity and blocked dates, tied directly into the booking flow
- **Verified reviews:** Only customers with a completed, verified booking can leave one
- **Four subscription tiers:** Free, Basic, Premium, and Premium+ as plan cards, with a real dialog before any paid plan change

## Admin & Operations

Behind the scenes, an internal platform built on **Filament** runs the operational side: KPI dashboards for cancellation rate, payout alarms, and response times; work queues for provider onboarding, catalog review, leads, and open tenders; a builder for concierge offers; and a marketing dashboard with channel heatmaps.

## Marketing, Reach & Content

We built a self-hosted **marketing attribution** system — click-ID and UTM capture without third-party tag managers or pixels, gated behind consent, feeding conversion data back into Google Ads including retractions when a booking is cancelled.

The platform itself runs on an interactive **Mapbox GL JS** map with taxonomy filters, is fully multi-language (German, English, Dutch) with hreflang sitemaps, supports open tenders where customers post events and providers apply, and includes a blog with AI-assisted content tooling.

## Tech Stack & Monitoring

Built on **Laravel 12** with **Livewire** for reactive components and **Alpine.js** for lightweight interactivity. **Tailwind CSS** ensures a consistent, responsive design, and **MySQL** handles the data layer. The admin and ops platform runs on **Filament**, payments run on **Stripe Connect** and **Laravel Cashier**, and AI features are powered by the **OpenAI API**.

For reliability, we integrated **Sentry** for real-time error tracking and performance monitoring.

## The Results

way.food has scaled to:

- **2,000+ registered users**
- **650+ verified providers**
- **Thousands of booking requests**
- **7-figure annual traffic**

A platform built for scale, proving that startup speed and enterprise-grade architecture aren't mutually exclusive.
