Skip to main content
hipaa-compliancehealthcare-softwaresaas+2

What a HIPAA-Compliant Web Platform Needs Before Launch

The pixel on your booking page is a HIPAA disclosure. A healthcare platform needs a PHI boundary the architecture enforces, drawn before launch.

Your next reportable HIPAA disclosure will come out of the marketing team, and it may already be live. Nobody has to be careless for that to happen. A patient reads your oncology page, then books an appointment on the next screen. If a Meta Pixel loads on either page, an ad network holds a workable guess at both facts — the condition and the visit. You have made a disclosure you did not document, did not get consent for, and cannot take back.

Four large US health systems — Advocate Aurora Health, Kaiser Permanente, Novant Health and Atrium Health — have reported breaches to the HHS Office for Civil Rights tied to tracking code on their own websites. Reported as tracking-tool disclosures, not intrusions. Marketing code doing what marketing code does.

Nobody sells you a HIPAA-compliant web platform. There is no certificate for it, and any vendor offering one is selling hosting with a checkbox on top. What you can own is a platform that is defensible: every place patient data lands got there because someone decided it should. That person wrote the decision down and can still explain it two years later, when a regulator or a plaintiff’s attorney asks.

Draw the boundary before you choose a single tool

Inside the boundary: appointment booking, intake forms, symptom checkers, the portal login, results release, anywhere a URL or a form field can identify a person and imply a condition. Outside: the pages that explain who you are and what you treat.

Most organizations never draw that line, because “the website” feels like one thing. One CMS, one domain, one tag manager, one agency invoice. So the analytics configuration that belongs on the careers page ends up on the appointment form, and “does any advertising script run near PHI?” turns into a page-by-page investigation nobody finishes.

Split the deployments. Brochure site in one, run by whoever already handles your marketing. Patient-facing application in another, separate repository, separate hosting, even where that costs more every month. An audit question then resolves at the deployment level: one yes or no covering everything on that side of the line. It also lets a marketer move fast on the site that has nothing to hide, which is usually all they wanted.

Two of these decisions belong to you and not to your developer: where the line sits, named down to specific URLs, and who is allowed to add a script on the protected side. Write both down before anyone quotes you.

When a browser loads a script from another company’s domain, that company receives the request: page URL, referring page, IP address, user agent. Add session replay and it receives what the visitor typed into the form. None of it depends on a cookie, which is why cookie banners and cookie-blocking give teams false comfort. Block the cookie and the request still goes out, and the request was the disclosure.

Inside the boundary the working rule is zero third-party requests. Self-host the fonts. Keep analytics server-side, writing page views into your own database where you already control retention. Drop the map embed and the A/B testing snippet. If you want live chat on a page where someone may describe a symptom, the vendor signs a BAA or the widget does not ship there.

Then enforce the rule in code. A policy document cannot block a network request; a Content-Security-Policy that permits only your own origin turns a rogue script into a console error, and a CSP report endpoint tells you the same afternoon that somebody tried. As things stand, whoever holds the tag manager password can create a disclosure with no code review and nobody’s approval. On the pages that count, take that ability away.

HIPAA asks about reads; your logs record writes

Applications log writes, because writes are what developers debug. The questions that follow an incident are about reads. Who opened this record, when, from which account and device, on whose authority. If your logs cannot answer that for one patient on one afternoon, you will be reconstructing it from a database backup while a clock runs. Read auditing added after launch is worse still: there is no history to show, and none can be manufactured.

Four artifacts get asked for, and all four are cheaper to produce during the build:

  • A data-flow diagram naming every third party that touches PHI, with the BAA status of each. Email provider, SMS gateway, error tracker, backup destination.
  • Retention rules plus a job that enforces them. A written retention policy with no deletion job is worse than no policy, because you have documented the promise you are breaking.
  • Access control written as a matrix of roles against record types, which is a document you can hand over. An admin flag is not.
  • An export path for a patient who asks for their data, one that does not need an engineer with a SQL client.

On healthcare software builds the compliance and design review runs in week one, before the schema is settled. It sometimes ends a use case before anyone has paid to build it.

Access, environments, and the parts a demo never shows

Unique accounts and no shared logins. MFA. Roles narrow enough that a front-desk account cannot pull a full chart. Every API call attributable to a person and a session. Encryption in transit and at rest, which is table stakes and almost never the thing that fails. Backups encrypted, with a restore performed on a schedule, because a backup nobody has restored has never been tested.

Any serious web or SaaS platform needs the same tenancy, permissions and audit work. A regulated build sets the tolerance for sloppiness to zero and changes the order of the work: permissions and read auditing go in during the first sprints, beside the data model.

Debugging is where this quietly falls apart. Someone restores a production dump into staging to chase one bug, and the dump stays. Real patient records then sit in an environment half the team can reach, without the controls the production environment has. Separate the environments, use synthetic data everywhere below production, and define the infrastructure in code so a configuration change gets reviewed like any other change.

Adding this later means paying for it twice

Compliance shapes the schema, the auth model, the hosting choice and the logging design. Bolt it on afterwards and you are rewriting parts you already paid for. Row-level access introduced after the schema exists touches every query in the application. Environment separation introduced after launch means a migration, with a cutover, on a system patients are already using.

Budget it as architecture. Our SaaS platform cost guide puts regulated platforms in its fourth tier, from ₹60L, and what pushes a build into that tier is the audit trail, the environment separation, the export tooling and the read logging. A demo shows none of them, which is exactly why they get deferred.

So the pixel stays on the booking confirmation page, because nobody removed it and the campaign is performing. The tag manager keeps its list of collaborators, including whoever left last year. The read history you would need in order to show that a particular record was never opened does not exist, and cannot be created retroactively. Then something forces the question: a patient’s complaint, a security questionnaire from a hospital partner, an acquirer’s diligence list, a plaintiff’s request for discovery. The engineering is the smaller half of that bill. The larger half is explaining in writing why a script nobody approved ran on the booking page for the life of the product, and where the data went — and after the fact, nobody can answer the second part.

FAQ

Does HIPAA apply to our marketing website? It applies to protected health information wherever that information travels. A page that describes your services in general terms is rarely the issue. Once someone can book, log in, describe a symptom or upload a report on that page, tracking code there can amount to a disclosure to whoever receives the data.

Is a consent banner enough? No. Most banners do nothing to stop the network request that carries the data, and whether a click on an advertising consent notice helps you under HIPAA is a question for your counsel. Your tag manager has no opinion worth hearing on it. If the script loads, the third party already holds the page URL and the IP address.

Can we still run digital marketing? Yes, and you should. Keep the advertising stack on the pages that market, keep it off the pages where patients act, and make that split something the architecture enforces so it survives the next agency change.

Have a project in mind?

Fixed price after a paid discovery — no hourly billing. A real engineer reads every enquiry, and we reply within 24 hours.