Product
Healthcare software, designed and built by the same team.
Designed in the file. Built in the codebase.
The same team does both, so there is no handoff for decisions to fall through. Every screen on this page is real React, the components a production build would use. Change the row below and watch the code change with it.
<VisitRow time="09:20" patient="Priya Raghunathan" clinician="Dr. Okonjo" room="3B" status="waiting" restricted={false} />// visit-row.tsxexport function VisitRow({ restricted, status, ...visit }: VisitRowProps) { if (restricted) return <RestrictedRow clinician={visit.clinician} />; return ( <Row> <Time>{visit.time}</Time> <Patient truncate>{visit.patient}</Patient> <StatusPill status={status} /> </Row> ); }
Every state, not just the happy path
Six states of one screen. A production build of this has closer to thirty, and every one is a decision somebody makes, in the design file or at 2am in the codebase. We make them in both.
The happy path
Full schedule, everything loaded, every name a comfortable length. This is the state that gets designed, presented, and signed off.
Loading
The record system answers in about a second on a good day. Something has to hold the layout for that second, and it should be the shape of what is coming, not a spinner in the middle of an empty page.
Nothing here yet
The first screen a new customer ever sees, and usually the last one anybody designs. It should say what goes here and how to put something in it.
It broke
The upstream call failed. The screen has to say what broke, what it means for the person reading it, and what to do next. And it has to do that without losing the work already on screen.
Not yours to see
Not everyone on a floor may read every record. Permission is not an error, so it cannot look like one: the row stays, the identifying detail does not.
Real data
Real names are long, real lists do not stop at six, and real clinics run past the bottom of the screen. A layout that only holds at three short rows is a layout that has never been used.
What we build
From the first screen to the API behind it.
Zero-to-one products
From first concept to a working product: research, design, the front end, and the services behind it.
Front-end engineering
Production React and Next.js, written inside your codebase and alongside your engineers rather than handed over the fence.
Feature and workflow design
New features and improvements for complex systems, designed with the constraints of the build in view.
Mobile and cross-platform
React Native and Expo apps that share components, logic, and design with the web.
APIs and integrations
The APIs, integrations, and backend work it takes for a product to be more than a front end.
Design systems in code
Component libraries and tokens that keep the design file and production in step.
Built with
Next.js
React
TypeScript
React Native
- Expo
- APIs & backends
Also from Wigco
- WebsitesMarketing and product sites designed to be clear, maintainable, and ready to grow.
- SEOTechnical fixes, structured data, and content strategy so search engines and AI answers can find you.
- AccessibilityAudits, remediation roadmaps, and hands-on support to get to WCAG AA.
- Brand DesignNew identities or thoughtful extensions of existing brands that work across touch points.
- Pitch DecksFundraising, sales, and conference decks: designed, diagrammed, and handed over ready to edit.
Easy. Fast. Quality.Pick Three.
Tell us what you’re building and we’ll help you make it real.




