Articles · App ExamplesUpdated September 2026

Telehealth app development is mostly everything except the call.

People arrive at telehealth app development with a picture of a video window, and the video window is the part they will spend the least time on. A visit is a record: who asked for it, what they said was wrong, who was allowed to see them, what was decided and what happens next. The call is ten minutes in the middle of that. The parts that touch patient data carry nearly all the risk, and those rules get their own page under HIPAA compliant app development.

This page covers what a virtual care app has to hold, the one piece of real time video you will not be writing yourself, what the security rules turn into as fields and screens, and what to build around the call so the visit can be answered for afterwards.

Work out your video minutes

The short version

The call is bought, the rest of the visit is built.

Almost every team that sets out to build a telehealth app starts by trying to solve video. Video is the part of this with mature vendors, a standard protocol and a published per minute price. The unsolved part is your clinic: who may see whom, what intake asks, how a no show ends, what the note has to contain before the visit can close.

So the useful way to scope telemedicine app development is to treat real time video as a line item you buy and integrate, and to spend the build on the visit record that wraps it.

A visit is a record, not a meeting link

Write the states down before anything else. A visit is requested, triaged, scheduled, consented, checked in, connected, documented, closed and billed. Some of those states fail: the patient never joins, the clinician loses signal, the visit turns into an in person referral halfway through. Each failure needs its own ending. A visit left sitting at "connected" is a row nobody can answer questions about later.

The second thing to decide is which record each screen writes to. Intake answers belong to the visit, not to the patient profile, because the answer to how long this has been going on is true on Tuesday and stale in March. Allergies, medications and conditions belong to the patient. Mixing the two is the most common data model mistake here, and it only gets expensive once you have history.

Identity is third. Before the call connects, something has to confirm that the person in the waiting room is the person on the booking, and something has to record where that person physically is. Location matters because clinician licensure and prescribing rules generally follow the patient's location, not the clinician's. Rules differ by state and by what is being prescribed, so confirm what applies to your specialty. Store the location on the visit and the question is still answerable two years later.

The video call is the one part you do not write

Real time video between two people is WebRTC, and neither React Native nor the Expo SDK ships it. The video and camera packages in an Expo project record files and play them back. They do not carry a live two way stream to another participant. To get a call you add a library, usually react-native-webrtc or a vendor SDK that wraps it.

That library is native code, and the consequence is worth knowing before you plan the sprint. Expo's own config plugin for it states that the package cannot be used in the Expo Go app because it requires custom native code, so adding it means rebuilding the app rather than reloading it. On Android the same plugin raises the minimum deployment target from 21 to 24, which can collide with other packages. Plan for a native build step from day one.

This is true of generated projects too, and it is worth saying plainly: a Newly build does not give you a real time video call on its own. What it writes is a React Native and Expo project, so the call still comes from a third party SDK you add, and you pay that vendor by the minute. Signalling, TURN servers, reconnection and call quality are a subject of their own, so we have covered the video call itself separately.

Expo config plugin for react-native-webrtc

What the security rule turns into on screen

The HIPAA Security Rule's technical safeguards are shorter than people expect, and they read like a product spec. Access control requires a unique name or number for identifying and tracking each user, and an emergency access procedure for reaching patient data when normal access fails. Both are marked Required. Automatic logoff after a predetermined time of inactivity, and encryption, are marked Addressable. Addressable does not mean optional. It means you implement it, or you document why it is not reasonable and do something equivalent.

Audit controls are a standard in their own right: mechanisms that record and examine activity in systems holding electronic protected health information. In an app that means an append only log of who opened which record and when, kept apart from the record itself. Person or entity authentication requires procedures to verify that whoever is asking for access is who they claim to be. Transmission security covers integrity controls and encryption of data in flight.

Turned into build decisions, that list is concrete. No shared clinic login on the front desk iPad, because unique user identification rules it out. A session timeout on the clinician's phone. An audit row written on every read, not only on writes. A break glass path that logs loudly. And a business associate agreement with every vendor that handles patient data on your behalf, the video vendor included, signed before the first real visit.

Consent is the other paperwork the app has to carry: what the patient agreed to, which version of the wording they were shown, and when. That is the same problem a clinical trial app has to solve, and the same answer works here. Store the consent version and timestamp, not a boolean.

45 CFR 164.312, technical safeguards

Scheduling, waiting and the part after the call

A waiting room is a queue with a clock, and it is where patients decide whether your app is any good. It has to say who is ahead of them, roughly how long that is, and what to do if they lose signal. A screen that only says please wait produces more support calls than the visits do.

No shows and reschedules are the boring half of the build and the half that pays for itself. An evening reminder, a one tap join link and a written rule for what happens after ten minutes of nobody joining will move your completed visit rate further than anything on the call screen.

After the call there is a note, sometimes an order, sometimes a prescription, and often somebody else who has to know. Family carers and home care staff are frequently the people who act on what was decided, and giving them a scoped view is a separate product with its own permissions, closer to a mobile caregiver app than to the clinician's screen.

The one number worth working out before you commit to a vendor is minutes. Video is priced per minute, a visit has at least two participants, and some vendors count each participant separately.

Try it

How many video minutes you are actually buying

Real time video is the one piece of the visit priced by the minute. Put your own clinic numbers in before you pick a vendor.

14,112 call minutes a month

Across 1,008 visits. Every one of those minutes has at least two people on it, and some vendors bill per participant minute rather than per call minute. Check which yours does before you budget, because the two numbers can differ by double.

What each route to a virtual care app gives you

OptionLive videoVisit record fits your clinicAudit log you controlWhere the effort goes
Off the shelf telehealth platformincludedtheir fieldstheir logconfiguration and workarounds
Consumer video call plus your existing recordsincludedNoNomanual admin after every visit
Telehealth widget embedded in a web portalincludedpartlypartlyintegration and browser quirks
Custom mobile app plus a video vendor SDKSDK you addYesYesthe whole app
Generated React Native project plus a video SDKSDK you addYesYesdescribing rules, then the native build

Building one around your own service

Telehealth platforms are built for the average clinic, priced per clinician per month, and shaped around a billing model that may not be yours. The fit problems are always specific: a triage question your specialty asks and theirs does not, a consent flow needing two signatures, an interpreter joining as a third participant, a follow up that must be booked before the visit can close. Any one of those becomes a workaround, and workarounds are where patient data ends up in spreadsheets.

Newly is an AI app builder. You describe the app, including those rules, and it writes a real React Native and Expo project that you own, runs it on a cloud iPhone or Android simulator while it builds, and uploads iOS builds to TestFlight using your own Apple Developer account. It costs $25 a month and there is no free plan. It is not a telehealth product, it does not sign a business associate agreement on your behalf, and as above the video call comes from a vendor you choose and pay separately.

Whichever route you take, the order that saves money is the same. Write the visit states, write the fields each screen owns, decide what the audit log records, and pick the video vendor last. Teams that pick video first rebuild the visit around that vendor's session object, which is the wrong way round.

Questions people ask about telehealth app development

Far less video than people expect. It is a visit record with states, an intake form whose answers belong to the visit rather than the patient profile, identity and location capture before the call connects, versioned consent, an audit log and the documentation afterwards. The video itself is a component you buy and integrate.

Describe the visit your service actually runs

Write down the states a visit moves through, the fields each screen owns and who is allowed to see them, then build the app around that instead of around a video window.

Start building