codewrights
Menu

INSIDE THE WORK / 004

A family food truck.
A footprint above its weight class.

The polish of a restaurant group, scaled to one truck and the family that runs it.

Rollup Foodz serves halal paratha rolls around the Chicago suburbs and caters events. The pilot replaces a site-builder template with software built around the two questions a truck’s customers actually ask: where are you right now, and can you cater my event?

Rollup FoodzPilot build · Food truck & catering
1tap to put the truck on the map
3ways to cater an event
6ad creatives, same brand

Pilot · on a preview domain

01 / WHAT CONNECTS TO WHAT

A template and a contact form.
Then a business that answers for itself.

Small is not the same as simple. A truck moves, sells out and books events, and its site should know that. The scale of the build is modest; the care in it is the same as anywhere else.

BEFORE · WHAT THE BUSINESS HAD
  • Site-builder template
  • Four static pages
  • One generic contact form
  • A social account
THE PILOT · ONE SMALL APP, IN THEIR BRAND
Outside services we runHosting + releasesEmail deliveryDNS + sender recordsMaps + directions links
Capabilities in the appTruck stops + live statusSubscribers + consentAnnouncementsCatering + contact inboxA menu search engines can read
Screens people usePublic siteStop pages + calendar fileOwner admin, on a phoneBranded emailsAd creatives
What the business getsCustomers find the truckHosts ask with the detailsFans hear about the next stop

02 / WORKFLOWS & EXCEPTIONS

Four moments in a truck’s day.

Each path is written down with its steps and its awkward case. The exception is part of the design, with an owner and an outcome.

  1. Going live from the truck window

    The owner parks, taps once, and the homepage knows where the truck is.

    1. The owner opens the admin on their phone.
    2. “Use my current location” drops a pin from the phone’s GPS, or they type an address.
    3. They set when service starts and ends.
    4. The homepage shows a live badge, a map and directions, in the map app that suits the visitor’s phone.
    5. Each stop has its own page and a calendar file to save.

    When it doesn’t go to plan

    Nobody has to remember to take the truck offline: a stop ends itself when its time passes. A pin with no place name is refused, because a dot on a map is not somewhere a customer can find. An end time before the start is refused.

  2. Telling fans about a stop

    A scheduled stop becomes a branded email in a few taps, and it goes out once.

    1. From a scheduled stop, “Email fans” pre-fills a draft with the place, time and directions.
    2. The owner edits it against a live preview and sends themselves a test.
    3. They confirm, and the announcement goes out.
    4. Each fan gets their own email, with their own way to unsubscribe.

    When it doesn’t go to plan

    An announcement is locked the moment it starts sending, so a double tap cannot mail the list twice. With nobody on the list, the send is refused up front with the reason. A sent announcement can no longer be edited.

  3. Signing up, and leaving

    Joining is one field. Leaving is one click, and it can’t happen by accident.

    1. Fans sign up in the footer, or tick a box on the catering or contact form.
    2. Someone who signs up again is reactivated, not duplicated.
    3. Every email carries a one-click unsubscribe that mail apps recognise, plus a link.
    4. Opening the link shows a confirm button. Confirming unsubscribes.

    When it doesn’t go to plan

    Mail security scanners open every link in a message. Here, opening the link only shows a button, so a scanner cannot unsubscribe anyone; only a deliberate confirmation does. The signup field has a trap for bots and a rate limit. An expired link gets its own page, not an error.

  4. An event host asks about catering

    The inquiry arrives with what the owner needs to quote it.

    1. The host picks the event type and a format: the truck, a live station or drop-off.
    2. They give a date, a guest count and how to reach them.
    3. The inquiry lands in the owner’s inbox in the admin, beside contact messages.
    4. The host sees a confirmation in the brand’s own voice.

    When it doesn’t go to plan

    An inquiry under the minimum guest count, or with a format that isn’t offered, is turned back with a specific message instead of being saved half-right. Alerting the owner the moment an inquiry arrives is the next piece; in the pilot, inquiries wait in the inbox.

03 / ACCEPTANCE CRITERIA

What had to be true before it counted as done.

Specific conditions the business can see for itself. Most of them are about the day something goes wrong.

  1. The homepage never shows the truck as live after its end time, with nobody touching it.
  2. A stop can be set from a phone, with one tap for the location.
  3. An announcement cannot be sent twice, whatever gets tapped.
  4. Opening an unsubscribe link does not unsubscribe. Confirming does, and a mail app’s one-click unsubscribe works.
  5. Signing up twice reactivates. It never duplicates.
  6. Each page shows up in search under its own title and description, at one address.
  7. Search engines can read the menu item by item, with its halal and vegetarian tags.
  8. A shared link unfurls with the brand’s image in a text message.
  9. The owner’s tools are never left open. With no password set, they don’t exist at all.
  10. Motion respects a reduced-motion setting, and tap targets are at least 44 pixels.

WHAT WE LOOK AFTER

The brand came off the truck
and into everything else.

The palette was taken from the truck’s wrap, and the display type was chosen because its rounded ends echo the logo’s lettering. A scroll-linked ring of words runs in English and Urdu. The error pages, the confirmation messages and the emails all speak in the same voice.

Six social ad creatives, story and feed, are rendered from the same design tokens as the site, so a campaign and the page it lands on are recognisably one business.

A pilot by Codewrights, running on a preview domain while photography and final menu details are finished. Counts describe the pilot as it ran on 20 September 2026.

START WITH A CONVERSATION

Tell us what the business runs on today.

The tools, the workarounds, the things that fall through. We’ll tell you what we would build, what we would keep and what we would leave alone.

Start a conversationhello@codewrights.io