Because "I think it was smaller" is not data.
neVus is a self-hosted application for keeping a longitudinal photographic record of your moles and other skin marks: where each one sits on your body, what it looked like on each date, how large it measured against a physical reference, and how those numbers moved between dermatology visits.
Your dermatologist has hundreds of patients and approximately seven minutes. Your mole does not care. When the question "has this changed since last time?" comes up, neVus exists so that the answer is a dated series of measured photographs rather than "I think it was a little smaller".
Status: stable, 1.x. neVus installs from the personal app store or from a compose file (see docs/DEPLOYMENT.md). It does what the roadmap lists up to 1.0.0: accounts with a second factor, persons, the body map, marks and dated visits with scrubbed photographs, measurement with uncertainty, comparison views, reports for the clinician, reminders through several channels, full-body sessions, and encrypted backups that are read back; in English, Spanish and Portuguese. Minor versions keep the data and migrate it when they must; the release notes say when something changes for the operator.
- A personal record on your own server. Photos and measurements never leave the machine you run it on. No cloud, no account with anyone, no telemetry.
- A body map to register marks, a timeline of observations per mark, side-by-side, overlay and difference comparison, measurements in millimetres with their uncertainty, reminders and a calendar feed, and PDF reports to take to an appointment.
- Full-body sessions, region by region in a fixed order, so two sessions compare zone by zone; any region can be skipped and any part of a photo blurred afterwards.
- Optional, experimental analysis per person, off by default: proposed outlines and sizes, spots on a region's photo matched to the marks of the previous session. Every proposal waits for the person's yes or no.
- Accounts for the household with roles per person, a second factor with recovery codes, nightly encrypted backups that are read back every week, and an audit trail.
- Built for a phone in front of a bathroom mirror and for a browser on a desk, packaged for CasaOS and for plain Docker Compose.
neVus is not a diagnostic tool and does not assess risk. It will never compute a melanoma probability, an ABCDE score or a "see a doctor" alert. Every automated result, whether a measurement, an alignment or a candidate mark in a later photo, is presented as an observation with its uncertainty, for you to confirm or discard and for a clinician to interpret. The intended use is documentation and measurement support for a conversation with a professional. The reasoning behind this boundary is recorded in ADR-0003.
Remembering what a mole looked like eight months ago is not exactly a controlled clinical measurement. Dermatologists rarely have the time or the equipment to photograph and measure every lesion of every patient at every visit, so the longitudinal evidence, when it exists at all, lives in the patient's memory. neVus moves it into dated, measured, comparable records that fit in a PDF.
neVus is inspired by MoleMapper, the iOS research app released by Oregon Health & Science University under a BSD licence. It is a clean reimplementation for a self-hosted web stack, not a fork: the zone taxonomy, the zone geometry, the coin table and the tap-to-fit measurement idea are ported with the OHSU notice preserved in THIRD_PARTY_NOTICES.md. Everything else is new. neVus is not affiliated with or endorsed by OHSU, Sage Bionetworks or the MoleMapper study; "MoleMapper" is their trademark. The audit that led to this decision is in docs/audits/MOLEMAPPER_AUDIT.md and the decision itself in ADR-0002.
| Phase | Release | What becomes possible |
|---|---|---|
| 0 — Discovery | — | Audits, research, product questions, requirements, architecture, design brief |
| 1 — Foundation | internal | Accounts and profiles, photo ingestion with metadata scrubbing, the design system, the application shell |
| 2 — Deployment | first release candidate | Container image, CasaOS app store entry, backup and restore |
| 3 — Core tracking | 0.1.0 | Body map, marks, photographed observations with a quality check, measurement in millimetres against a printed card or a coin, timelines, reminders, encrypted export |
| 4 — Comparison and reports | 0.2.0 | Side-by-side, overlay and difference views, measurement charts, PDF reports, "prepare my visit" |
| 5 — Computer vision | 0.3.0 | Assisted segmentation and measurement, framing checks, reproducible analysis records (opt-in, experimental) |
| 6 — Full-body sessions | 0.4.0 | Guided zone-by-zone capture, matching between sessions, candidate review (opt-in, experimental) |
| 7 — Hardening | 1.0.0 | Second factor with recovery codes, accounts administration, weekly read-back of the backups, blurring parts of session photos, zoom-to-zone placement, an accessibility statement and a threat model, pages that load on demand |
| 8 — Beyond | 1.x | Descriptive shape and colour of a mark over time, push notifications behind a flag, more languages |
- Audits: MoleMapper_Final · the personal CasaOS app store
- Research: landscape of projects, datasets, algorithms and regulation · name check · CasaOS / ZimaOS store conventions
- Product: questions for the Product Owner
- Decisions: architecture decision records
- Requirements and plans: product requirements · architecture · roadmap
- Running it: development · deployment · security · privacy
- Design: design brief · identity · body map · reference card
- Analysis and assurance: model card of every analyzer · threat model · accessibility
Read CONTRIBUTING.md. Everything in this repository is written in English. Branches follow GitFlow, commits follow Conventional Commits with a DCO sign-off, and pull requests need green checks. Never attach photographs of real people to issues or pull requests; synthetic fixtures exist for that.
neVus is licensed under the GNU Affero General Public License, version 3.0 only. See LICENSE. Notices for third-party material are in THIRD_PARTY_NOTICES.md.