Carrington SmurlProduct Designer / Engineer

AI Product Design2026

Saddle Pass

Booking a farrier, a trail ride, or a stall still happens over text message and Facebook groups. Saddle Pass is the attempt to give that market a real product — and I owned the experience from field research through engineering handoff.

Role
Head of Product Design (founding)
Timeline
May – September 2026
Team
3 engineers, 1 design director, 2 design interns
Surfaces
Rider · Horse owner · Service provider · Admin
Stack
Figma · React · React Native · Flutter · Design tokens
Constraints
  • Three user types whose real-world identities overlap
  • A trust layer built on a third-party underwriter's legal limits
  • One design system consumed by three separate codebases
  • Pre-launch — no usage data to design against

The problem

The equine services market runs on group texts, Facebook groups, and word of mouth. If you want a trail ride in an unfamiliar area, a farrier on short notice, or a stall for a night while hauling, you ask around. There is no discovery layer, no way to check that the person showing up is who they claim to be, and no payment rail — money moves by Venmo and handshake.

That creates two problems that a marketplace has to solve at the same time. Riders cannot find providers. Providers cannot prove they are credible to someone who has never met them. Solve only the first and you have a directory nobody trusts; solve only the second and you have a verification service with no demand attached.

I spent the first weeks in field research with barns, trainers, and riders before drawing anything. The single most useful finding was not about features.

Three user types, not two

Marketplace design usually assumes two sides: supply and demand. Saddle Pass has three — riders, horse owners, and service providers — and in the real world those identities overlap constantly. A horse owner who leases out trail horses is also frequently a service provider offering lessons. A rider who boards her own horse is also an owner.

The obvious move is to make people pick one and let them add roles later. In testing, that produced visible hesitation: people stalled on the choice because picking wrong felt consequential, and they had no way to know what picking wrong would cost them.

The fix was not a new flow. It was removing the stakes from the decision.

Saddle Pass onboarding step 1 of 8: three role cards — Rider/Participant, Horse Owner/Trail Guide, and Service Provider — each with a Choose button, under a progress bar.
Onboarding, step 1 of 8The subhead does the work: 'Choose the closest fit for now. If you own horses and provide services, we will capture both on your profile.' The taxonomy the database needs is not a taxonomy the user has to commit to. Progress is shown as both a counter and a bar because the flow is long and people abandon what they cannot see the end of.

The roles also had to stay legible to the other side of the marketplace. A rider booking a service needs to know what kind of person they are looking at, so the role labels are written as plain descriptions of what someone does — “Offer clinics, training, farrier, vet, bodywork, hauling, photography, or equine services” — rather than internal category names.

Onboarding is the trust layer

The eight-step onboarding is the longest flow in the product, and that is deliberate. It is where the marketplace’s trust problem actually gets solved. Depending on role, it collects credential verification, a liability waiver, ID upload, service rates, horse records, and Stripe Connect payout details.

Long onboarding is normally a conversion problem. Here the constraint ran the other way: a provider who has not been verified cannot be shown to riders at all, so an abandoned onboarding produces a user who can never transact. The design question was not “how do we make this shorter” but “how do we make each step feel like it is buying the user something.”

Each step states what it unlocks rather than what it requires. Verification is framed as what makes you bookable, not as a hurdle. Where a step is genuinely optional it is marked optional, and the flow persists so a user can leave and return without losing work.

Request to book screen showing the listing name, provider, booking details summary with date and rider count, a starting price of $85, a May 2026 calendar with past dates dimmed, and a preferred time field.
Request to bookBooking is a request, not an instant purchase — providers need to approve who rides their horses. The screen therefore has to hold two truths at once: show a real price so the rider can decide, while making clear that submitting does not yet charge them. Price is prominent; the framing stays 'request'.

The design system, and why it had tests

The product ships to three codebases — a React web app, a React Native app, and a Flutter app. A design system that exists only in Figma does not survive that. It drifts within a sprint, and the drift shows up as three slightly different greens and four button heights.

So the system’s source of truth is a token file in the repository, with a sync script and tests that fail the build when a codebase’s palette diverges from it. Colour, type, spacing, and the icon manifest all normalise through it.

This is the part of the project I would point a design systems team at. Not the component inventory — most designers can produce one — but the fact that the system has an enforcement mechanism. Design decisions that cannot be enforced are suggestions.

A redesign review, and what it changed

In late May I ran a full screen-by-screen review of the app against the design system and redid the set. The most instructive change was the smallest one.

Before — 27 May
Saddle Pass home screen with a cream background, a header bar showing a horseshoe logo, the words Saddle Pass, and a Beta pill, then a greeting, search field, category chips, and featured ride cards.
After — redo
The same home screen with the header bar removed, a white background, and the greeting in brand green — showing more content in the same space, including the second featured card's title.
[VERIFY: both the ~140px figure and the cream-to-white rationale are my reading of the two captures, not your stated reasons] Removing the persistent logo bar bought roughly 140px of vertical space on every screen. Nobody opening the app needs to be told which app they opened. The ground also moved from cream to white: the cream read as warm in isolation, but underneath photography it muddied the images and dropped contrast on body text. The greeting moved to brand green to keep the warmth the cream was carrying.

The second-order effect is the one that mattered: with that space returned, the second featured listing breaks the fold. On a marketplace home screen, whether a user sees one result or two is the difference between a card and a set — it tells them there is inventory here.

Ask Saddle Pass AI

The assistant was the piece most likely to go wrong. An open-ended chat box in a marketplace invites questions the system cannot answer — veterinary diagnoses, liability advice, medical judgments about a horse — and answering those badly is worse than not offering the feature.

Ask Saddle Pass AI screen: an AI avatar, a Beta assistant pill, the heading 'Ask an equine question', a question field, an Ask Saddle Pass AI button, and three quick-start prompt chips.
Ask Saddle Pass AIThree deliberate constraints. The placeholder scopes the domain out loud — booking, safety, horse records, barns, services — so the boundary is stated before the user invests in a question. The 'Beta assistant' pill sets the accuracy expectation where the user will actually read it. The quick starts solve the blank-input problem and double as a demonstration of what good questions look like here.

Scoping the assistant was a product decision disguised as a copy decision. “Ask about booking, safety, horse records, barns, or services” is doing the work that a refusal message would otherwise have to do later, at a worse moment, after the user has already typed out a question about their sick horse.

The quick starts are the part I would keep in any assistant I design. A blank input is a usability problem in any product, but in an AI product it is also a calibration problem — users have no model of what the system is good at until they have already been disappointed once. Showing three real questions sets the register before the first attempt.

Handing off

Design shipped to engineering as a scoped feature set across rider, owner, provider, and admin surfaces, specified against the token system rather than as flat comps. I ran weekly design reviews and bi-weekly standups with the engineering team through the build.

The web app is built and currently gated behind a feature flag, waiting on beta testing.

What I would tell you in an interview

This project has no outcome metrics, and I am not going to invent any. The product has not launched to users yet, so anything I claimed about conversion or retention would be fiction. What I can defend is the reasoning: why three roles instead of two, why onboarding got longer rather than shorter, why the token system has tests, and what I would measure first once the beta opens.

The thing I would do differently is the assistant. I scoped it by copy and by prompt design, which is the right first move, but I would want a human-in-the-loop review path for the questions it declines before I would be comfortable at real volume. Scoping tells users where the edges are. It does not tell you what they wanted when they hit one.