NaviStone2022–present
From agency ops tool to multi-tenant platform
NaviStone needed to stop plateauing as a software-enabled services business and become a real multi-tenant SaaS platform. I defined the product model, ownership and access rules, design system, and core workflows—then shipped a lot of it in code. The October 2025 prototype is what finally got the company moving.
Role Design engineer — first designer; product definition, UX, design systems, and production React/TypeScript
- Scope
- Platform product, RBAC, design system, analytics, ingestion, campaigns
- Stack
- Figma, React, TypeScript, shadcn, Storybook, Rails
- Turning point
- Oct 2025 Rails prototype → Apr 2026 first internal platform release
- Scale
- Analytics for ~240 client accounts; PII-aware house-file workflows
Context
NaviStone had strong domain expertise and durable client relationships, but the product still behaved like an internal agency operations tool. Growth had plateaued around a services-shaped model. Earlier attempts to stand up a “real platform” kept rebuilding the same ownership model with nicer screens—and stalled for the same reasons.
The brief was to become multi-tenant SaaS that advertisers, agencies, and platform operators could inhabit, without breaking the operational work that still paid the bills. I was the first and only designer, which meant owning product definition end to end—not just screens.
The October 2025 prototype
Previous platform efforts failed by looking familiar. In October 2025 I spent about five days building a working Ruby on Rails proof-of-concept (Render, Tailwind, Cursor and Claude, Figma MCP), wired enough to Shopify and Lob to feel real.
It made the multi-tenant shape concrete: platform admin, advertiser, and agency partner personas; workspaces; access control; enough workflow fidelity that leadership and customers could argue from a shared artifact instead of a deck.
That alignment held. April 2026 shipped the first internal platform release—the point where the company stopped debating whether to become SaaS and started operating like one.
I wrote a longer essay about how that week changed how I work: No More Hog Butchering.

Walkthrough video / frames
RBAC as the product model
Multi-tenancy fails if permissions are an afterthought. I co-authored the product definition for a three-layer model with eng:
- Platform — NaviStone operators who configure the system and support tenants
- Advertiser — brands that own audiences, creative, and results
- Agency — partners who operate on behalf of advertisers without becoming the owner of record
Access grants sit between those layers: explicit, revocable, and visible in the UI. The hard design problem wasn't drawing role matrices—it was making ownership, delegation, and blast radius understandable to people who live in the tool all day.
RBAC / access grants UI
Workspaces, analytics, house-file
Workspaces became the organizing unit for day-to-day work: tenant context, collaborators, and artifacts in one place.
Analytics had to serve roughly 240 clients without turning into a one-off report factory. I designed website and cross-channel surfaces ops and client teams can actually use.


House-file ingestion was the unglamorous unlock: moving FTP/PII-laden list workflows toward self-serve. Progress, validation, and failure states had to make a dangerous operation feel supervised rather than magical.
House-file ingestion (no PII)
Zenith — design system as shipping infrastructure
On the new multi-tenant platform (NXP), I built Zenith: a Figma↔code system grounded in shadcn/React patterns (@zenith/ui), so design and implementation stayed the same conversation. Auth, settings, admin, and core workflows migrated onto it as the surface area grew.
The system wasn't a side quest—it was how a solo design owner stayed unblocked while shipping production UI alongside eng.
Zenith Figma ↔ React/shadcn
Earlier design-system work on the legacy platform (Iris) is a separate case: Iris design system.
Still shipping: IQ Mail, campaigns & segments
With the platform spine in place, 2026 work turned toward the revenue-critical marketing loop: IQ Mail, campaigns, and segments. Same through-line: tenant-aware objects, careful audience defaults, and a path from segment to campaign without a services bottleneck.
Campaign builder
Segment builder
Outcome
The company has a coherent multi-tenant product model, a design system that ships in production code, analytics across the client base, and self-serve paths that used to stop at services. The Oct 2025 prototype remains the clearest example of how I de-risk product: when alignment is the blocker, make the future clickable.
Mailchimp Marketing DashboardCustom ReportsCreative Assistant