---
title: "Rollup Foodz: A Food Truck, Above Its Weight | Codewrights"
description: "A family food truck with a live “where’s the truck” status set from a phone, emails to fans about the next stop, catering inquiries and ads in one brand."
url: "https://codewrights.io/work/rollup"
---

[Work](https://codewrights.io/work) · Rollup Foodz

INSIDE THE WORK / 003

# 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 Foodz** Pilot build · Food truck & catering

**1** tap to put the truck on the map

**3** ways to cater an event

**6** ad 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 + releases · Email delivery · DNS + sender records · Maps + directions links

Capabilities in the appTruck stops + live status · Subscribers + consent · Announcements · Catering + contact inbox · A menu search engines can read

Screens people usePublic site · Stop pages + calendar file · Owner admin, on a phone · Branded emails · Ad creatives

What the business getsCustomers find the truck · Hosts ask with the details · Fans 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.

[← All case studies](https://codewrights.io/work)[Next · Boutique business app **MH Build Studio ↗**](https://codewrights.io/work/mh-build-studio)

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 conversation** info@codewrights.io](mailto:info@codewrights.io)

---

Contact: [info@codewrights.io](mailto:info@codewrights.io). Every page, with a summary: [llms.txt](https://codewrights.io/llms.txt). Sitemap: [sitemap.xml](https://codewrights.io/sitemap.xml).
