Skip to content

Compliance

The gate that refuses to publish — including when it refuses us

Dental advertising is regulated, and the penalty falls on the practice, not on the software vendor. So the rules are not a checklist we hand over: they are conditions the build enforces, and a config that would breach them does not become a website.

The gate that refuses to publish — including when it refuses us

Two rules, enforced two different ways

What must be there: the professional registration

A public dental page without a professional registration number is a violation. So the field is required by the schema — not validated in a form, not checked in review. A config without it is not an incomplete config; it is not a config.

  • CRO in Brazil, cédula profesional in Mexico.
  • Required on every professional, not once per site.
  • The CLI reports the exact missing field and exits non-zero.
What must be there: the professional registration

What must not be there: the conversion register

Price hooks, discounts, guarantees and superlatives are forbidden in Brazilian dental advertising. Everything the industry teaches as "converting copy" is exactly the set that is illegal on a patient-facing dental page — so the generator does not offer it, and the gate scans for it.

What must not be there: the conversion register

And where the gate cannot judge, it is closed

The rules engine was written for Brazilian dental advertising and its term list is in Portuguese. Run Spanish or English copy through it and it matches nothing — and reports green having checked nothing. A gate that reads nothing and reports success is worse than no gate, because it is believed. So for markets whose rules have not been verified against a primary source or local counsel, the gate is set to closed rather than to permissive, and nothing patient-facing publishes there. The two mistakes are not symmetric: being too strict costs us some legal sentences, and being too permissive publishes a violation under a practice’s own name.

Two surfaces, opposite rules, one codebase

The distinction that is easiest to get wrong — and most expensive when it is.

This site (business software)A patient-facing clinic page
Who reads itA dentist deciding on software.A patient deciding on treatment.
May show pricesYes — it is B2B software, and hiding the price would be the unfriendly choice.No. Price hooks are forbidden in dental advertising in Brazil.
May use superlativesLegal, and we still do not: an unmeasured claim is not worth making.No.
Whose brandOurs.The practice’s. Never ours.

About compliance

Does this make my practice compliant?

It removes a specific class of mistake — a published page missing a mandatory element, or carrying a forbidden claim. It is not legal advice and does not cover what happens off the website.

What if the rules change?

The rules live in one place, versioned, separate from the components. A change is a change to that file and a rebuild, not a hunt through templates.

Why does your own site show prices, then?

Because this site sells software to a dentist. The regulation covers advertising dentistry to patients. The two surfaces are governed by opposite rules, which is exactly why they are kept apart in the code.

Bring your current website and let the gate read it

It is a quick and uncomfortable exercise, and it is free.