Where we currently stand
Roadmap
We're working on the first productive report for a pilot practice. This page shows what is already built and what's coming next.
What's coming next
Planned and in progress.
Towards the first productive practice
What we're building so the first pilot doctor can use their scanner right away.
BackendIn progress
Live scanner integration
Ingest pipeline live against a real Isemeco device, not just sample data.
BackendIn progress
3D render worker
Dedicated worker service that renders rotating report GIFs from the .obj model and texture images.
BackendPlanned
Server-side 3D reprojection
Render pipeline that warps UV-texture overlays (pores, brown spots) back onto the 1:1 front projection, so all markers sit exactly on the face instead of floating as cheek wings.
After the first pilot
Features we'll build once the foundation is in place at one practice.
BackendPlanned
GDT integration with practice software
Hand reports automatically into the practice-management system (e.g. medatixx, T2med) via the GDT interface, instead of just an email link.
BackendPlanned
Multiple practices per account
Multi-tenancy for practices with multiple locations or MVZ structures.
FrontendPlanned
Multi-language reports
Patient report already available in German and English; French and Italian to follow.
CompliancePlanned
Finalise MDR classification
External regulatory assessment of whether and in which class Dermalia qualifies as a medical device.
Findings cockpit: the interactive 3D viewer for the consultation
New in the practice dashboard: a fullscreen cockpit to freely rotate and zoom a patient's 3D scan, toggle capture and diagnostic layers, and discuss the findings right on screen — with timeline and side-by-side comparison plus a treatment and home-care layer.
- New
Interactive 3D findings
Open any processed scan in a fullscreen 3D view: rotate and zoom freely, quick views (front/45°/profile) and a live rotation angle. Toggle light modes (daylight, polarised, UV) and diagnostic layers (pores, pigment, UV markers, redness, porphyrins) right on the face — with a score and short read per layer, plus clickable wrinkle regions.
- New
Timeline & side-by-side comparison
When a patient has several scans, switch between them on a timeline and see the change as a value — or place two scans side by side, rotated in sync, for a direct before/after.
- Frontend
Treatment & care in the conversation
The cockpit shows the treatments from your catalogue that match the findings. One click highlights the affected area on the model; matching home-care ingredients are shown alongside.
- Frontend
Quick access in the findings list
Every finding can be opened in 3D with one click; the per-row actions were tidied into a compact menu.
Before/after comparison in the report
When a patient returns for a second scan at the same practice, the report now shows what has changed since last time — right below the overall score, in both the web report and the PDF.
- New
Before/after comparison
On a follow-up scan at the same practice, the report shows a comparison with the previous result: overall skin score and all five axes (wrinkles, pores, pigment, redness, hydration) with their change, plus a short read on the development. Appears in the web report and the PDF when the comparison module is active.
Passkey sign-in, expiring report links and consistent logo framing
Signing in to the practice dashboard with a passkey (Touch/Face ID or Windows Hello) now works reliably. Report links expire after a while for privacy, and the practice logo is framed consistently across the report and PDF.
- New
Passkey sign-in
Practice teams can now sign in with a passkey (Touch/Face ID or Windows Hello) and register passkeys in their account — safer and faster than the magic link.
- Design
Consistent logo framing
The practice logo now sits in a clean light chip across the report and PDF, regardless of the uploaded logo's background. Without an uploaded logo, a subtle practice monogram appears.
Account passkeys, live threshold preview and report polish
Passkeys now sit on the personal account rather than on a practice and survive switching practices. The threshold sliders in the report editor take effect instantly inside the preview iframe, and the PDF report renders the practice logo and score layout cleanly.
- Frontend
My account on its own route
Passkeys and personal identity live under /dashboard/konto. Practice master data stays under Settings. Login methods survive a practice switch or an impersonation. UserMenu and the mobile nav both link to the account page.
- Frontend
Threshold sliders apply instantly in the preview iframe
The preview bridge now classifies score buckets client-side with the same logic as the server. Wrinkle tile colours and stage labels update live as the threshold sliders move in the report editor.
- Fix
Practice logo in the PDF
Vercel-Blob URL pattern in the PDF renderer is now correct. Logos reliably appear in the report PDF. SVG logos fall back gracefully to the practice name, because react-pdf cannot render external SVGs.
- Design
Score and value cards with proper spacing
The score cards in MetricBlock and WrinkleRegionCards now stack cleanly on narrow containers with 40px between the number and the next label. On wide screens the two-column layout stays.
Befund editor, smart recommendations and practice domains
A single editor for every report content surface with live preview, AI-driven treatment and ingredient recommendations per metric, practice subdomains and custom domains. Plus a Phase-2 landing, synthetic demo report and consistent mobile polish.
- Frontend
Unified report editor with live preview
Texts, modules and thresholds in one editor with an iframe live preview of /analyse/beispiel. Typing updates the preview instantly via postMessage, module toggles show and hide sections on the spot. One Save button batches every change. Mail and PDF previews in their own tabs.
- AI
Treatment and ingredient recommendations under each metric
Per report the practice catalogue is matched against the score signals. Each recommendation surfaces directly under the metric that triggers it. Per module you decide whether treatments, ingredients or both appear, plus global CTA gating (off, signals only, every card).
- Frontend
Ingredient shop links and conversation summary
Practices add affiliate or shop URLs per ingredient. At the report end a conversation-summary card collects every triggered treatment with a practice-contact CTA.
- AI
Patient chat with practice catalogue context
AI Q&A receives the practice treatment and ingredient catalogue as context. Answers stay MDR-safe (no diagnosis, no therapy recommendation) yet reference the real services the practice offers. Mobile polish: larger input area, better keyboard handling.
- Infra
Practice subdomains and custom domains
Every practice automatically gets a slug.dermalia.de subdomain for their reports. Custom domains like befund.praxis.de can be added self-service; the Vercel domain API verifies and attaches the host end-to-end. Practice hosts serve only the patient report and redirect everything else to the apex.
- Frontend
Phase 2 landing page
Nine-chapter narrative with practice tools, a specs strip and a clear product path. Duplicate CTAs removed, phone number and contact block corrected.
- Frontend
/analyse/beispiel without an Isemeco fetch
Marketing and editor previews run on a fully synthetic view model. No external dependency, no drifting data, six placeholder spectra with the same visual structure as a real report.
- Mobile
Mobile polish across the report
Tightened header and hero, doctor subline stays visible, consistent section padding, radar no longer clips, mouth markers placed correctly. Em-dashes removed from user-facing copy.
- Frontend
Clean split between Account, Profile and Branding
Practice profile, identity and booking URL now live under Branding. Account is for the person only. Sidebar labels corrected, the settings hub now feels like a configuration surface rather than a form dump.
Configurable score thresholds
Practices now decide at which score each report text appears. Seven metrics plus wrinkle stages, each with a slider editor, live preview and per-field reset to the Dermalia default.
- Backend
Per-practice thresholds for every score-driven text
Acne, brown spots, UV markers, surface pigment, pores, redness and overall wrinkles, each metric carries its own ‘high’ and ‘mid’ cut-off. The mapper reads the cut-offs fresh per report; without an override the Dermalia default stays in effect.
- Frontend
Threshold editor in the settings hub
New tab inside Report content with slider + numeric input per cut-off, a coloured preview band per metric, and a 4-stage editor for the wrinkle classification. Owner and admin can save or reset to the default with one click.
Phase 2, Patient report v2
Nine-chapter narrative arc with AI commentary, settings hub for practices and before/after comparison. dermalia.de live, mail delivery verified.
- Frontend
Report as a guided journey
9 chapters from hero through radar, captures, strengths/signals, wrinkles, pattern to conversation and next steps. Sticky 3D hero, consistent imagery, clear section transitions.
- AI
AI narrative engine
Structured narrative output via Gemini Pro with five beats (headline, strengths, signals, pattern, conversation) and MDR-safe hard constraints (no diagnosis, no therapy advice).
- Design
Consistent imagery
All capture tiles and detail blocks share the same source per spectrum. UV-texture 2:1 images with misalign trap removed, only 1:1 front projections or heatmaps with baked-in face base.
- Frontend
Settings hub with sidebar
Dedicated navigation for profile, branding, content (modules + texts), treatments, ingredients, members and privacy. Tabbed UI for content, clean separation between practice identity and visual brand.
- Backend
Treatment and ingredient CRUD
Practices maintain their own treatment catalogue and ingredient library. Report recommendations draw from this curated list instead of generic marketing copy.
- Frontend
Before / after comparison
Two reports of the same patient side by side with score deltas and visual diff across spectra. Proves treatment effect without marketing claims.
- Frontend
PDF export of the report
Print-ready PDF with practice branding, all metrics and wrinkle regions. Identical layout to the web report, cleanly rendered via @react-pdf.
- Infra
dermalia.de live
Apex + wildcard domain on Vercel, Resend for mail.dermalia.de verified with DKIM/SPF/DMARC. Report and auth mails now arrive from our own domain.
Initial scaffold
Setup day: repo, Isemeco backend skeleton, in-house design system, patient report demo.
- New
Project repo created
Next.js 16, React 19, Prisma 7, Tailwind 4, Better Auth 1.6 as the default stack.
- Backend
Isemeco API integration scaffolded
Token management, 3-endpoint fallback (D8/D9), asset download with magic-bytes detection and minimum-size check.
- Backend
Ingest pipeline with waitUntil
POST /api/ingest/:reportId triggers the entire pipeline in the background. Response returns immediately.
- Design
In-house design system
Editorial-medical, Inter throughout, formal address, calm typography, consistent score scale.
- Frontend
Sample report under /analyse/beispiel
Complete report page with radar chart, score displays and metric blocks. Runs without DB connection.