Case study · Livestock Lift

Two native iOS apps and a working marketplace for moving live cattle.

Cattlemen on one side, independent haulers on the other. Bid-and-counter pricing, photo-proof handoffs, two separate apps that share a backbone. A marketplace for an industry that runs on phone calls, handshakes, and trailers older than most dispatchers.

INDUSTRY
Livestock logistics · Cattle haul
SCOPE
2 native iOS apps · Marketplace backend
PLATFORM
iOS 17 · Dark-mode-native
DESIGN SCALE
150+ screens · Dual-width
CATTLEMEN APP · FOUR DASHBOARD STATES · FIRST MONTH ON PLATFORM
Livestock Lift Cattlemen app — empty state, no haulers in network yet
DAY 01
Empty state
No haulers in network yet, no loads requested.
Livestock Lift Cattlemen app — haulers available within range
DAY 14
Network coverage
Haulers within range — Tulsa, Fort Dodge, visible and reachable.
Livestock Lift Cattlemen app — active load in transit
DAY 22
Load in transit
Platteville WI → Worthington MN. 8 head, 12-hour ETA, driver assigned.
Livestock Lift Cattlemen app — pending bid awaiting confirmation
DAY 29
Pending bid
$1,500 from Joe H., 5.0 rating, gooseneck. The cattleman's call.
PRODUCT PALETTE#0D1114#202930#FF3D2E
Shipping iOS 17 · Dark-mode-native
Dual-width: 440pt + 430pt
01 — The situation

Cattle move on phone calls. A handshake industry without a handshake layer.

Live cattle move between ranches, feedlots, sale barns, and processors every day across the United States — and almost none of it moves through software.

The industry runs on a small set of phone numbers. A cattleman needs 40 head moved from a sale barn in Amarillo to a feedlot in Dodge City — he calls the same three haulers he's known for fifteen years. If they're booked, he calls the next three. If those are out, the cattle wait, the feed costs run, and someone is paying for hay until a trailer shows up.

The friction isn't a marketing problem. It's a trust problem. Live haul is high-stakes — animals die from heat, from rough handling, from delays at scales. Cattlemen don't hand 40 head worth $80,000 to a stranger off a website. They want to know the hauler's trailer, his references, whether he's hauled Angus in summer before, and what he charges.

The product had to be credible to people who don't trust apps, while doing the things only an app can do — bid, chat, route, photo-verify, pay.

02 — What we built

Two iOS apps, one marketplace, eighty screens of live operations.

Livestock Lift ships as two separate native iOS apps — Cattlemen and Hauler — running against a shared marketplace backend. The two surfaces handle different jobs at different stakes, so they got different products. The shared backbone handles auth, identity verification, payments, ratings, and dispute resolution.

01

Cattlemen app — request, bid review, live tracking

Six core flows: account & verification, request transit (origin, destination, calendar, head count, livestock type), bid management (review, counter, accept, decline), live hauler map, in-transit chat, ratings and tips. Designed for someone who pulls out their phone in a barn aisle, with gloves on, in low light.

20 pages
80+ screen variants
iPhone 14 Pro Max + standard
02

Hauler app — load discovery, route ops, settlement

Twelve-step hauler onboarding (business type, trailer specs, max capacity, document upload, payout setup), load discovery and bidding, route management, in-transit load lifecycle (start, pickup, photo proof, delivery, photo proof, delivered), ratings and dispute reporting, payout history. Designed for a driver in a cab at 4am.

13 pages
70+ screen variants
Dark-mode-native
03

Trust infrastructure — the parts that make a marketplace work

Phone-OTP auth, document verification for haulers, business type validation, photo proof at both pickup and delivery, ratings on both sides of the transaction, dispute reporting with photo upload, account verification for cattlemen, transaction history. None of these are "features" — they're the cost of operating in an industry where the loads can die.

Both apps
Shared backend
KYC + payouts
04

Payments & settlement — Stripe-grade, hauler-friendly

Card-on-file for cattlemen, payout setup for haulers, transaction history on both sides, tips as a separate post-rating step, default payment methods, payout reconciliation. Built so a hauler running their own MC number gets paid the same week they deliver — not three weeks later through a broker.

Stripe
ACH payouts
Tips & ratings
03 — Hardest decisions

The decisions that shaped the product.

Most marketplace products fail in the same place — the trust layer. Livestock Lift had to be defensible against the cattleman's existing options (his three trusted haulers) and the hauler's existing options (running his own book directly with farms). Four decisions did most of the work.

DECISION 01

Two separate apps, not one role-switching app.

TRADEOFF: 2× design surface, 2× App Store presence, 2× release cycle. Higher build cost.

The "Uber model" of one app with a role toggle was on the table. We rejected it. A cattleman's job and a hauler's job are not symmetric — a cattleman runs a livestock operation; a hauler runs a trucking business. They have different mental models, different risk profiles, and different App Store search terms.

One app with a toggle would have been a compromise both sides could feel. Two apps let each side install something that looks like it was built for them. Onboarding flows diverge sharply (a cattleman uploads a photo of his ranch; a hauler uploads insurance, MC numbers, and trailer specs). Forcing both through one onboarding would have lost both sides.

DECISION 02

Bid-and-counter pricing, not a fixed rate.

TRADEOFF: Slower to first match. Higher cognitive load. More UI.

Fixed rates would have been faster to match and simpler to design. We chose against it. Live haul pricing isn't a function the platform can compute. Distance and head count are inputs; bedding, fuel, time-of-year, the hauler's home base, return-load probability, and animal type are all variables only the hauler can price.

The bid-and-counter flow lets the hauler price a job correctly. The counter-bid lets the cattleman push back without restarting. It's slower than Uber and that's the point — it matches the way these deals are negotiated on the phone today, just digitized.

DECISION 03

Dark-mode-native, with a red that signals work.

TRADEOFF: Less screenshot-friendly. Cuts against most consumer-app conventions.

The use environment isn't a coffee shop. The cattleman is in a barn aisle at 5am or a sale-barn parking lot at noon. The hauler is in a cab on I-40 at 3am. Both spend more hours on the app in low light or direct sun than at a desk.

The palette runs slate #202930 on near-black canvas #0D1114 with white type. The accent is a saturated #FF3D2E red — not a brand red, an action red.

The choice was deliberate. A softer, more "tasteful" red would have read as consumer-app. Saturated red on dark slate reads as equipment — like the indicator on a livestock scale, or the warning lamp on a trailer wiring tester. It signals the right kind of urgency to a working audience without trying to look friendly. Light mode was never built; the product would have lost credibility the first time someone fired it up at sunrise.

DECISION 04

Photo proof at both pickup and delivery.

TRADEOFF: Friction on the hauler. Storage costs. Dispute volume.

Single-photo proof at delivery would have been sufficient for payment. We required photo proof at both pickup and delivery anyway. The reason is simple: animals can die in transit. If a cattleman loaded 42 head and 40 walked off the trailer, "bad luck" is a fight without evidence.

Two photos turn every dispute into a comparison instead of an argument. The hauler protects himself against false claims; the cattleman protects himself against negligence. The friction is the feature — a hauler who won't take two photos is a hauler the cattleman shouldn't book again.

04 — System thinking

One design system, two products, eighty screens that all behave the same way.

The shipped Figma library has the chassis pieces of a real product, not a prototype. Tab Bar, Status Bar, Home Indicator, Dynamic Island, Input, Row, Navigation Bar — each lives once as a component instance, used dozens of times across both apps. When iOS 17 changed the home indicator behavior, it was a one-day change everywhere instead of a forty-screen sweep.

DEVICE COVERAGE
2widths
440pt and 430pt — every screen designed for both iPhone Pro Max and standard frame, not one and stretched.
TOTAL SCREEN VARIANTS
150+
Eighty in Cattlemen, seventy in Hauler. Empty states, loading states, error states, success states — all designed, not improvised.
SHARED COMPONENTS
~40
Buttons, inputs, rows, sheets, navigation chrome — shared across both apps so a fix on one ships to both.
Visual tokensSURFACE / #202930CANVAS / #0D1114ELEVATED / #36424CACTION / #FF3D2ETEXT / #FFFFFFSF PRO · 9pt → 28pt8PT GRID
05 — What we learned

Industrial marketplaces are trust-shaped, not feature-shaped.

Livestock Lift looks, on a spec sheet, like a marketplace product. Two-sided onboarding, search, bid, message, pay, rate. A consultancy that's only built consumer marketplaces could ship that spec sheet in eight weeks and be wrong about the entire product.

What the work actually demanded was operational fluency — knowing why two photos beat one, why a counter-bid is non-negotiable, why a hauler's onboarding has twelve steps and a cattleman's has six, why the whole thing has to render in a cab at 3am. None of that lives on a Jira ticket. It lives in the conversations we had with cattlemen and haulers before we drew a single screen.

This is the work we keep coming back to: operational software for industries that run on phone calls and trust. Construction. Coatings. Freight. Live haul. PI law. The buyer is always the same — an operator who knows their work and is tired of software that doesn't.

06 — Begin
Replies within 1 business day

Have a marketplace, dispatch board, or field operation we should look at?

Schedule a 14-day audit Tell us about your operation+1.602.815.5600 · hello@sytepoint.com