Aetrium: huidverzorging, geleid door gezichtsanalyse-technologie
De webshop-backend, een admin, de productlijn met alle content en een gezichtsanalyse op de telefoon die een meting omzet in een routine uit de lijn, voor een huidverzorgingsmerk dat op wetenschap is gebouwd.
27
datamodellen in de backend
38
API-routes
20
producten en bundels, 3 reeksen
60+
integratietests
Uitdaging
Aetrium verkoopt serums, moisturisers en supplementen met één belofte: eerst meten, dan formuleren. Een winkeltemplate kon die niet waarmaken. De belofte vroeg om prijzen en voorraad die je kunt vertrouwen, een catalogus met ingrediënten en concentraties, een manier om naar een gezicht te kijken en er iets eerlijks over te zeggen, en een toon die nooit meer claimt dan het bewijs toelaat. Dat maakte van één opdracht vier: een commerce-systeem, een productlijn met tekst en ontwerp, een meting die op een telefoon draait en de regels die het advies verantwoord houden.
Oplossing
Een backend die de waarheid bewaakt
Een Fastify-API met eigen database, een aparte admin, berekeningen op de server, afrekenen dat veilig opnieuw kan, voorraad die bundels delen en een logboek bij elke bestelling.
De lijn en de woorden
Vijftien producten in drie reeksen, vijf bundels, een claimbeleid, een stem en een designsysteem, samen met de software geschreven.
Een scan die op het apparaat blijft
Gezichtspunten en zonemetingen in de browser, een optionele modelstap voor lijntjes, poriën en vlekjes en geen enkele foto opgeslagen.
Van score naar tas
Een protocol met expliciete veiligheidsregels dat elk aandachtspunt via zijn referentiecode aan een product koppelt en de tas in één stap vult.
Resultaat
Aetrium is gebouwd en draait lokaal; het is niet gelanceerd, dus er zijn geen verkoop- of klantresultaten om te melden. De Index-scan is een demo: de schaal is een voorlopige kalibratie en niet gevalideerd, wat de interface in gewone woorden zegt. Voor de lancing staan een herhaalbaarheidspilot, een test-hertest-onderzoek, een privacy-effectbeoordeling en juridische toetsing, koppeling met een betaalprovider, hosting en een afdrukbaar rapport gepland.
(01)
Een backend waar de server beslist
De winkel mag zeggen wat hij wil over een prijs of een voorraad. De backend gelooft het niet. Elk winkelmandje wordt op de server opnieuw doorgerekend, prijzen staan in hele centen en een bestelling is een momentopname van wat klopte op het moment van afrekenen.
Afrekenen is één transactie: de voorraad gaat eraf, de coupon wordt verbruikt, de orderregels worden bevroren en de bevestigingsmail wordt klaargezet. Een sleutel die de client meestuurt maakt opnieuw proberen veilig, dus een dubbele tik of een haperende verbinding geeft nooit twee bestellingen. De mail gaat pas na de commit de deur uit, zodat een mailprobleem een betaalde bestelling nooit terugdraait.
Eromheen zit wat een winkelteam elke dag nodig heeft: een aparte admin voor bestellingen, producten, bundels, acties, leveranciers en categorieën, een logboek bij elke wijziging van een bestelling en voorraad die bundels delen in plaats van dubbel te tellen. Betaalstatus, leverstatus en betaalmethode zijn aparte velden met centrale overgangen, zodat een betaalprovider later kan worden toegevoegd zonder bestellingen om te bouwen.
- datamodellen
- 27
- API-routes
- 38
- talen in de admin
- 2
- integratietests
- 60+
01
Berekenen
De server rekent het mandje door: bundels, één procentuele coupon, verzendkosten. De getallen uit de browser tellen niet.
02
Reserveren
Voorraad wordt gecontroleerd en afgeboekt in dezelfde transactie als de bestelling, ook bij de laatste voorraad.
03
Bevriezen
Orderregels, prijzen en coupon liggen vast op de bestelling, zodat latere wijzigingen in de catalogus niets herschrijven.
04
Afhandelen
Factuur betaald, verzonden met tracking, bezorgd. Annuleren zet de voorraad precies één keer terug.
05
Loggen
Elke overgang legt vast wie het deed en wat het daarvoor was, als tijdlijn in de admin.

(02)
Een gezicht meten op de telefoon
De Aetrium Index begint met één begeleide foto. Een model voor gezichtspunten draait in de browser, dus de eerste stap gebeurt op het apparaat: er moet één gezicht in beeld zijn, op de juiste afstand, met een rechte kop en voldoende licht en scherpte. De app houdt het beste van drie beelden over.
Uit dat beeld worden zes zones gehaald: voorhoofd, beide wangen, neus en beide gebieden onder de ogen. Per zone meet de app kleurgelijkheid en zichtbare roodheid in een perceptuele kleurruimte, glans in de T-zone, het helderheidsverschil onder de ogen en textuur. Een aparte barrièrecheck van vijf vragen vraagt hoe de huid voelt en telt niet mee in de score.
Lijntjes, poriën en vlekjes krijgen een cijfer van 1 tot 10 tegen een vaste, uitgeschreven rubric, en alleen als iemand daarvoor kiest. Vier kleine uitsneden gaan drie keer naar een vision-model en de mediaan blijft over. Zonder die stap valt de app terug op eigen schattingen en zegt dat bij het resultaat. Foto's worden niet bewaard. Scores blijven op het apparaat, niet in een account.
- gezichtspunten per beeld
- 478
- gemeten zones
- 6
- Index, gewichten openbaar
- 0–100
- foto's opgeslagen
- 0
01
Toestemming
18+ en een aparte keuze voor de modelstap.
02
Opnemen
Live kwaliteitscheck op houding, licht, scherpte en uitdrukking; beste van drie beelden.
03
Meten
Kleur, roodheid, glans, onder de ogen en textuur per zone, op het apparaat.
04
Scoren
Vijf gewogen metingen vormen de Index. De verandering sinds de eerste scan wordt afgezet tegen normale variatie.
05
Protocol
Een korte routine uit de lijn, met de grenzen er duidelijk bij.

(03)
Van meting naar routine
De resultaatpagina is het rapport: de foto met zijn zones, de Index en wat er veranderd is sinds de basismeting, een kaart per meting, de barrièrecheck en heldere uitspraken over wat de scan niet kan zien en wanneer je naar een arts gaat. De gewichten en de methode staan op de pagina zelf.
Het protocol koppelt de cijfers aan de winkel. Een aandachtspunt onder de 70 wijst naar één product via zijn referentiecode: lijntjes naar de retinal-serum, tint en vlekjes naar vitamine C, poriën naar niacinamide, onder de ogen naar de cafeïne-oogcrème. Regels houden het verstandig: maximaal drie actieve stoffen, één retinoïde, vitamine C 's ochtends en retinal 's avonds, zonnebrand zodra actieven worden gebruikt en een pauze op actieven als de barrièrecheck 'geïrriteerd' geeft. Supplementen staan in een eigen groep en worden nooit door een score getriggerd. De pagina laadt de echte catalogus en zet de hele routine in één keer in de tas.


(04)
Content en ontwerp: eerst meten, dan formuleren
Productlijn, claimregels en designsysteem schreven we naast de software. De lijn bestaat uit vijftien producten in drie reeksen van vijf (serums, moisture, supplementen) plus vijf bundels, elk met een vaste referentiecode, de stof en concentratie op het etiket en zonder geheime blends.
De toon is rustig en labnotitie-achtig: korte zinnen, cijfers in plaats van bijvoeglijke naamwoorden. Claims volgen de Europese cosmeticaregels en alleen toegestane supplementteksten, en de uitgesloten ingrediënten staan op papier. Het designsysteem, Calibrated, gebruikt matglas, een ondergrond van mist naar taupe en meetgrafieken als enige versiering, gezet in Inter Tight en IBM Plex Mono.



Next step
Wil je zoiets ook?
Vertel ons over jouw versie van dit probleem.

