Naar de inhoud
ROVE Labs
WebapplicatiesE-commerce

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

  1. 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.

  2. De lijn en de woorden

    Vijftien producten in drie reeksen, vijf bundels, een claimbeleid, een stem en een designsysteem, samen met de software geschreven.

  3. 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.

  4. 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+
  1. 01

    Berekenen

    De server rekent het mandje door: bundels, één procentuele coupon, verzendkosten. De getallen uit de browser tellen niet.

  2. 02

    Reserveren

    Voorraad wordt gecontroleerd en afgeboekt in dezelfde transactie als de bestelling, ook bij de laatste voorraad.

  3. 03

    Bevriezen

    Orderregels, prijzen en coupon liggen vast op de bestelling, zodat latere wijzigingen in de catalogus niets herschrijven.

  4. 04

    Afhandelen

    Factuur betaald, verzonden met tracking, bezorgd. Annuleren zet de voorraad precies één keer terug.

  5. 05

    Loggen

    Elke overgang legt vast wie het deed en wat het daarvoor was, als tijdlijn in de admin.

Aetrium-productpagina voor Hyaluronic Acid 2% + B5 met ingrediënten en een bestelblok

(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
  1. 01

    Toestemming

    18+ en een aparte keuze voor de modelstap.

  2. 02

    Opnemen

    Live kwaliteitscheck op houding, licht, scherpte en uitdrukking; beste van drie beelden.

  3. 03

    Meten

    Kleur, roodheid, glans, onder de ogen en textuur per zone, op het apparaat.

  4. 04

    Scoren

    Vijf gewogen metingen vormen de Index. De verandering sinds de eerste scan wordt afgezet tegen normale variatie.

  5. 05

    Protocol

    Een korte routine uit de lijn, met de grenzen er duidelijk bij.

De Aetrium Index-scanpagina met een voor-en-nu-schuif, zonelabels en een voorbeeld-Indexscore

(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.

Een voorbeeldrapport van de Index: de foto met zes gemeten zones, de Indexscore en vijf metingkaarten
Het protocol: stappen voor ochtend, avond en na het scheren met referentiecodes, de regels en de methode
Het protocol, met de regels en de gepubliceerde gewichten.

(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.

De serums-pagina: vijf formules boven een pipet met een druppel
Serums
De moisture-pagina: vijf formules boven een lik crème
Moisture
De supplementenpagina: vijf formules boven een macro van capsules
Supplementen

Next step

Wil je zoiets ook?

Vertel ons over jouw versie van dit probleem.