Top 4 SDC Renderers for React-Based Patient Portals
React patient portals have a specific need from a SDC renderer. The renderer has to play nicely with the rest of the React tree, hand control back when the host app needs it, and not bring along an opinionated styling system that fights the design system already in place. That narrows the practical 2026 options down to a small set worth comparing carefully.
Four SDC renderers that meet that bar are below. For the broader picture, see the complete guide to FHIR form builders for modern healthcare stacks, and more on FHIR for healthcare data teams covers related tooling.
What a React Patient Portal Needs From a Renderer
Three things tend to matter most when a React app embeds a SDC renderer:
- Theming. The renderer should accept a token-based theme or compose with the host app's component primitives.
- Component overrides. Patient portals routinely need a custom date picker or a custom radio group. The renderer should let you swap components without forking it.
- Lifecycle hooks. Save on field blur, persist on debounce, validate on submit. The renderer should expose those moments cleanly.
Without all three, the renderer becomes the thing the rest of the React app has to work around.
The 4 SDC Renderers Worth Comparing
- LHC-Forms React wrapper. Mature SDC coverage with a React surface that fits most patient portal apps. Theming is workable and the component override story has improved over the last year.
- Medplum SDC components. Designed for React from day one, with typed props and a render cycle that fits standard React patterns. Good default styling but easily overridden.
- Open Health Hub React renderer. Best for patient-facing forms with asynchronous capture patterns. Works well in portals that combine intake forms with progress checkpoints.
- NLM LHC-Forms React build. Slightly leaner than the full LHC-Forms wrapper and useful when the portal only needs a subset of the SDC implementation guide.
For the broader SMART on FHIR integration angle, the top FHIR form builders for SMART on FHIR apps covers how these renderers behave inside a SMART launch flow.
Where React Renderers Often Surprise Teams
A few things that show up in real patient portals:
- Mobile layouts. Forms that look great on desktop turn into thumb-typing nightmares on phones. Test the renderer on a small viewport early.
- Accessibility. Patient portals carry an accessibility burden that internal clinician tools do not. Confirm the renderer ships accessible defaults before committing.
- Theming churn. A theme that compiles cleanly today might not survive the next major upgrade. Pin versions and plan for renderer updates as their own track.
A Lightweight Evaluation for the Portal Team
A short way to evaluate a SDC renderer for a React patient portal:
- Drop the renderer into a stub React app. Build it, run it, render a form.
- Override one component and rebuild. Time how long it takes.
- Apply the portal theme. Note where it breaks.
- Test the form on a small phone viewport. Look at the keyboard behavior.
- Run a screen reader through the form. Listen for the gaps.
A SDC renderer that survives all five tests is a strong candidate. One that fails the accessibility or mobile checks is usually not worth fixing; the work to bend it to a real patient portal exceeds the work to pick a different renderer.
The right renderer for a React patient portal is the one that disappears into the rest of the app. The four above tend to do that better than the alternatives. Pick the one whose tradeoffs match the team's appetite for customization, and the form layer stops being the thing that drags the portal release.
Sources
- SDC Library (evergreen renderer reference) - Google Open Health Stack
- NLM LHC-Forms React renderer - PDF slides, Ye Wang (NLM), DevDays 2024
- real-world patient-facing SDC pathway - PDF slides, Martijn Verhoeven (Open Health Hub), DevDays 2025