opsinjs

Community

Where to ask, what each channel is for, and what response you can honestly expect from a small unfunded project.

Where to take what

You haveTake it to
A question about how to do somethingA discussion on the repository
A page that is wrong, unclear or out of dateAn issue, naming the page path
A bug in code or in this siteAn issue, with a reproduction
An idea for a componentProposing a component
A concern that a component or a piece of guidance could cause harmAn issue, marked as a safety concern, in public
A security vulnerabilitySecurity. Report it privately, and never open an issue.

The repository is named on Official resources, which is also where to check before trusting any address claiming to belong to this project.

Not written yet.

Four of those six rows end at a repository that is not public yet: the discussion and the three kinds of issue. The fifth, Security, carries a note of its own for a related reason. Private reporting has nowhere to land either. That leaves Proposing a component, a page on this site, as the only row you can act on today. Opening the repository is what turns the rest of this table from an intention into a route. There is also no report-a-problem control anywhere on this site, which is the shortcut the first three rows would otherwise offer: <Feedback> is written in components/docs/meta.tsx and registered as an MDX tag, and no page and no route renders it, so it needs wiring in as well as a public repository behind it. Remove this note when both are done, and check that the "Edit this page" links point at the repository.

What to expect

There is no company behind opsinjs, no support contract and no service-level agreement. Assume a small group of people doing this alongside other work. Questions are usually answered; sometimes they are not, and a follow-up after a week is reasonable rather than rude.

Two things are treated as jumping the queue, and both are stated here so that you know to say them out loud:

Safety concerns. If following this guidance could lead someone to misread their own health data, that is the most important message this project can receive. Say so in the first line. Do not soften it and do not bury it in a feature request.

Accessibility barriers. A barrier in what this system emits, or on this documentation site, is a defect and not an enhancement. This site holds itself to the same standard it publishes; where it currently fails, that is listed on This site's accessibility.

Asking a question that gets answered

This is not etiquette. These are the four things that turn a question nobody can answer into one somebody can:

  1. What you are trying to show a person. "A blood-pressure reading against their usual range" is answerable. "A card component" is not.
  2. What you tried, including which page you were reading. If the docs sent you the wrong way, that is a docs bug and worth more than the answer.
  3. The versions. Which registry URL you installed from, and when. Nothing in the file records where it came from, so the date you copied the source is often the only handle either of us has on which version you have. Paste the file if you are not sure.
  4. What "correct" would look like. Especially for anything clinical: the answer often depends on what the number means for the person reading it, and we cannot guess that.

Contributing

The Handbook → Contributing section covers the mechanics: the component checklist, the documentation templates, code style, and how to add a token without breaking the two-axis rule. Two constraints are worth knowing before you start, because they surprise people:

Documentation is not optional and not separate. A component without its specification page does not build. <PageTemplate> fails when a section required at the declared status is missing. Writing the page first is not bureaucracy here; it is how the design gets reviewed while it is still cheap to change.

Numbers are generated, never typed. Contrast figures, prop tables, token tables and catalogue rows come from scripts. A pull request that hand-edits a generated table fails CI on a diff, which is ADR 0006 doing its job.

Code of conduct

Not written yet.

No code of conduct has been adopted yet. Adopt one. The Contributor Covenant is the sensible default. Commit it to the repository, and link it from here. Until then the operating rule is the obvious one: be decent, assume good faith, and expect a health project to take safety and accessibility complaints seriously even when they are delivered impatiently.

Edit this page

Last read through against the system on 2026-09-02. Due for review every 6 months; expiry is reported by pnpm run check:freshness.

On this page