Van smaakkennis naar bruikbare software

TasteIndex helpt webshops producten afstemmen op de smaak van hun klanten. We bouwden het prototype uit tot een configureerbaar platform en ontwikkelden een AI-receptenbeoordelaar. Daarbij draaide het steeds om dezelfde vraag: hoe maak je specialistische kennis bruikbaar, zonder dat iedere nieuwe klant of ieder nieuw recept meer handwerk vraagt?

Technieken
NestJS, React, Metabase, TypeScript
Infra
AWS, Terraform
Expertise
Backend, Frontend, Productontwikkeling

Een smaakplatform met stapsgewijze webshopintegratie, zelfstandig beheer en automatische receptenrating.

Branche
E-commerce
Locatie
Rotterdam

Team

Bren

De uitdaging

Eén smaakconcept, verschillende webshops

TasteIndex had een uitgewerkte visie op smaak en een werkend prototype. Met een visuele vragenlijst konden consumenten hun smaakvoorkeuren in kaart brengen. Webshops konden die informatie gebruiken om passende producten aan te bevelen. Wat ontbrak, was een developmentteam om daar een product van te maken dat bij verschillende klanten inzetbaar was.

De opdracht was vanaf het begin om een stabiele, schaalbare en configureerbare applicatie te bouwen. Een webshop moest haar eigen uitstraling kunnen gebruiken, terwijl de technische mogelijkheden per klant verschilden. De ene partij kon een test op een pagina plaatsen; een andere wilde het volledige assortiment op persoonlijke voorkeur rangschikken.

De visuele smaaktest van TasteIndex op een tablet, met de keuze tussen citroenthee en gerookte zwarte thee

Wanneer de techniek de werkelijkheid inhaalt

TasteIndex begon met wijn. Om een wijn van smaakcoördinaten te voorzien, liet het bedrijf die door een deskundige proeven. Met meer proevers kun je dat werk verdelen. Maar TasteIndex droomde groter. Naast een uitbreiding naar andere dranken zoals koffie en frisdrank, moesten ook eten en zelfs hele maaltijden voorzien worden van een rating. Bij de stap naar recepten veranderde de uitdaging: voordat iemand een gerecht kan beoordelen, moeten de ingrediënten worden gekocht en moet het recept worden bereid.

Voor ieder nieuw datapunt moest dus eerst een complete maaltijd worden gemaakt. Bij een grote verzameling recepten zouden inkopen, koken en proeven steeds opnieuw tijd en geld kosten. Naast de software voor consumenten hadden we een manier nodig om recepten te beoordelen zonder ze allemaal fysiek te bereiden. Hoe we dat hebben opgelost, lees je verderop.

Onze aanpak

Klein beginnen en gericht uitbouwen

We begonnen bij wat een webshop daadwerkelijk kon integreren. De smaaktest kan als iframe worden opgenomen: een afzonderlijk venster binnen de pagina, met een eigen opmaak. Na de test kan de bezoeker naar een landingspagina voor een smaakcategorie worden gestuurd. Zo hoeft een eerste aansluiting nog geen persoonlijke productranking te ondersteunen.

Van daaruit kun je verder bouwen. Voor individuele adviezen raadpleegt de webshop de TasteIndex-API en verwerkt zij de matches in haar productaanbod. Dat vraagt meer technische capaciteit bij de klant. Door de integratie in stappen te ontwikkelen, ontstaat er al een bruikbare toepassing voordat alle mogelijkheden zijn aangesloten.

De beheeromgeving van TasteIndex op een laptop, met het overzicht van vragen en smaakdimensies

Beheer hoeft niet steeds via development

Een configureerbaar platform vraagt ook om een manier om al die instellingen te beheren. Daarom stelden wij voor om een Admin te bouwen. TasteIndex moest niet voor elk wissewasje een developer nodig hebben. In de beheeromgeving zijn onder meer kleuren, lettertypes, resultaatweergaven en landingspagina’s in te stellen.

Die vrijheid is tegelijk ook een valkuil. Hoe meer er per klant moet worden geconfigureerd, hoe meer werk het kost om een nieuwe klant aan te sluiten. Daarom is het belangrijk om altijd standaardinstellingen te kiezen, zodat je alleen hoeft af te wijken waar een klant dat nodig heeft.

Een embed is een begin

Ook bij de webshopintegratie zit de afweging in concrete details. Het iframe houdt de opmaak van de smaaktest gescheiden van de website waarin hij staat. Een stylesheet van de webshop kan daardoor niet zomaar de knoppen of lettertypes in de test veranderen. Tegelijk kan TasteIndex de uitstraling via de eigen instellingen op de klant afstemmen.

Die scheiding maakt de eerste aansluiting overzichtelijker, maar neemt niet alle integratiewerk weg. Zelfs het plaatsen van een iframe bleek voor sommige klanten lastig. Voor persoonlijke productranking moet de webshop bovendien de API kunnen raadplegen en de resultaten dynamisch verwerken. De eenvoudige test en de diepere koppeling hebben daarom allebei een plek in het product.

Wat dit oplevert

TasteIndex beschikt over een smaaktest die in webshops kan worden opgenomen, een koppeling voor persoonlijke productmatches en een beheeromgeving voor de dagelijkse instellingen. Het bedrijf kan daarmee zelf beheer uitvoeren dat anders bij developers terecht zou komen. Voor recepten gingen we echter nog een stap verder.

Techniek die het verschil maakt

Recepten beoordelen met vastgelegde smaakkennis

Samen met TasteIndex onderzochten we tijdens een brainstormdag hoe we het beoordelen van recepten konden aanpakken. Een taalmodel bood een manier om kennis over ingrediënten en bereiding toe te passen op receptteksten. We ontwikkelden een pipeline die het recept combineert met smaakgidsen en referentiebeoordelingen.

Daar was veel R&D voor nodig. Tijdens het ontwikkelen bekeken we de uitkomsten inhoudelijk en stuurden we de instructies bij wanneer het model de verkeerde kant op ging. Kennis van eten en koken binnen het team hielp om dat te herkennen. De kwaliteit van de aanpak hing daarmee ook af van ons vermogen om de redenering van het model te beoordelen.

Eerst onderbouwen, dan scoren

De AI Rater schat drie eigenschappen in: astringentie (de drogende of samentrekkende sensatie in de mond), mondvullendheid (zoals body en romigheid) en smaakintensiteit. Ingrediënten én bereidingsstappen gaan mee in de beoordeling. Alleen een lijst producten vertelt immers nog niet hoe die samen worden bereid.

Per dimensie vraagt de prompt eerst om een onderbouwing en daarna om een score tussen 0 en 100. De uitgebreide analyse benoemt ook de ingrediënten en technieken die elke score beïnvloeden. Zo kunnen we teruglezen hoe het model tot zijn inschatting is gekomen. Een overtuigende uitleg is op zichzelf nog geen bewijs dat de smaakbeoordeling klopt; de inhoudelijke controle tijdens het ontwikkelen bleef nodig.

De pipeline is geschreven in Python en benadert het taalmodel via OpenRouter. De vaste smaakkennis wordt aangeboden met caching, zodat die bij opeenvolgende beoordelingen kan worden hergebruikt om de kosten te drukken. Verzoeken worden los verwerkt zodat grote aantallen recepten parallel verwerkt kunnen worden.

Continuïteit en doorontwikkeling

Ook de infrastructuur leesbaar in Git

Een platform met een backend, beheeromgeving en verschillende integraties moet ook door anderen te begrijpen en te beheren zijn. We leggen daarom de infrastructuur vast als code. TasteIndex gebruikt Terraform om de AWS-inrichting te beschrijven en staat onder versiebeheer in Git.

Daarmee is de bedoelde inrichting terug te lezen en kunnen wijzigingen als code worden beoordeeld en uitgerold. Dat beperkt de afhankelijkheid van kennis over instellingen die iemand ooit handmatig in een cloudinterface heeft aangeklikt. Applicatiecode en infrastructuur volgen zo dezelfde werkwijze voor het vastleggen van veranderingen.

Het matchoverzicht van TasteIndex op een tablet, met gepersonaliseerde productaanbevelingen en matchpercentages

Afhankelijkheden bij klanten terugbrengen

Problemen rond certificaten en DNS bij klanten waren aanleiding om meer onder eigen TasteIndex-domeinen te laten draaien. Zo hoeft een wijziging minder vaak langs de technische inrichting van een afnemer. Er zijn ook nog klantdomeinen geconfigureerd; hoeveel er in eigen beheer kan, hangt af van de integratie.

In de infrastructuur zijn daarnaast foutregistratie via Sentry en dagelijkse jobs voor productfeeds opgenomen. Zulke voorzieningen maken deel uit van de technische inrichting. Bij verdere ontwikkeling blijft het nodig om ook te kijken naar de werking van de koppelingen en de gegevens die zij aanleveren.

Het datamodel verdient vroeg aandacht

Het platform begon bij wijn en kreeg later een generiek model voor producten en beoordelingen. Dat maakt de software bruikbaar voor verschillende productsoorten. Het is ook een onderdeel waarbij keuzes lang doorwerken: applicatiecode kun je aanpassen, maar een wijziging aan de structuur van bestaande gegevens vraagt extra zorg.

Daarom besteden we veel aandacht aan het datamodel, goede typing en uitleg in de code. Samen met de vastgelegde infrastructuur helpt dat om de software overdraagbaar en toekomstbestendig te houden. De volgende stap kan een nieuwe integratie zijn, betere standaardinstellingen of self-service voor afnemers. Welke stap zinvol is, bepalen we vanuit het gebruik en in samenspraak met TasteIndex.

Wil je specialistische kennis vertalen naar software die klanten kunnen gebruiken en je team zelf kan beheren? Bespreek je vraagstuk met ons.

Wat deze case laat zien

  • Begin met een haalbare integratie. Een smaaktest met categoriepagina’s kan al bruikbaar zijn voordat een webshop individuele productranking ondersteunt.

  • Domeinkennis blijft nodig bij AI. Receptenrating vraagt vastgelegde smaakkennis en mensen die inhoudelijk kunnen beoordelen waar een model de verkeerde kant op gaat.

  • Flexibiliteit vraagt aandacht voor beheer. Configuratiemogelijkheden brengen inrichtingswerk mee. Denk ook aan standaardinstellingen, zelfstandig beheer en schaalbare infrastructuur.

CONTACT

Neem contact met ons op

Heb je een vraag of wil je sparren over je software? Laat je gegevens achter, dan nemen we snel contact met je op.