/* ============================================================ SWIRL MASTER โ Ninja Swirl Receptencompanion Application Logic v1.0 ============================================================ */ // ============================================================ // RECIPE DATABASE โ Complete recepten voor Ninja Swirl by CREAMi // ============================================================ const PROGRAMS = { ice_cream: { name: 'Ice Cream', category: 'scooped', icon: '๐จ', desc: 'Romige, scooped ijs โ de klassieker.' }, lite_ice_cream: { name: 'Lite Ice Cream', category: 'scooped', icon: '๐ฅ', desc: 'Lichtere ijs met minder vet en suiker.' }, gelato: { name: 'Gelato', category: 'scooped', icon: '๐ฎ๐น', desc: 'Italiaanse dichte, zijdezachte ijs.' }, sorbet: { name: 'Sorbet', category: 'scooped', icon: '๐ฅญ', desc: 'Fruitig, zuivelvrij en verfrissend.' }, milkshake: { name: 'Milkshake', category: 'scooped', icon: '๐ฅค', desc: 'Dikke, drinkbare traktatie.' }, smoothie_bowl: { name: 'Smoothie Bowl', category: 'scooped', icon: '๐ฅฃ', desc: 'Gezonde, lepelbare fruitschotel.' }, frozen_yogurt: { name: 'Frozen Yogurt', category: 'scooped', icon: '๐ฅ', desc: 'Frisse, romige bevroren yoghurt.' }, soft_serve: { name: 'Soft Serve', category: 'soft', icon: '๐ฆ', desc: 'Zachte, draaiende ijs โ fair stijl.' }, froyo_soft: { name: 'Frozen Yogurt Soft', category: 'soft', icon: '๐ฅ', desc: 'Zachte serve frozen yogurt.' }, custard: { name: 'Custard', category: 'soft', icon: '๐ฅ', desc: 'Rijke, eidooier-gebaseerde soft serve.' }, fruit_whip: { name: 'Fruit Whip', category: 'soft', icon: '๐', desc: 'Luchtige, fruitige soft serve.' }, high_protein: { name: 'High Protein Soft', category: 'soft', icon: '๐ช', desc: 'Eiwitrijke soft serve voor na de workout.' }, lite_soft: { name: 'Lite Soft Serve', category: 'soft', icon: '๐ฟ', desc: 'Lichtere soft serve variant.' }, // === NIEUWE CATEGORIEรN === frappe: { name: 'Frappรฉ', category: 'drinks', icon: 'โ', desc: 'IJskoude koffie- en cream frappรฉs.' }, slushie: { name: 'Slushie', category: 'drinks', icon: '๐ฅค', desc: 'Verfrissende bevroren dranken โ fruitig en koud.' }, mocktail: { name: 'Mocktail', category: 'drinks', icon: '๐ธ', desc: 'Alcoholvrije cocktails โ feestelijk en smaakvol.' }, }; const RECIPES = [ { id: "ic-vanilla", type: "ice_cream", name: "Klassieke Vanille IJs", emoji: "\ud83c\udf68", description: "De ultieme basis. Romig, zoet en perfect vanille.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 100, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00bd eetlepel vanille-extract", "\u00bd theelepel vanille pasta (optioneel)" ], steps: [ "Mix alle ingredi\u00ebnten in een kom. Roer tot de suiker volledig is opgelost.", "Giet het mengsel in een Ninja Swirl pint. Laat 2,5 cm ruimte bovenaan.", "Plaats de deksel erop en zet in de vriezer voor minimaal 24 uur.", "Haal de pint uit de vriezer. Plaats in de outer bowl.", "Selecteer het \"Ice Cream\" programma en druk op START.", "Na het spoelen: als het ijs te hard is, voeg dan 1 eetlepel melk toe en gebruik RE-SPIN.", "Serveer direct of bewaar in de vriezer met de deksel." ], mixins: ["Chocolade stukjes", "Gehakte noten", "Vers fruit", "Caramel saus", "Cookie dough stukjes"], nutrition: { calories: 160, fat: "11g", carbs: "14g", protein: "2g" }, tips: "Gebruik echte vanille pasta voor zichtbare zaadjes. Voor rijkere smaak: vervang melk door extra room." }, { id: "ic-chocolate", type: "ice_cream", name: "Death By Chocolate IJs", emoji: "\ud83c\udf6b", description: "Intens chocolade voor de echte chocoholic.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 95, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00bc kopje cacaopoeder (16g)", "\u00bd theelepel vanille-extract", "Snufje zout" ], steps: [ "Zeef het cacaopoeder in een kom om klontjes te verwijderen.", "Verwarm \u00bd kopje room zachtjes (niet koken) en los de suiker en cacao erin op.", "Roer de rest van de room, melk, vanille en zout erdoor.", "Giet in de pint, sluit af en vries 24 uur.", "Plaats in de outer bowl, selecteer \"Ice Cream\" en START.", "RE-SPIN met 1 eetlepel melk als het te vast is." ], mixins: ["Chocolade chunks", "Brownie stukjes", "Oreo koekjes", "Chocolade saus", "Geroosterde hazelnoten"], nutrition: { calories: 170, fat: "12g", carbs: "16g", protein: "2g" }, tips: "Voor extra donkere chocolade: gebruik \u00bd kopje cacao. Voeg espresso-poeder toe voor diepere smaak." }, { id: "ic-strawberry", type: "ice_cream", name: "Verse Aardbeienijs", emoji: "\ud83c\udf53", description: "Romig ijs met verse aardbeien \u2014 zomer in een pint.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 90, tags: ["beginner", "gluten_free"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00be kopje verse aardbeien, gewassen en ontkroond (128g)", "\u00bd theelepel vanille-extract", "\u00bd eetlepel citroensap" ], steps: [ "Pureer de aardbeien met citroensap in een blender tot een gladde massa.", "Mix room, melk, suiker en vanille in een kom. Roer tot suiker oplost.", "Roer het aardbeienpuree erdoor.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Ice Cream\" programma.", "RE-SPIN indien nodig." ], mixins: ["Verse aardbei stukjes", "Witte chocolade stukjes", "Biscuit stukjes", "Balsamico glazuur"], nutrition: { calories: 145, fat: "10g", carbs: "14g", protein: "2g" }, tips: "Bevroren aardbeien werken ook \u2014 laat ze volledig ontdooien. Voor intensere smaak: reduceer het puree tot de helft." }, { id: "ic-mint-choc", type: "ice_cream", name: "Mint Chocolate Chip", emoji: "\ud83c\udf3f", description: "Verfrissende munt met knapperige chocolade stukjes.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 85, tags: ["beginner", "gluten_free"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00be theelepel pepermunt extract", "3 druppels groene voedselkleuring (optioneel)", "\u00bc kopje donkere chocolade chips (28g)" ], steps: [ "Mix room, melk, suiker en munt extract tot suiker oplost.", "Voeg voedselkleuring toe voor een lichtgroene kleur (optioneel).", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Ice Cream\" programma.", "Voeg na het spoelen de chocolade chips toe via de MIX-IN functie." ], mixins: ["Extra donkere chocolade", "Andes munt stukjes", "Cacao nibs", "Oreo stukjes"], nutrition: { calories: 165, fat: "11g", carbs: "15g", protein: "2g" }, tips: "Mint extract is sterk \u2014 begin met minder. Verse muntblaadjes in de basis trekken geeft een subtielere smaak." }, { id: "ic-cookies-cream", type: "ice_cream", name: "Cookies & Cream", emoji: "\ud83c\udf6a", description: "Klassieke vanille met royale stukjes chocolate cookie.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 92, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00bd theelepel vanille-extract", "15 Oreo koekjes (of vergelijkbaar), grof gehakt" ], steps: [ "Mix room, melk, suiker en vanille tot suiker oplost.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Ice Cream\" programma.", "Voeg de gehakte koekjes toe via de MIX-IN functie.", "Bewaar een paar hele koekjes voor garnering." ], mixins: ["Extra koekjes", "Chocolade saus", "Brownie stukjes", "Marshmallow fluff"], nutrition: { calories: 190, fat: "12g", carbs: "20g", protein: "2g" }, tips: "Hak de koekjes niet te fijn \u2014 grove stukjes geven de beste textuur. Vries koekjes vooraf voor minder papperigheid." }, { id: "gl-vanilla-bean", type: "gelato", name: "Vanilla Bean Gelato", emoji: "\ud83c\uddee\ud83c\uddf9", description: "Echte Italiaanse gelato met zichtbare vanillezaadjes.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 88, tags: ["gluten_free"], diet: ["gluten_free"], program: "Gelato", ingredients: [ "1 kopje volle melk (236ml)", "\u215c kopje suiker (75g)", "2 eidooiers", "1 vanillestokje, opengesneden en uitgeschraapt", "\u00bd eetlepel maizena (optioneel, voor binding)" ], steps: [ "Verhit de melk met het vanillestokje en zaadjes tot net onder het kookpunt.", "Klop eidooiers met suiker tot bleek en luchtig.", "Giet langzaam de hete melk bij het eimengsel, al roerend.", "Giet terug in de pan en verwarm zachtjes (au bain-marie) tot het mengsel de lepel bedekt (82\u00b0C).", "Laat volledig afkoelen, minimaal 4 uur in de koelkast.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Gelato\" programma." ], mixins: ["Pistache noten", "Amaretti koekjes", "Espresso bonen", "Karamelized amandelen"], nutrition: { calories: 140, fat: "6g", carbs: "19g", protein: "4g" }, tips: "De custardbasis is de sleutel. Gebruik een thermometer \u2014 boven 85\u00b0C gaan de eieren stollen. Zeef voor gladheid." }, { id: "gl-stracciatella", type: "gelato", name: "Stracciatella Gelato", emoji: "\ud83c\udf6b", description: "Italiaanse klassieker: romige gelato met chocoladeschaafsel.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 80, tags: ["gluten_free"], diet: ["gluten_free"], program: "Gelato", ingredients: [ "1 kopje volle melk (236ml)", "\u215c kopje suiker (75g)", "2 eidooiers", "\u00bd theelepel vanille-extract", "\u00bc kopje gesmolten donkere chocolade (42g)" ], steps: [ "Maak een custardbasis: verwarm melk, klop eieren met suiker, combineer en thickly.", "Laat afkoelen en voeg vanille toe.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Gelato\" programma.", "Tijdens MIX-IN: drizzle de gesmolten chocolade erin voor dunne schilfers." ], mixins: ["Extra chocolade vlokken", "Hazelnoten paste", "Espresso", "Caramel stukjes"], nutrition: { calories: 160, fat: "8g", carbs: "18g", protein: "4g" }, tips: "De truc is hete chocolade langzaam te drizzelen tijdens het mixen \u2014 dit cre\u00ebert de dunne scherfjes." }, { id: "gl-pistachio", type: "gelato", name: "Pistache Gelato", emoji: "\ud83d\udfe2", description: "Rijke, nootachtige gelato met echte pistaches.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "30 min", freezeTime: "24u", totalTime: "24u 30m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 82, tags: ["gluten_free"], diet: ["gluten_free"], program: "Gelato", ingredients: [ "1 kopje volle melk (236ml)", "\u215c kopje suiker (75g)", "2 eidooiers", "\u00bd kopje gepelde pistaches (60g), licht geroosterd", "\u00bd theelepel amandelextract", "Snufje zout" ], steps: [ "Maal de pistaches fijn in een food processor tot een grove pasta.", "Verhit de melk en voeg de pistachepasta toe. Laat 15 minuten trekken.", "Zeef de melk (voor gladde textuur) of laat voor rustieke stijl.", "Maak de custardbasis met eidooiers en suiker.", "Combineer, laat afkoelen, giet in pint en vries 24 uur.", "Verwerk op \"Gelato\" programma." ], mixins: ["Gehakte pistaches", "Amaretti stukjes", "Donkere chocolade", "Honing-karamel"], nutrition: { calories: 180, fat: "10g", carbs: "19g", protein: "5g" }, tips: "Gebruik ongebrande, ongezouten pistaches voor de beste smaak. Siciliaanse pistaches zijn de goudstandaard." }, { id: "so-mango", type: "sorbet", name: "Mango Sorbet", emoji: "\ud83e\udd6d", description: "Tropische, zijdezachte sorbet met maar 2 ingredi\u00ebnten.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 87, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd blik mango stukken in sap (288g) \u2014 of 2 verse mango's", "1 eetlepel suiker (optioneel, afhankelijk van zoetheid mango)", "\u00bd eetlepel citroensap" ], steps: [ "Giet het blik mango met sap in een blender. Blend tot glad.", "Proef en voeg suiker toe indien nodig.", "Voeg citroensap toe om de smaak op te helderen.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Sorbet\" programma.", "RE-SPIN met 1 eetlepel water als het te vast is." ], mixins: ["Lime zeste", "Chili vlokken", "Kokos rasp", "Verse munt"], nutrition: { calories: 70, fat: "0g", carbs: "18g", protein: "0g" }, tips: "Verse mango werkt fantastisch \u2014 kies rijpe, zachte vruchten. Ananas of passievrucht mengt perfect." }, { id: "so-pineapple", type: "sorbet", name: "Ananas Sorbet", emoji: "\ud83c\udf4d", description: "Briljante, zonnige sorbet \u2014 puur fruit genot.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 1m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 75, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd blik ananas stukken in sap (288g)", "\u00bd eetlepel citroensap", "\u00bd eetlepel suiker (optioneel)" ], steps: [ "Blend ananas met sap tot glad.", "Voeg citroensap en suiker naar smaak toe.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Sorbet\" programma." ], mixins: ["Kokosvlokken", "Rum-karamel", "Basilicum", "Chili zout"], nutrition: { calories: 60, fat: "0g", carbs: "15g", protein: "0g" }, tips: "Voor een pina colada twist: vervang de helft van de ananas door kokosmelk." }, { id: "so-raspberry", type: "sorbet", name: "Framboos Sorbet", emoji: "\ud83e\uded0", description: "Intens fruitige sorbet met levendige kleur.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 78, tags: ["beginner", "vegan", "dairy_free", "gluten_free", "low_sugar"], diet: ["vegan", "dairy_free", "gluten_free", "low_sugar"], program: "Sorbet", ingredients: [ "150g diepgevroren frambozen (of vers)", "\u00bc kopje suiker (50g)", "\u215b kopje water (30ml)", "\u00bd eetlepel citroensap" ], steps: [ "Verhit suiker met water tot een siroop. Laat afkoelen.", "Blend frambozen met siroop en citroensap.", "Zeef voor gladde textuur (verwijder zaadjes).", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Sorbet\" programma." ], mixins: ["Verse bessen", "Witte chocolade", "Munt", "Balsamico"], nutrition: { calories: 65, fat: "0g", carbs: "16g", protein: "0g" }, tips: "De siroop basis is belangrijk \u2014 het voorkomt kristalvorming. Agave of honing werken ook." }, { id: "so-lemon", type: "sorbet", name: "Citroen Sorbet", emoji: "\ud83c\udf4b", description: "Verfrissende, zurige sorbet \u2014 perfecte palate cleanser.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 65, tags: ["beginner", "vegan", "dairy_free", "gluten_free", "low_sugar"], diet: ["vegan", "dairy_free", "gluten_free", "low_sugar"], program: "Sorbet", ingredients: [ "\u00bd kopje vers citroensap (4-5 citroenen)", "\u00be kopje suiker (150g)", "1 kopje water (236ml)", "\u00bd eetlepel citroen zeste" ], steps: [ "Maak een siroop: verhit water met suiker tot opgelost.", "Voeg citroensap en zeste toe. Laat afkoelen.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Sorbet\" programma." ], mixins: ["Lavendel", "Basilicum", "Vodka (voor zachtere textuur)", "Munt"], nutrition: { calories: 90, fat: "0g", carbs: "23g", protein: "0g" }, tips: "Een scheutje vodka (1 eetlepel) verlaagt het vriespunt en maakt de sorbet smoother. Alcohol kookt niet uit \u2014 blijft aanwezig." }, { id: "fy-one-ingredient", type: "frozen_yogurt", name: "One-Ingredient Frozen Yogurt", emoji: "\ud83e\udd5b", description: "Letterlijk alleen yoghurt. Simpel, snel, heerlijk.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 83, tags: ["beginner", "low_sugar"], diet: ["low_sugar"], program: "Frozen Yogurt", ingredients: ["1 pint (236ml) volle yoghurt (Griekse stijl)"], steps: [ "Roer de yoghurt glad.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Frozen Yogurt\" programma.", "RE-SPIN met 1 eetlepel melk indien te vast." ], mixins: ["Honing", "Vers fruit", "Granola", "Chocolade", "Pindakaas"], nutrition: { calories: 75, fat: "4g", carbs: "6g", protein: "4g" }, tips: "Volle, Griekse yoghurt geeft de beste textuur. Mager yoghurt wordt ijsachtig. Voeg honing voor zoetheid." }, { id: "fy-classic-tart", type: "frozen_yogurt", name: "Classic Tart Frozen Yogurt", emoji: "\ud83c\udf66", description: "Pinkberry-stijl tart fro-yo met maar 4 ingredi\u00ebnten.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 89, tags: ["beginner"], diet: [], program: "Frozen Yogurt", ingredients: [ "1 pint (236ml) volle yoghurt", "\u215b kopje karnemelk (30ml)", "1 eetlepel vers citroensap", "1\u00bd eetlepels suiker (optioneel)" ], steps: [ "Mix alle ingredi\u00ebnten in een kom tot glad.", "Giet in de pint, sluit af en vries 24 uur.", "Verwerk op \"Frozen Yogurt\" programma." ], mixins: ["Vers fruit", "Granola", "Chocolade chips", "Kokos", "Honing-amandel"], nutrition: { calories: 85, fat: "4g", carbs: "9g", protein: "4g" }, tips: "De karnemelk geeft de karakteristieke tartness. Geen karnemelk? Voeg extra citroensap toe." }, { id: "fy-berry", type: "frozen_yogurt", name: "Mixed Berry Frozen Yogurt", emoji: "\ud83e\uded0", description: "Romige yoghurt met een mix van zomerbessen.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 76, tags: ["beginner", "gluten_free"], diet: ["gluten_free"], program: "Frozen Yogurt", ingredients: [ "1 pint (236ml) volle Griekse yoghurt", "\u00bd kopje gemengde bessen (framboos, bosbes, aardbei) \u2014 vers of bevroren", "1\u00bd eetlepels honing (22g)", "\u00bd theelepel vanille-extract" ], steps: [ "Blend de bessen kort (laat wat stukjes zitten voor textuur).", "Mix yoghurt, honing en vanille.", "Roer het bessenmengsel erdoor (marmeren effect).", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Frozen Yogurt\" programma." ], mixins: ["Granola", "Verse bessen", "Witte chocolade", "Chia zaad"], nutrition: { calories: 90, fat: "4g", carbs: "11g", protein: "4g" }, tips: "Marmeren door niet volledig te mixen geeft een prachtig visueel effect en afwisselende smaak." }, { id: "ss-vanilla", type: "soft_serve", name: "Easy Vanilla Soft Serve", emoji: "\ud83c\udf66", description: "Klassieke zachte vanille \u2014 zoals de kermis, maar beter.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 91, tags: ["beginner"], diet: [], program: "Soft Serve", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "1 theelepel vanille-extract", "Snufje zout" ], steps: [ "Mix alle ingredi\u00ebnten in een kom. Roer tot suiker oplost.", "Giet in de pint (met soft serve nozzle), sluit af en vries 24 uur.", "Plaats in de outer bowl met de swirl attachment.", "Selecteer \"Soft Serve\" en START.", "Doseer met de swirl knop voor mooie zwierige serving." ], mixins: ["Chocolade saus (spritz)", "Gehakte noten", "Kleurrijke sprinkles", "Caramel spiraal"], nutrition: { calories: 155, fat: "11g", carbs: "13g", protein: "2g" }, tips: "Laat de pint 2 minuten op het aanrecht staan voor verwerking voor betere textuur. De swirl nozzle is de truc!" }, { id: "ss-chocolate", type: "soft_serve", name: "Chocolade Soft Serve", emoji: "\ud83c\udf6b", description: "Zachte, romige chocolade soft serve in 10 minuten.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "0 (direct)", totalTime: "10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 86, tags: ["beginner"], diet: [], program: "Soft Serve", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u00bc kopje cacaopoeder (16g)", "\u2153 kopje suiker (66g)", "\u00bd theelepel vanille-extract" ], steps: [ "Zeef cacaopoeder in een kom.", "Verwarm \u00bd kopje melk en los cacao en suiker erin op.", "Roer room, vanille en de rest erdoor.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Soft Serve\" programma met swirl attachment." ], mixins: ["Chocolade saus spritz", "Brownie stukjes", "Oreo crumble", "Geroosterde amandelen"], nutrition: { calories: 165, fat: "12g", carbs: "15g", protein: "2g" }, tips: "Voor extra rijkdom: voeg 2 eetlepels gesmolten donkere chocolade toe aan de basis." }, { id: "ss-strawberry", type: "soft_serve", name: "Verse Aardbei Soft Serve", emoji: "\ud83c\udf53", description: "Zoete, romige aardbei soft serve met echt fruit.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 84, tags: ["beginner"], diet: [], program: "Soft Serve", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u00bd kopje verse aardbeien, geblend (85g)", "\u2153 kopje suiker (66g)", "\u00bd theelepel vanille-extract" ], steps: [ "Blend aardbeien tot glad puree.", "Mix met room, melk, suiker en vanille.", "Giet in pint met nozzle, sluit en vries 24 uur.", "Verwerk op \"Soft Serve\" programma." ], mixins: ["Verse aardbei stukjes", "Witte chocolade saus", "Biscuit crumble", "Balsamico"], nutrition: { calories: 145, fat: "10g", carbs: "13g", protein: "2g" }, tips: "De swirl geeft een prachtige roze spiralen. Garneer met een hele aardbei." }, { id: "ms-classic", type: "milkshake", name: "Klassieke Chocolade Milkshake", emoji: "\ud83e\udd64", description: "Dikke, romige milkshake \u2014 diner stijl.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 82, tags: ["beginner"], diet: [], program: "Milkshake", ingredients: [ "2 kopjes vanille ijs basis (van bovenstaand recept)", "\u00bd kopje volle melk (120ml)", "3 eetlepels chocoladesiroop", "1 theelepel vanille-extract" ], steps: [ "Bereid de vanille ijs basis voor en vries 24 uur.", "Plaats de bevroren basis in de pint.", "Voeg melk en chocoladesiroop toe.", "Verwerk op \"Milkshake\" programma.", "Serveer direct in een hoog glas met een rietje." ], mixins: ["Whipped cream", "Chocolade saus", "Beschuitje", "Cherry"], nutrition: { calories: 380, fat: "24g", carbs: "38g", protein: "6g" }, tips: "Pas de hoeveelheid melk aan voor gewenste dikte. Minder melk = dikkere shake." }, { id: "ms-coffee", type: "milkshake", name: "Coffee Caramel Milkshake", emoji: "\u2615", description: "Espresso-liefhebbers droomshake met karamel.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 79, tags: ["beginner"], diet: [], program: "Milkshake", ingredients: [ "2 kopjes vanille ijs basis", "\u00bd kopje sterke espresso (afgekoeld)", "3 eetlepels karamelsiroop", "\u00bd kopje melk (120ml)" ], steps: [ "Bereid vanille ijs basis voor en vries 24 uur.", "Plaats basis in pint met espresso, karamel en melk.", "Verwerk op \"Milkshake\" programma." ], mixins: ["Karamel saus drizzle", "Espresso bonen (gehakt)", "Chocolade", "Whipped cream"], nutrition: { calories: 360, fat: "22g", carbs: "36g", protein: "5g" }, tips: "Gebruik echte espresso voor de beste smaak. Instant koffie werkt maar is minder intens." }, { id: "sb-acai", type: "smoothie_bowl", name: "A\u00e7a\u00ed Bowl", emoji: "\ud83e\uded0", description: "Superfood breakfast bowl met a\u00e7a\u00ed en bessen.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 72, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Smoothie Bowl", ingredients: [ "2 a\u00e7a\u00ed packets (bevroren, 200g totaal)", "1 banaan, bevroren", "\u00bd kopje bessenmix (bevroren)", "\u00bc kopje amandelmelk (60ml)", "1 eetlepel honing of agave" ], steps: [ "Blend alle ingredi\u00ebnten tot een dikke massa.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Smoothie Bowl\" programma.", "Garneer met gesneden fruit, granola en honing." ], mixins: ["Granola", "Vers fruit", "Chia zaad", "Kokos", "Cacao nibs"], nutrition: { calories: 220, fat: "5g", carbs: "42g", protein: "4g" }, tips: "Houd de base dik \u2014 minder vloeistof = beter lepelbaar. Toppings maken het af!" }, { id: "sb-green", type: "smoothie_bowl", name: "Green Goddess Bowl", emoji: "\ud83e\udd6c", description: "Spinazie, banaan en mango \u2014 gezond en kleurrijk.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 60, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Smoothie Bowl", ingredients: [ "1 banaan, bevroren", "1 kopje mango stukken (bevroren)", "1 hand spinazie", "\u00bd avokado", "\u00bc kopje amandelmelk (60ml)", "1 eetlepel honing" ], steps: [ "Blend alles tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Smoothie Bowl\" programma.", "Garneer met chia, kokos en vers fruit." ], mixins: ["Chia zaad", "Hennep zaad", "Vers fruit", "Granola", "Noten boter"], nutrition: { calories: 200, fat: "7g", carbs: "34g", protein: "4g" }, tips: "Avokado maakt het extra romig. Bevroren banaan is essentieel voor de textuur." }, { id: "cu-vanilla", type: "custard", name: "Vanilla Custard Soft Serve", emoji: "\ud83e\udd5a", description: "Rijke, eggnog-achtige soft serve met echte eidooiers.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 81, tags: ["gluten_free"], diet: ["gluten_free"], program: "Custard", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "2 eidooiers", "\u215c kopje suiker (75g)", "1 vanillestokje, uitgeschraapt", "Snufje zout" ], steps: [ "Verhit melk en room met vanille tot net onder kookpunt.", "Klop eidooiers met suiker en zout tot bleek.", "Temperer: giet langzaam hete melk bij eieren, al roerend.", "Verwarm au bain-marie tot 82\u00b0C (de lepel bedekt).", "Laat volledig afkoelen, minimaal 4 uur.", "Giet in pint met nozzle, sluit en vries 24 uur.", "Verwerk op \"Custard\" programma." ], mixins: ["Nootmuscaat", "Gember koekjes", "Caramel swirl", "Geroosterde pecan"], nutrition: { calories: 210, fat: "16g", carbs: "14g", protein: "4g" }, tips: "Custard moet echt au bain-marie \u2014 directe hitte stolt de eieren. Een thermometer is onmisbaar." }, { id: "fw-tropical", type: "fruit_whip", name: "Tropical Pineapple Mango Whip", emoji: "\ud83c\udf34", description: "Dole Whip stijl \u2014 tropisch, fruitig en licht.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 85, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Fruit Whip", ingredients: [ "\u00bd kopje ananas stukken (bevroren of blik, 200g)", "\u00bd kopje mango stukken (bevroren of blik, 200g)", "1 eetlepel suiker (optioneel)", "\u00bd eetlepel citroensap" ], steps: [ "Blend alle ingredi\u00ebnts tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Fruit Whip\" programma." ], mixins: ["Kokosvlokken", "Lime zeste", "Munt", "Chili zout", "Rum"], nutrition: { calories: 55, fat: "0g", carbs: "14g", protein: "0g" }, tips: "Dit is de Dole Whip ervaring thuis! Zorg dat het fruit goed bevroren/uit blik is voor consistentie." }, { id: "fw-strawberry", type: "fruit_whip", name: "Aardbei Fruit Whip", emoji: "\ud83c\udf53", description: "Luchtige, fruitige soft serve met verse aardbeien.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 77, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Fruit Whip", ingredients: [ "1 kopje aardbeien (bevroren of vers, 340g)", "1 eetlepel suiker", "\u00bd eetlepel citroensap", "1 eetlepel water" ], steps: [ "Blend alle ingredi\u00ebnten tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Fruit Whip\" programma." ], mixins: ["Balsamico", "Verse munt", "Witte chocolade", "Basque cake stukjes"], nutrition: { calories: 40, fat: "0g", carbs: "10g", protein: "0g" }, tips: "Bevroren aardbeien geven intensere smaak. Voeg een scheutje kokosmelk voor romigheid." }, { id: "hp-choc-pb", type: "high_protein", name: "Chocolate Peanut Butter Protein", emoji: "\ud83d\udcaa", description: "Eiwitrijke soft serve \u2014 perfect post-workout traktatie.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 80, tags: ["beginner"], diet: [], program: "High Protein Soft", ingredients: [ "1\u00bd kopjes chocolade eiwitschuddishek (kant-klaar, 355ml)", "\u00bd kopje Griekse yoghurt (120g)", "2 eetlepels pindakaas", "1 eetlepel chia zaad" ], steps: [ "Mix alle ingredi\u00ebnten in een kom tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"High Protein\" programma." ], mixins: ["Pindakaas drizzle", "Chocolade stukjes", "Banaan", "Granola"], nutrition: { calories: 240, fat: "10g", carbs: "16g", protein: "25g" }, tips: "Kant-klare eiwitschuddishek werkt beter dan poeder \u2014 de textuur is creamer. Premier Protein of Fairlife aanbevolen." }, { id: "hp-cinnamon", type: "high_protein", name: "Cinnamon Roll Protein IJs", emoji: "\ud83d\udcaa", description: "Kaneelbrood smaak in eiwitrijke soft serve.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 68, tags: ["beginner"], diet: [], program: "High Protein Soft", ingredients: [ "1\u00be kopje kaneelbrood eiwitschuddishek (415ml)", "2 eetlepels vanille pudding mix (suikervrij optioneel)", "\u00bd theelepel kaneel" ], steps: [ "Mix alle ingredi\u00ebnten tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"High Protein\" programma." ], mixins: ["Kaneel suiker", "Beschuitjes", "Karamel drizzle", "Pecan noten"], nutrition: { calories: 200, fat: "5g", carbs: "14g", protein: "28g" }, tips: "De pudding mix geeft de textuur van echt ijs. Probeer ook met andere smaken schuddishek." }, { id: "df-coconut-vanilla", type: "ice_cream", name: "Dairy-Free Vanilla Coconut IJs", emoji: "\ud83e\udd65", description: "Romige vegan ijs met kokosmelk als base.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 73, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Ice Cream", ingredients: [ "\u00bd blik volle kokosmelk (200ml)", "\u00bc kopje amandelmelk (60ml)", "\u00bc kopje suiker (33g)", "\u00bd eetlepel coconut oil (gesmolten)", "\u00bd theelepel vanille-extract" ], steps: [ "Mix alle ingredi\u00ebnten in een kom. Roer tot suiker oplost.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Ice Cream\" programma." ], mixins: ["Geroosterde kokos", "Chocolade", "Mango", "Pistaches", "Lime zeste"], nutrition: { calories: 140, fat: "10g", carbs: "12g", protein: "1g" }, tips: "Volle kokosmelk (geen light) is essentieel. Het kokosvet zorgt voor de romige textuur." }, { id: "keto-vanilla", type: "lite_ice_cream", name: "Keto Vanille IJs", emoji: "\ud83e\udd51", description: "Suikervrije, keto-vriendelijke ijs met roomkaas.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 65, tags: ["beginner", "keto", "low_sugar", "gluten_free"], diet: ["keto", "low_sugar", "gluten_free"], program: "Lite Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje amandelmelk, ongezoet (118ml)", "30g roomkaas, verzacht", "\u00bc kopje erythritol of allulose (33g)", "\u00bd theelepel vanille-extract", "Snufje zout" ], steps: [ "Verwarm een beetje room en los de roomkaas in op.", "Roer alle ingredi\u00ebnten samen tot glad.", "Giet in pint, sluit en vries 24 uur.", "Verwerk op \"Lite Ice Cream\" programma." ], mixins: ["Pecan noten", "Suikervrije chocolade", "Kaneel", "Maca powder"], nutrition: { calories: 130, fat: "12g", carbs: "3g", protein: "2g" }, tips: "Allulose werkt het beste voor keto \u2014 het bevriest niet zo hard als erythritol. Confectionerende sweeter mixt beter." }, { id: "ic-salted-caramel-pecan", type: "ice_cream", name: "Salted Caramel Pecan", emoji: "\ud83e\udd68", description: "Gouden karamel met geroosterde pecan en een snuf zeezout.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 93, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "4 el boter", "\u00bd tl zeezout", "1 tl vanille-extract", "\u215c kopje pecannoten, geroosterd en gehakt (45g)" ], steps: [ "Maak karamel: smelt suiker in een pan op middelhoog vuur tot goudbruin.", "Voeg voorzichtig boter en room toe (let op spatten).", "Roer het zout en vanille erdoor. Laat afkoelen.", "Voeg de melk toe en roer glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg pecans toe via MIX-IN." ], mixins: ["Extra karamel saus", "Geroosterde amandelen", "Chocolade stukjes"], nutrition: { calories: 210, fat: "16g", carbs: "15g", protein: "2g" }, tips: "De karamel moet donker zijn maar niet verbrand \u2014 goudbruin is het perfecte punt." }, { id: "ic-earl-grey", type: "ice_cream", name: "Earl Grey Tea IJs", emoji: "\ud83e\uded6", description: "Verfijnd ijs met Earl Grey thee \u2014 bergamot en vanille.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 72, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "4 Earl Grey theeblaadjes (losse thee)", "1 tl vanille-extract" ], steps: [ "Verhit room en melk tot net onder kookpunt.", "Voeg theeblaadjes toe en laat 15 minuten trekken.", "Zeef de vloeistof en druk zoveel mogelijk smaak uit de blaadjes.", "Roer suiker en vanille erdoor tot opgelost.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Shortbread koekjes", "Witte chocolade", "Hazelnoten"], nutrition: { calories: 155, fat: "11g", carbs: "13g", protein: "2g" }, tips: "Lavender Earl Grey geeft een extra bloemige dimensie. Gebruik losse thee, niet zakjes." }, { id: "ic-lavender-honey", type: "ice_cream", name: "Lavendel-Honing IJs", emoji: "\ud83d\udc9c", description: "Bloemig, delicaat ijs met gedroogde lavendel en zoete honing.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 65, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u00bc kopje honing (58g)", "2 tl gedroogde culinaire lavendelbloemen", "1 tl vanille-extract" ], steps: [ "Verhit melk en room tot net onder kookpunt.", "Voeg lavendel toe, dek af en laat 20 minuten trekken.", "Zeef de lavendel eruit.", "Roer honing en vanille erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Honing-amandel clusters", "Witte chocolade", "Verse bessen"], nutrition: { calories: 165, fat: "11g", carbs: "14g", protein: "2g" }, tips: "Gebruik alleen culinaire lavendel (geen potpourri!). Te veel lavendel maakt het zeepachtig." }, { id: "ic-matcha-white-choc", type: "ice_cream", name: "Matcha Witte Chocolade", emoji: "\ud83c\udf75", description: "Aardse matcha met romige witte chocolade stukjes.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 78, tags: ["beginner"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "2 el ceremoniele matcha poeder", "1 tl vanille-extract", "\u00bc kopje witte chocolade stukjes (42g)" ], steps: [ "Zeef matcha poeder in een klein beetje warme melk. Roer tot een gladde pasta.", "Mix met rest van room, melk, suiker en vanille.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg witte chocolade toe via MIX-IN." ], mixins: ["Zwarte sesam", "Geroosterde rijst", "Rode bonen paste"], nutrition: { calories: 175, fat: "12g", carbs: "17g", protein: "2g" }, tips: "Ceremoniele matcha geeft de beste kleur en smaak. Culinaire matcha is bitterder." }, { id: "ic-tiramisu", type: "ice_cream", name: "Tiramisu IJs", emoji: "\u2615", description: "Espresso, mascarpone en een vleugje amaretto \u2014 Italiaanse traktatie.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 86, tags: [], diet: [], program: "Ice Cream", ingredients: [ "\u00bd kopje mascarpone (112g)", "\u00bd kopje zware room (118ml)", "\u00bc kopje suiker (50g)", "2 el sterke espresso, afgekoeld", "1 el amaretto (optioneel)", "1 tl vanille-extract", "\u00bd kopje ladyfingers, in stukken" ], steps: [ "Klop mascarpone met suiker glad.", "Voeg espresso, amaretto en vanille toe.", "Vouw de room erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg ladyfinger stukjes toe via MIX-IN." ], mixins: ["Cacao poeder", "Espresso bonen", "Amaretto koekjes"], nutrition: { calories: 190, fat: "13g", carbs: "16g", protein: "3g" }, tips: "Dompel de ladyfingers kort in extra espresso voor een authentieke smaak." }, { id: "ic-cheesecake", type: "ice_cream", name: "New York Cheesecake IJs", emoji: "\ud83c\udf70", description: "Romige cheesecake smaak met stukjes graham cracker.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 84, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "\u00bd kopje roomkaas, verzacht (112g)", "\u00be kopje zware room (178ml)", "\u2153 kopje suiker (66g)", "1 tl vanille-extract", "1 el citroensap", "\u00bd kopje graham crackers, gehakt" ], steps: [ "Mix roomkaas met suiker glad.", "Voeg room, vanille en citroensap toe. Roer tot suiker oplost.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg graham crackers toe via MIX-IN." ], mixins: ["Verse bessen", "Karamel saus", "Blauwe bessen compote"], nutrition: { calories: 195, fat: "14g", carbs: "16g", protein: "2g" }, tips: "Gebruik volle roomkaas voor de beste textuur. Light wordt ijsachtig." }, { id: "ic-red-velvet", type: "ice_cream", name: "Red Velvet IJs", emoji: "\ud83d\udfe5", description: "Rode fluweel cake iJs met cacao en cream cheese swirl.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 79, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "2 el cacaopoeder", "1 tl rode voedselkleuring", "1 tl vanille-extract", "\u00bd kopje roomkaas (112g)", "\u00bd kopje red velvet cake stukjes" ], steps: [ "Mix room, melk, suiker, cacao en kleuring.", "Klop roomkaas los en vouw erdoor voor een marmer effect.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg cake stukjes toe via MIX-IN." ], mixins: ["Witte chocolade chips", "Cream cheese glazuur", "Cake kruimels"], nutrition: { calories: 190, fat: "12g", carbs: "18g", protein: "2g" }, tips: "Gebruik gekochte red velvet cake voor gemak, of bak zelf en vries de stukjes vooraf." }, { id: "ic-nutella", type: "ice_cream", name: "Nutella Hazelnoot IJs", emoji: "\ud83c\udf6b", description: "Romige chocolade-hazelnoot spread als iJs. Hemels.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 91, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "\u00be kopje zware room (178ml)", "\u00bc kopje volle melk (60ml)", "\u215c kopje Nutella (105g)", "\u215b kopje suiker (25g)", "1 tl vanille-extract" ], steps: [ "Verwarm de melk zachtjes en los de Nutella erin op.", "Roer room, suiker en vanille erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Gehakte hazelnoten", "Witte chocolade", "Brownie stukjes"], nutrition: { calories: 210, fat: "14g", carbs: "20g", protein: "3g" }, tips: "Warm de Nutella iets op voor makkelijker mixen. Extra Nutella als swirl na het spoelen!" }, { id: "ic-creme-brulee", type: "ice_cream", name: "Cr\u00e8me Br\u00fbl\u00e9e IJs", emoji: "\ud83d\udd25", description: "Rijke custard iJs met karamelized suiker stukjes.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "30 min", freezeTime: "24u", totalTime: "24u 30m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 81, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "2 eidooiers", "\u2153 kopje suiker (66g)", "1 vanillestokje, uitgeschraapt", "Extra suiker voor karamel" ], steps: [ "Maak een custardbasis: verwarm melk en room met vanille.", "Klop eidooiers met suiker, combineer en thickly tot 82\u00b0C.", "Laat afkoelen, giet in pint en vries 24u.", "Verwerk op \"Ice Cream\".", "Maak karamelstukjes: smelt suiker op bakpapier, breek in stukken.", "Voeg karamelstukjes toe via MIX-IN." ], mixins: ["Karamel stukjes", "Geroosterde amandelen", "Shortbread"], nutrition: { calories: 200, fat: "14g", carbs: "17g", protein: "3g" }, tips: "De karamel stukjes geven de \"crack\" van cr\u00e8me br\u00fbl\u00e9e. Maak ze dun en breek in kleine scherfjes." }, { id: "ic-smores", type: "ice_cream", name: "S'mores IJs", emoji: "\ud83c\udfd5\ufe0f", description: "Graham cracker, marshmallow en chocolade \u2014 kampvuur in een pint.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 83, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "3 el cacaopoeder", "1 tl vanille-extract", "Graham crackers, gehakt", "Mini marshmallows", "Chocolade chips" ], steps: [ "Mix room, melk, suiker, cacao en vanille.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\".", "Voeg graham crackers, marshmallows en chocolade toe via MIX-IN." ], mixins: ["Extra marshmallow fluff", "Chocolade saus", "Graham cracker kruimels"], nutrition: { calories: 185, fat: "12g", carbs: "20g", protein: "2g" }, tips: "Rooster de marshmallows kort met een brander voor echte s'mores smaak." }, { id: "ic-peanut-butter-cup", type: "ice_cream", name: "Peanut Butter Cup IJs", emoji: "\ud83e\udd5c", description: "Romige pindakaas iJs met chocolade-peanut butter stukjes.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 88, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "\u00bc kopje pindakaas, glad (60g)", "1 tl vanille-extract", "\u00bd tl zout", "\u00bc kopje Reese's of pindakaas-chocolade cups, gehakt" ], steps: [ "Verwarm een deel van de melk en los de pindakaas erin op.", "Mix met room, suiker, vanille en zout.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg peanut butter cups toe via MIX-IN." ], mixins: ["Extra pindakaas drizzle", "Chocolade saus", "Gehakte pinda's"], nutrition: { calories: 220, fat: "16g", carbs: "15g", protein: "4g" }, tips: "Gebruik gladde pindakaas zonder stukjes. Crunchy geeft een andere textuur." }, { id: "ic-dulce-de-leche", type: "ice_cream", name: "Dulce de Leche IJs", emoji: "\ud83c\udde6\ud83c\uddf7", description: "Argentijnse gekarameliseerde melk als romig iJs.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 80, tags: ["beginner", "gluten_free"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "1 blikje Dulce de Leche (198g)", "\u00bc kopje volle melk (60ml)", "1 tl vanille-extract", "Snufje zout" ], steps: [ "Verwarm de melk zachtjes.", "Roer de Dulce de Leche erdoor tot glad.", "Voeg room, vanille en zout toe.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Gehakte walnoten", "Chocolade stukjes", "Karamel popcorn"], nutrition: { calories: 215, fat: "12g", carbs: "24g", protein: "3g" }, tips: "Koop een blikje Dulce de Leche (of maak zelf door gecondenseerde melk 3u te koken in de blik)." }, { id: "ic-black-sesame", type: "ice_cream", name: "Zwarte Sesam IJs", emoji: "\u26ab", description: "Geroosterde zwarte sesam \u2014 nootachtig, uniek en elegant.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 62, tags: [], diet: ["vegan", "dairy_free"], program: "Ice Cream", ingredients: [ "1 kopje kokosmelk (236ml)", "\u00bc kopje zwarte sesam pasta (60g)", "\u00bc kopje suiker (33g)", "2 el kokosolie", "1 tl vanille-extract", "Snufje zout" ], steps: [ "Rooster 2 el zwarte sesamzaadjes in een droge pan tot ze gaan poppen.", "Mix alle ingredi\u00ebnten in een blender tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Witte chocolade", "Geroosterde rijst", "Matcha stukjes"], nutrition: { calories: 170, fat: "13g", carbs: "11g", protein: "2g" }, tips: "Zwarte sesam pasta (nerigoma) is te koop bij Aziatische supermarkten. Prachtige grijze kleur!" }, { id: "ic-cinnamon-roll", type: "ice_cream", name: "Cinnamon Roll IJs", emoji: "\ud83e\udd6e", description: "Kaneel, brown sugar en cream cheese glazuur smaken.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 76, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje lichtbruine basterdsuiker (66g)", "1\u00bd el kaneel", "1 tl vanille-extract", "\u00bc kopje roomkaas (58g)", "\u00bd kopje kaneelbroodjes, in stukken" ], steps: [ "Mix room, melk, basterdsuiker, kaneel en vanille.", "Klop roomkaas los en vouw erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\". Voeg broodstukjes toe via MIX-IN." ], mixins: ["Kaneel suiker", "Pecan noten", "Cream cheese glazuur"], nutrition: { calories: 190, fat: "12g", carbs: "19g", protein: "2g" }, tips: "Gebruik overgebleven kaneelbroodjes of koop kant-en-klaar. Vries ze vooraf." }, { id: "ic-pumpkin-spice", type: "ice_cream", name: "Pumpkin Spice IJs", emoji: "\ud83c\udf83", description: "Herfst in een pint \u2014 pompoen, kaneel, nootmuskaat en kruidnagel.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 70, tags: ["beginner", "gluten_free"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u00bd blik pompoenpuree (212g)", "\u2153 kopje suiker (66g)", "1 tl kaneel", "\u00bd tl nootmuskaat", "\u00bc tl kruidnagel", "\u00bc tl gemberpoeder", "1 tl vanille-extract" ], steps: [ "Mix alle ingredi\u00ebnten in een kom tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Graham cracker stukjes", "Pecan noten", "Karamel saus", "Gember koekjes"], nutrition: { calories: 150, fat: "10g", carbs: "14g", protein: "2g" }, tips: "Gebruik pompoenpuree (zoet of ongezouten). Geen pompoenkruidenmix? Gebruik 2 tl kaneel + 1 tl nootmuskaat." }, { id: "gl-taro", type: "gelato", name: "Taro Bubble Tea Gelato", emoji: "\ud83d\udfe3", description: "Populaire Aziatische taro smaak \u2014 paars, zoet en aards.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 68, tags: [], diet: ["vegan", "dairy_free"], program: "Gelato", ingredients: [ "1 kopje kokosmelk (236ml)", "3 el taro poeder (22g)", "\u215b kopje suiker (25g)", "2 el tapioca parels (gekookt)", "1 tl vanille-extract" ], steps: [ "Verhit de kokosmelk en los taro poeder en suiker erin op.", "Laat afkoelen en voeg vanille toe.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Gelato\". Voeg tapioca parels toe via MIX-IN." ], mixins: ["Extra tapioca parels", "Zwarte sesam", "Condensed milk drizzle"], nutrition: { calories: 140, fat: "9g", carbs: "15g", protein: "1g" }, tips: "Taro poeder is te koop bij Aziatische winkels. Kook tapioca parels volgens verpakking." }, { id: "so-rose-wine", type: "sorbet", name: "Ros\u00e9 Wijn Sorbet", emoji: "\ud83c\udf77", description: "Elegante sorbet van droge ros\u00e9 wijn en citroen.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 74, tags: [], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "1 fles ros\u00e9 wijn (375ml)", "\u00bd kopje suiker (100g)", "\u00bc kopje water (60ml)", "2 el citroensap", "1 el citroen zeste" ], steps: [ "Maak een siroop: verhit water met suiker tot opgelost.", "Laat afkoelen en meng met ros\u00e9 en citroensap.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Verse frambozen", "Munt", "Prosecco drizzle"], nutrition: { calories: 90, fat: "0g", carbs: "14g", protein: "0g" }, tips: "De alcohol houdt de sorbet zachter dan fruit-only sorbets. Perfect voor een diner." }, { id: "so-mojito", type: "sorbet", name: "Mojito Sorbet", emoji: "\ud83c\udf79", description: "Rum, limoen en munt \u2014 verfrissend als een Cubaanse cocktail.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 71, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd kopje water (118ml)", "\u00bd kopje suiker (100g)", "\u00bc kopje vers limoensap (60ml)", "\u215b kopje witte rum (30ml)", "1 hand verse munt, fijngehakt", "Lime zeste" ], steps: [ "Maak een siroop van water en suiker. Laat afkoelen.", "Voeg limoensap, rum en munt toe.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Extra verse munt", "Lime partjes", "Bruiswater"], nutrition: { calories: 100, fat: "0g", carbs: "21g", protein: "0g" }, tips: "Zonder rum ook heerlijk als alcoholvrije versie. Voeg extra munt voor intensere smaak." }, { id: "so-aperol-spritz", type: "sorbet", name: "Aperol Spritz Sorbet", emoji: "\ud83d\udfe0", description: "Bitterzoet oranje sorbet \u2014 Italiaanse happy hour in een pint.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 66, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd kopje Aperol (118ml)", "\u00bd kopje prosecco (118ml)", "\u00bd kopje water (118ml)", "\u2153 kopje suiker (66g)", "1 el citroensap", "Sinaasappel zeste" ], steps: [ "Maak een siroop van water en suiker. Laat afkoelen.", "Meng met Aperol, prosecco en citroensap.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Sinaasappel partjes", "Olijven (ja, echt)", "Bruiswater"], nutrition: { calories: 95, fat: "0g", carbs: "19g", protein: "0g" }, tips: "De prosecco maakt het luchtig. Serveer in een coupe glas met een sinaasappelschijfje." }, { id: "so-hibiscus", type: "sorbet", name: "Hibiscus Sorbet", emoji: "\ud83c\udf3a", description: "Diep rood, bloemig en tart \u2014 verfrissend exotisch.", difficulty: "Beginner", difficultyScore: 1, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 63, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "4 gedroogde hibiscusbloemen (of 2 theezakjes)", "1 kopje water (236ml)", "\u2153 kopje suiker (66g)", "2 el citroensap", "1 el honing" ], steps: [ "Breng water aan de kook. Giet over hibiscusbloemen.", "Laat 15 minuten trekken. Zeef.", "Roer suiker, honing en citroensap erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Verse munt", "Gember stukjes", "Lime zeste"], nutrition: { calories: 60, fat: "0g", carbs: "15g", protein: "0g" }, tips: "Hibiscus thee (karkade) is intens van kleur en smaak. Te koop bij Turkse marokkaanse winkels." }, { id: "so-passionfruit", type: "sorbet", name: "Passievrucht Sorbet", emoji: "\ud83d\udfe1", description: "Intens tropisch \u2014 zoet, zurig en vol karakter.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 73, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd blik passievrucht puree (175g) of 8 verse passievruchten", "\u00bc kopje suiker (50g)", "\u00bc kopje water (60ml)", "2 el limoensap" ], steps: [ "Maak een siroop van water en suiker. Laat afkoelen.", "Meng met passievrucht puree en limoensap.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Kokosvlokken", "Verse munt", "Chili zout"], nutrition: { calories: 65, fat: "0g", carbs: "16g", protein: "0g" }, tips: "Passievrucht puree in blik is het makkelijkst. Verse geven een wat bitterdere smaak." }, { id: "so-watermelon", type: "sorbet", name: "Watermeloen Sorbet", emoji: "\ud83c\udf49", description: "Zomerse verfrissing \u2014 puur watermeloen genot.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 69, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "2 kopjes watermeloen, ontpit en in blokken (300g)", "\u00bc kopje suiker (33g)", "1 el limoensap", "1 el water" ], steps: [ "Pureer de watermeloen in een blender tot glad.", "Roer suiker, limoensap en water erdoor.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Sorbet\"." ], mixins: ["Verse munt", "Feta crumble (zoet-zout)", "Chili vlokken"], nutrition: { calories: 45, fat: "0g", carbs: "12g", protein: "0g" }, tips: "Watermeloen bevat veel water \u2014 minder suiker nodig. Voeg een snuf zout toe voor smaakdiepte." }, { id: "fy-maple-walnut", type: "frozen_yogurt", name: "Maple Walnut Frozen Yogurt", emoji: "\ud83c\udf41", description: "Ahornsiroop en walnoten \u2014 herfstige FroYo classic.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 67, tags: ["beginner"], diet: [], program: "Frozen Yogurt", ingredients: [ "1 pint (236ml) Griekse yoghurt", "\u00bc kopje echte ahornsiroop (58g)", "1 tl vanille-extract", "\u00bc kopje walnoten, gehakt (30g)" ], steps: [ "Mix yoghurt, ahornsiroop en vanille tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Frozen Yogurt\". Voeg walnoten toe via MIX-IN." ], mixins: ["Pecannoten", "Extra ahornsiroop drizzle", "Gember stukjes"], nutrition: { calories: 110, fat: "5g", carbs: "12g", protein: "4g" }, tips: "Gebruik GRADE A Dark ahornsiroop voor de meest intense smaak." }, { id: "ss-coconut-curry", type: "soft_serve", name: "Coconut Curry Soft Serve", emoji: "\ud83c\udf5b", description: "Avant-garde: kokos met een warme curry ondertoon. Gedurfd!", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.3, popularity: 55, tags: [], diet: ["vegan", "dairy_free"], program: "Soft Serve", ingredients: [ "1 kopje kokosmelk (236ml)", "\u00bc kopje suiker (33g)", "1 el gele curry pasta (mild)", "1 tl gemberpoeder", "1 tl limoensap", "Snufje zout" ], steps: [ "Verhit een beetje kokosmelk en los de curry pasta erin op.", "Mix met rest van ingredi\u00ebnten.", "Giet in pint met nozzle, sluit en vries 24u.", "Verwerk op \"Soft Serve\"." ], mixins: ["Geroosterde cashewnoten", "Lime zeste", "Kokosvlokken", "Chili vlokken"], nutrition: { calories: 140, fat: "10g", carbs: "11g", protein: "2g" }, tips: "Begin met minder curry pasta \u2014 je kan altijd meer toevoegen. Mild is de sleutel." }, { id: "fw-dragonfruit", type: "fruit_whip", name: "Dragonfruit (Pitaya) Whip", emoji: "\ud83d\udc09", description: "Fel roze, exotische fruit whip met dragonfruit.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 75, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Fruit Whip", ingredients: [ "\u00bd kopje dragonfruit (pitaya) blokjes, bevroren (100g)", "\u00bd kopje ananas blokjes, bevroren (100g)", "2 el suiker", "1 el limoensap" ], steps: [ "Blend alle ingredi\u00ebnten tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Fruit Whip\"." ], mixins: ["Kokosvlokken", "Chia zaad", "Verse mango"], nutrition: { calories: 55, fat: "0g", carbs: "14g", protein: "0g" }, tips: "Bevroren dragonfruit is te koop bij Aziatische markten. De kleur is ongeloofijk!" }, { id: "sb-avocado-lime", type: "smoothie_bowl", name: "Avocado-Lime Smoothie Bowl", emoji: "\ud83e\udd51", description: "Romige avocado met lime en honing \u2014 groen en goed.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.4, popularity: 58, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Smoothie Bowl", ingredients: [ "1 rijpe avocado", "1 banaan, bevroren", "\u00bd kopje spinazie", "\u00bc kopje amandelmelk (60ml)", "2 el limoensap", "1 el honing of agave" ], steps: [ "Blend alles tot een dikke massa.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Smoothie Bowl\".", "Garneer met chia, kokos en limoen." ], mixins: ["Chia zaad", "Kokos vlokken", "Hennep zaad", "Granola"], nutrition: { calories: 230, fat: "12g", carbs: "30g", protein: "4g" }, tips: "Avocado maakt het extra romig zonder zuivel. Perfect voor vegan ontbijt." }, { id: "hp-vanilla-almond", type: "high_protein", name: "Vanille Amandel Protein Soft", emoji: "\ud83d\udcaa", description: "Klassieke vanille-amandel protein soft serve.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 64, tags: ["beginner"], diet: [], program: "High Protein Soft", ingredients: [ "1\u00be kopje vanille eiwitschuddishek (415ml)", "2 el amandel boter", "1 tl kaneel", "1 el chia zaad" ], steps: [ "Mix alles tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"High Protein\"." ], mixins: ["Gehakte amandelen", "Chocolade stukjes", "Banaan"], nutrition: { calories: 230, fat: "11g", carbs: "14g", protein: "26g" }, tips: "Amandel boter is romiger dan pindakaas. Cashew boter is nog subtieler." }, { id: "hp-strawberry-banana", type: "high_protein", name: "Aardbei-Banaan Protein Shake IJs", emoji: "\ud83d\udcaa", description: "Fruity protein soft serve met aardbei en banaan.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 70, tags: ["beginner"], diet: [], program: "High Protein Soft", ingredients: [ "1\u00be kopje aardbei eiwitschuddishek (415ml)", "1 rijpe banaan", "1 el chia zaad", "\u00bd tl vanille-extract" ], steps: [ "Blend de banaan met de schuddishek tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"High Protein\"." ], mixins: ["Verse aardbeien", "Granola", "Donkere chocolade"], nutrition: { calories: 210, fat: "5g", carbs: "22g", protein: "28g" }, tips: "Bevroren banaan maakt het extra romig. Rijper = zoeter." }, { id: "df-coconut-lime", type: "ice_cream", name: "Coconut-Lime Vegan IJs", emoji: "\ud83e\udd65", description: "Tropische kokos met een pittige lime twist.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 68, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Ice Cream", ingredients: [ "\u00bd blik kokosmelk (200ml)", "\u00bc kopje amandelmelk (60ml)", "\u00bc kopje suiker (33g)", "3 el limoensap", "1 tl lime zeste", "1 el kokosolie" ], steps: [ "Mix alle ingredi\u00ebnten tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Kokosvlokken", "Verse mango", "Chili zout", "Munt"], nutrition: { calories: 140, fat: "10g", carbs: "12g", protein: "1g" }, tips: "De lime zeste geeft een intense citrus aromatic. Probeer ook met yuzu!" }, { id: "df-avocado-coconut", type: "ice_cream", name: "Avocado-Kokos Vegan IJs", emoji: "\ud83e\udd51", description: "Hemels romig door avocado \u2014 groen en voedzaam.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 60, tags: ["beginner", "vegan", "dairy_free"], diet: ["vegan", "dairy_free"], program: "Ice Cream", ingredients: [ "\u00bd blik kokosmelk (200ml)", "1 rijpe avocado", "\u00bc kopje suiker (33g) of agave", "2 el limoensap", "1 tl vanille-extract" ], steps: [ "Blend alle ingredi\u00ebnten tot glad.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Ice Cream\"." ], mixins: ["Donkere chocolade stukjes", "Kokosvlokken", "Hazelnoten"], nutrition: { calories: 145, fat: "10g", carbs: "12g", protein: "2g" }, tips: "Avocado maakt het ongelooflijk romig zonder zuivel. Zorg dat hij goed rijp is." }, { id: "ic-blueberry-lavender", type: "lite_ice_cream", name: "Blauwe Bes-Lavendel Lite IJs", emoji: "\ud83e\uded0", description: "Bloemig en fruitig \u2014 paarse lavendel met blauwe bessen.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 64, tags: ["beginner"], diet: [], program: "Lite Ice Cream", ingredients: [ "\u00be kopje amandelmelk, ongezoet (178ml)", "\u00bd kopje Griekse yoghurt 0% (115g)", "\u00bd kopje blauwe bessen (75g)", "3 el honing (22g)", "1 tl gedroogde lavendelbloemen", "1 tl vanille-extract" ], steps: [ "Verhit \u00bc kopje amandelmelk en laat lavendel 10 min trekken. Zeef.", "Blend de bessen met de lavendelmelk, yoghurt, honing en vanille.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Lite Ice Cream\"." ], mixins: ["Verse blauwe bessen", "Honing drizzle", "Graham cracker stukjes"], nutrition: { calories: 75, fat: "2g", carbs: "12g", protein: "4g" }, tips: "Lavendel kan overheersen \u2014 begin met minder. Blauwe bessen geven een prachtige kleur." }, { id: "ic-rooibos-vanilla", type: "lite_ice_cream", name: "Rooibos-Vanille Lite IJs", emoji: "\ud83d\udd34", description: "Warm, aards rooibos met zoete vanille \u2014 Zuid-Afrikaanse inspiratie.", difficulty: "Beginner", difficultyScore: 1, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.4, popularity: 52, tags: ["beginner", "low_sugar"], diet: ["low_sugar"], program: "Lite Ice Cream", ingredients: [ "\u00be kopje amandelmelk (178ml)", "\u00bd kopje Griekse yoghurt (115g)", "3 rooibos theezakjes", "3 el honing (22g)", "1 tl vanille-extract" ], steps: [ "Verhit amandelmelk tot net onder kookpunt.", "Voeg rooibos theezakjes toe, laat 15 min trekken.", "Verwijder zakjes, voeg yoghurt, honing en vanille toe.", "Giet in pint, sluit en vries 24u.", "Verwerk op \"Lite Ice Cream\"." ], mixins: ["Shortbread koekjes", "Pecan noten", "Gember stukjes"], nutrition: { calories: 65, fat: "2g", carbs: "9g", protein: "4g" }, tips: "Rooibos is cafe\u00efnevrij en natuurlijk zoet. Probeer ook Honeybush theer." }, { id: "ic-espresso-martini", type: "ice_cream", name: "Espresso Martini IJs", emoji: "\ud83c\udf78", description: "Koffie, vodka en kahlua \u2014 het after-dinner drankje als iJs.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 76, tags: ["beginner"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u2153 kopje suiker (66g)", "2 el oploskoffie (5g)", "3 el wodka (22ml)", "2 el Kahlua (15ml)", "1 tl vanille-extract" ], steps: [ "Los koffie op in 2 el warme melk.", "Mix met room, suiker, wodka, Kahlua en vanille.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Chocolade espresso bonen", "Karamel saus", "Brownie stukjes"], nutrition: { calories: 160, fat: "11g", carbs: "13g", protein: "2g" }, tips: "De alcohol houdt het iJs iets zachter." }, { id: "ic-stout-beer", type: "ice_cream", name: "Stout Bier IJs", emoji: "\ud83c\udf7a", description: "Donkere stout \u2014 karamel, koffie en chocolate noten.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 58, tags: [], diet: [], program: "Ice Cream", ingredients: [ "\u00bd kopje zware room (118ml)", "\u00bd kopje volle melk (118ml)", "\u215c kopje suiker (75g)", "\u00bd kopje donkere stout bier (118ml)", "2 el cacaopoeder", "1 tl vanille-extract" ], steps: [ "Verwarm melk en los cacao op.", "Voeg suiker en stout toe.", "Voeg room en vanille toe.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Pecan noten", "Donkere chocolade", "Karamel saus"], nutrition: { calories: 145, fat: "8g", carbs: "16g", protein: "2g" }, tips: "Guinness werkt het beste. Vermijd IPA \u2014 te bitter." }, { id: "ic-pecan-pie", type: "ice_cream", name: "Pecan Pie IJs", emoji: "\ud83e\udd67", description: "Butterscotch, geroosterde pecan en bourbon.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 72, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u215c kopje basterdsuiker (75g)", "3 el bourbon", "1 tl vanille-extract", "\u00bd kopje pecannoten geroosterd (60g)" ], steps: [ "Verwarm melk en los suiker op.", "Voeg bourbon, room en vanille toe.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream. Voeg pecans toe via MIX-IN." ], mixins: ["Extra pecans", "Karamel saus", "Shortbread stukjes"], nutrition: { calories: 220, fat: "15g", carbs: "19g", protein: "2g" }, tips: "Rooster pecans 5 min op 180\u00b0C." }, { id: "ic-carrot-cake", type: "ice_cream", name: "Carrot Cake IJs", emoji: "\ud83e\udd55", description: "Wortel, kaneel, ananas en roomkaas.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "25 min", freezeTime: "24u", totalTime: "24u 25m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 64, tags: [], diet: [], program: "Ice Cream", ingredients: [ "\u00be kopje zware room (178ml)", "\u00bc kopje roomkaas (58g)", "\u00bc kopje melk (60ml)", "\u2153 kopje suiker (66g)", "\u00bd kopje geraspte wortel (60g)", "1 tl kaneel", "\u00bd tl nootmuskaat", "\u00bc kopje ananas (40g)", "\u00bc kopje walnoten (30g)" ], steps: [ "Mix roomkaas met suiker glad.", "Voeg room, melk en specerijen toe.", "Roer wortel, ananas en walnoten erdoor.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Cream cheese glazuur", "Walnoten", "Ananas stukjes"], nutrition: { calories: 170, fat: "12g", carbs: "15g", protein: "2g" }, tips: "Knijp geraspte wortel uit om vocht te verwijderen." }, { id: "ic-fig-honey", type: "ice_cream", name: "Vijg-Honing IJs", emoji: "\ud83c\udf3f", description: "Zoete vijgen, wilde honing en rozemarijn.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "30 min", freezeTime: "24u", totalTime: "24u 30m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 56, tags: [], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje volle melk (118ml)", "\u00bc kopje honing (58g)", "\u00bd kopje verse vijgen (75g)", "1 tl rozemarijn fijngehakt", "1 tl vanille-extract" ], steps: [ "Verhit melk en laat rozemarijn 10 min trekken. Zeef.", "Mix met room, honing en vanille.", "Voeg vijgen toe.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Gehakte vijgen", "Honey-amandel clusters", "Pistaches"], nutrition: { calories: 160, fat: "10g", carbs: "16g", protein: "2g" }, tips: "Gedroogde vijgen werken ook prima." }, { id: "ic-white-choc-macadamia", type: "ice_cream", name: "Witte Choc-Macadamia IJs", emoji: "\ud83e\udd0d", description: "Romige witte chocolade met knapperige macadamia.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 74, tags: ["beginner"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "\u2153 kopje suiker (66g)", "\u215c kopje witte chocolade gesmolten (65g)", "1 tl vanille-extract", "\u00bc kopje macadamia (35g)" ], steps: [ "Verwarm melk en los witte chocolade op.", "Mix met room en vanille.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream. Voeg macadamia toe via MIX-IN." ], mixins: ["Extra witte chocolade", "Kokos vlokken", "Verse bessen"], nutrition: { calories: 210, fat: "15g", carbs: "17g", protein: "2g" }, tips: "Gebruik echte witte chocolade met cacaoboter." }, { id: "ic-gingerbread", type: "ice_cream", name: "Gingerbread IJs", emoji: "\ud83e\udeda", description: "Peperkoek \u2014 kaneel, gember, nootmuskaat en molasses.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 67, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "\u00bc kopje suiker (50g)", "\u215b kopje molasses (30ml)", "2 tl kaneel", "1 tl gemberpoeder", "\u00bd tl nootmuskaat", "1 tl vanille-extract" ], steps: [ "Mix alle ingredi\u00ebnten.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Speculaas stukjes", "Candied gember", "Witte chocolade"], nutrition: { calories: 150, fat: "10g", carbs: "15g", protein: "2g" }, tips: "Molasses geeft diepe complexe zoetheid." }, { id: "ic-capuccino", type: "ice_cream", name: "Cappuccino IJs", emoji: "\u2615", description: "Italiaanse koffie iJs met romige textuur.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 73, tags: ["beginner"], diet: ["gluten_free"], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "\u2153 kopje suiker (66g)", "3 el espresso (8g)", "1 tl vanille-extract" ], steps: [ "Los koffie op in warme melk.", "Mix met room, suiker en vanille.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Chocolade stukjes", "Biscotti", "Espresso bonen"], nutrition: { calories: 150, fat: "10g", carbs: "13g", protein: "2g" }, tips: "Voor extra kick: voeg 1 el Baileys toe." }, { id: "ic-banana-nut", type: "ice_cream", name: "Banaan-Noten IJs", emoji: "\ud83c\udf4c", description: "Romige banaan met geroosterde walnoten en kaneel.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 70, tags: ["beginner"], diet: [], program: "Ice Cream", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "2 rijpe bananen geprakt (120g)", "\u00bc kopje suiker (33g)", "1 tl kaneel", "1 tl vanille-extract", "\u00bc kopje walnoten (30g)" ], steps: [ "Prak bananen glad.", "Mix met room, melk, suiker en kaneel.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream. Voeg walnoten toe via MIX-IN." ], mixins: ["Pecan noten", "Honig drizzle", "Chocolade stukjes"], nutrition: { calories: 155, fat: "10g", carbs: "15g", protein: "2g" }, tips: "Rijpere bananen = zoeter en intenser." }, { id: "ic-stracciatella", type: "gelato", name: "Stracciatella Gelato", emoji: "\ud83c\udf6b", description: "Romige vanille gelato met fijne chocolade vlokken.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 82, tags: ["beginner"], diet: ["gluten_free"], program: "Gelato", ingredients: [ "1 kopje volle melk (236ml)", "\u00bd kopje zware room (118ml)", "\u2153 kopje suiker (66g)", "1 vanillestokje", "\u00bc kopje donkere chocolade gesmolten (42g)" ], steps: [ "Verhit melk en room met vanille.", "Roer suiker erdoor.", "Laat afkoelen, giet in pint, vries 24u.", "Verwerk op Gelato.", "Drizzle gesmolten chocolade tijdens RE-SPIN." ], mixins: ["Chocolade vlokken", "Hazelnoten", "Espresso"], nutrition: { calories: 170, fat: "10g", carbs: "18g", protein: "2g" }, tips: "Voeg koude chocolade toe TIJDENS het spoelen voor stracciatella effect." }, { id: "gl-coffee-caramel", type: "gelato", name: "Koffie-Karamel Gelato", emoji: "\u2615", description: "Espresso gelato met karamel swirl.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "20 min", freezeTime: "24u", totalTime: "24u 20m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 75, tags: [], diet: [], program: "Gelato", ingredients: [ "1 kopje volle melk (236ml)", "\u00bd kopje zware room (118ml)", "\u2153 kopje suiker (66g)", "2 el espresso (15ml)", "3 el karamelsaus (22ml)", "1 tl vanille-extract" ], steps: [ "Verhit melk en los suiker op.", "Voeg espresso en room toe.", "Giet in pint, vries 24u.", "Verwerk op Gelato. Voeg karamel toe via MIX-IN." ], mixins: ["Karamel stukjes", "Chocolade bonen", "Shortbread"], nutrition: { calories: 155, fat: "8g", carbs: "19g", protein: "2g" }, tips: "Voor intensere smaak: 3 el espresso." }, { id: "so-coconut-lime", type: "sorbet", name: "Kokos-Lime Sorbet", emoji: "\ud83e\udd65", description: "Tropische kokos met pittige lime \u2014 zuivelvrij.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 68, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "\u00bd blik kokosmelk (200ml)", "\u00bc kopje water (60ml)", "\u00bc kopje suiker (33g)", "3 el limoensap (22ml)", "1 tl lime zeste" ], steps: [ "Mix alles glad.", "Giet in pint, vries 24u.", "Verwerk op Sorbet." ], mixins: ["Kokosvlokken", "Verse munt", "Chili zout"], nutrition: { calories: 110, fat: "6g", carbs: "14g", protein: "1g" }, tips: "Kokosmelk vet maakt deze sorbet extra romig." }, { id: "so-raspberry-rose", type: "sorbet", name: "Framboos-Roos Sorbet", emoji: "\ud83c\udf39", description: "Romantische framboos met rozenwater.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 66, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "1 kopje frambozen (150g)", "\u215c kopje suiker (75g)", "\u00bc kopje water (60ml)", "1 tl rozenwater", "1 el citroensap" ], steps: [ "Maak siroop van water en suiker.", "Pureer frambozen en zeef.", "Mix met siroop en rozenwater.", "Giet in pint, vries 24u.", "Verwerk op Sorbet." ], mixins: ["Verse frambozen", "Eetbare bloemblaadjes", "Witte chocolade"], nutrition: { calories: 70, fat: "0g", carbs: "17g", protein: "0g" }, tips: "Rozenwater is sterk \u2014 1 tl is genoeg." }, { id: "so-pomegranate", type: "sorbet", name: "Granaatappel Sorbet", emoji: "\ud83d\udd34", description: "Tart en zoet \u2014 diep robijnrood.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 58, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Sorbet", ingredients: [ "1 kopje granaatappelsap (236ml)", "\u2153 kopje suiker (66g)", "\u215b kopje water (30ml)", "2 el citroensap", "1 el honing" ], steps: [ "Maak siroop. Mix met sap en citroen.", "Giet in pint, vries 24u.", "Verwerk op Sorbet." ], mixins: ["Granaatappel pitjes", "Verse munt", "Donkere chocolade"], nutrition: { calories: 80, fat: "0g", carbs: "20g", protein: "0g" }, tips: "100% granaatappelsap geeft beste smaak." }, { id: "ss-strawberry-cream", type: "soft_serve", name: "Aardbei-Cr\u00e8me Soft Serve", emoji: "\ud83c\udf53", description: "Klassieke zomerdag soft serve met echte aardbeien.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 84, tags: ["beginner"], diet: [], program: "Soft Serve", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "\u2153 kopje suiker (66g)", "\u00bd kopje aardbeien geblend (100g)", "1 tl vanille-extract" ], steps: [ "Blend aardbeien.", "Mix met room, melk en suiker.", "Giet in pint met nozzle, vries 24u.", "Verwerk op Soft Serve." ], mixins: ["Verse aardbeien", "Chocolade saus", "Sprinkles"], nutrition: { calories: 160, fat: "11g", carbs: "14g", protein: "2g" }, tips: "Rijpe of bevroren aardbeien werken prima." }, { id: "ss-mint-choc", type: "soft_serve", name: "Munt-Chocolade Soft Serve", emoji: "\ud83c\udf3f", description: "Verfrissende munt met chocolade stukjes.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 77, tags: ["beginner"], diet: [], program: "Soft Serve", ingredients: [ "1 kopje zware room (236ml)", "\u00bd kopje melk (118ml)", "\u2153 kopje suiker (66g)", "1\u00bd tl pepermunt extract", "\u00bc kopje chocolade chips (42g)" ], steps: [ "Mix room, melk, suiker en pepermunt.", "Giet in pint met nozzle, vries 24u.", "Verwerk op Soft Serve. Voeg chocolade toe via MIX-IN." ], mixins: ["Extra chocolade", "Brownie stukjes", "Oreo kruimels"], nutrition: { calories: 165, fat: "11g", carbs: "15g", protein: "2g" }, tips: "Pepermunt extract is sterk! Begin met 1 tl." }, { id: "fy-lemon-curd", type: "frozen_yogurt", name: "Citroen-Curd Frozen Yogurt", emoji: "\ud83c\udf4b", description: "Frisse citroen met rijke lemon curd.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 65, tags: ["beginner"], diet: [], program: "Frozen Yogurt", ingredients: [ "1 pint Griekse yoghurt (236ml)", "\u00bc kopje lemon curd (58g)", "3 el suiker (22g)", "2 el citroensap", "1 tl citroen zeste" ], steps: [ "Mix yoghurt met lemon curd.", "Voeg suiker, citroen en zeste toe.", "Giet in pint, vries 24u.", "Verwerk op Frozen Yogurt." ], mixins: ["Shortbread stukjes", "Verse bessen", "Meringue stukjes"], nutrition: { calories: 95, fat: "2g", carbs: "14g", protein: "4g" }, tips: "Lemon curd is te koop in potten." }, { id: "fy-peach-cobbler", type: "frozen_yogurt", name: "Perzik-Cobbler Frozen Yogurt", emoji: "\ud83c\udf51", description: "Zomerse perzik met kaneel en vanille.", difficulty: "Beginner", difficultyScore: 1, prepTime: "15 min", freezeTime: "24u", totalTime: "24u 15m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 63, tags: ["beginner"], diet: [], program: "Frozen Yogurt", ingredients: [ "1 pint Griekse yoghurt (236ml)", "\u00bd kopje perziken (75g)", "\u00bc kopje suiker (33g)", "1 tl kaneel", "1 tl vanille-extract" ], steps: [ "Pureer perziken.", "Mix met yoghurt, suiker en kaneel.", "Giet in pint, vries 24u.", "Verwerk op Frozen Yogurt." ], mixins: ["Cobbler topping", "Pecan noten", "Honing drizzle"], nutrition: { calories: 85, fat: "2g", carbs: "13g", protein: "4g" }, tips: "Rijpe perziken zijn essentieel." }, { id: "fw-mango-pineapple", type: "fruit_whip", name: "Mango-Ananas Whip", emoji: "\ud83e\udd6d", description: "Tropische Dole Whip stijl \u2014 puur fruit.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 82, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Fruit Whip", ingredients: [ "\u00be kopje mango bevroren (112g)", "\u00be kopje ananas bevroren (112g)", "2 el suiker", "1 el limoensap" ], steps: [ "Blend alles glad.", "Giet in pint, vries 24u.", "Verwerk op Fruit Whip." ], mixins: ["Kokosvlokken", "Verse mango", "Chili zout"], nutrition: { calories: 50, fat: "0g", carbs: "12g", protein: "0g" }, tips: "Dit is de beroemde Dole Whip smaak!" }, { id: "fw-strawberry-banana", type: "fruit_whip", name: "Aardbei-Banaan Whip", emoji: "\ud83c\udf53", description: "Klassieke fruit combo als luchtige soft serve.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 73, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Fruit Whip", ingredients: [ "1 kopje aardbeien bevroren (150g)", "1 banaan bevroren (60g)", "2 el suiker", "1 el citroensap" ], steps: [ "Blend alles glad.", "Giet in pint, vries 24u.", "Verwerk op Fruit Whip." ], mixins: ["Verse bessen", "Granola", "Honing drizzle"], nutrition: { calories: 45, fat: "0g", carbs: "11g", protein: "0g" }, tips: "Bevroren fruit is de sleutel." }, { id: "sb-berry-granola", type: "smoothie_bowl", name: "Bessen-Granola Smoothie Bowl", emoji: "\ud83e\uded0", description: "Gezond ontbijt \u2014 romige bessen met knapperige granola.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.5, popularity: 62, tags: ["beginner"], diet: [], program: "Smoothie Bowl", ingredients: [ "1 banaan bevroren", "1 kopje bessen bevroren (150g)", "\u00bd kopje Griekse yoghurt (115g)", "\u00bc kopje amandelmelk (60ml)", "1 el honing", "\u2153 kopje granola" ], steps: [ "Blend tot dik.", "Giet in pint, vries 24u.", "Verwerk op Smoothie Bowl.", "Garneer met granola." ], mixins: ["Granola", "Chia zaad", "Verse bessen", "Kokos"], nutrition: { calories: 250, fat: "5g", carbs: "42g", protein: "8g" }, tips: "De smoothie moet dik zijn." }, { id: "hp-chocolate-peanut", type: "high_protein", name: "Chocolade-Pinda Protein IJs", emoji: "\ud83d\udcaa", description: "Klassieke choc-pinda combo met 28g eiwit.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 72, tags: ["beginner"], diet: [], program: "High Protein Soft", ingredients: [ "1\u00be kopje chocolade eiwitschuddishek (415ml)", "2 el pindakaas", "1 el cacaopoeder", "1 el chia zaad" ], steps: [ "Mix alles glad.", "Giet in pint, vries 24u.", "Verwerk op High Protein Soft." ], mixins: ["Gehakte pinda's", "Chocolade stukjes", "Banaan"], nutrition: { calories: 250, fat: "12g", carbs: "12g", protein: "28g" }, tips: "Goede eiwitshake met 25g+ eiwit per fles." }, { id: "df-chocolate-avocado", type: "ice_cream", name: "Chocolade-Avocado Vegan IJs", emoji: "\ud83e\udd51", description: "Romige vegan chocolade \u2014 avocado maakt zijdezacht.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.6, popularity: 65, tags: ["beginner", "vegan", "dairy_free"], diet: ["vegan", "dairy_free"], program: "Ice Cream", ingredients: [ "\u00bd blik kokosmelk (200ml)", "1 rijpe avocado", "\u00bc kopje cacaopoeder (16g)", "\u00bc kopje suiker (33g)", "1 tl vanille-extract" ], steps: [ "Blend alles glad.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Vegan chocolade", "Kokos vlokken", "Hazelnoten"], nutrition: { calories: 140, fat: "9g", carbs: "14g", protein: "2g" }, tips: "Avocado proef je niet \u2014 alleen romigheid." }, { id: "df-coconut-mango", type: "ice_cream", name: "Kokos-Mango Vegan IJs", emoji: "\ud83e\udd6d", description: "Tropische droom \u2014 kokos met vers mango.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "24u", totalTime: "24u 10m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.7, popularity: 71, tags: ["beginner", "vegan", "dairy_free", "gluten_free"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Ice Cream", ingredients: [ "\u00bd blik kokosmelk (200ml)", "\u00bd kopje mango puree (120g)", "\u00bc kopje suiker (33g)", "1 el citroensap", "1 tl vanille-extract" ], steps: [ "Blend alles glad.", "Giet in pint, vries 24u.", "Verwerk op Ice Cream." ], mixins: ["Verse mango", "Kokos vlokken", "Chili zout"], nutrition: { calories: 125, fat: "7g", carbs: "16g", protein: "1g" }, tips: "Mango-kokos is een match made in heaven." }, { id: "ms-salted-caramel", type: "milkshake", name: "Salted Caramel Milkshake", emoji: "\ud83e\udd64", description: "Romige milkshake met karamel en zeezout.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.8, popularity: 78, tags: ["beginner"], diet: [], program: "Milkshake", ingredients: [ "1 kopje zware room (237ml)", "1 kopje melk (237ml)", "\u2153 kopje karamelsaus (115g)", "\u00bd tl zeezout", "2 el suiker", "1 tl vanille-extract" ], steps: [ "Mix alles.", "Giet in pint, vries 24u.", "Verwerk op Milkshake." ], mixins: ["Karamel saus", "Noten", "Chocolade saus"], nutrition: { calories: 340, fat: "18g", carbs: "42g", protein: "5g" }, tips: "Serveer met slagroom en karamel drizzle." }, { id: "ms-oreo", type: "milkshake", name: "Oreo Milkshake", emoji: "\ud83c\udf6a", description: "De ultieme cookies & cream milkshake.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 85, tags: ["beginner"], diet: [], program: "Milkshake", ingredients: [ "1 kopje zware room (237ml)", "1 kopje melk (237ml)", "\u2153 kopje suiker (66g)", "12 Oreo koekjes", "1 tl vanille-extract" ], steps: [ "Mix room, melk en suiker.", "Breek 8 Oreos en voeg toe.", "Giet in pint, vries 24u.", "Verwerk op Milkshake.", "Garneer met 4 fijngehakte Oreos." ], mixins: ["Extra Oreo kruimels", "Chocolade saus", "Slagroom"], nutrition: { calories: 380, fat: "20g", carbs: "45g", protein: "5g" }, tips: "Double Stuf Oreos = extra romig." }, { id: "ms-nutella", type: "milkshake", name: "Nutella Milkshake", emoji: "\ud83c\udf6b", description: "Chocolade-hazelnoot hemel in vloeibare vorm.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "24u", totalTime: "24u 5m", servings: 1, pintInfo: "1 swirl pint (\u00b13 porties)", rating: 4.9, popularity: 83, tags: ["beginner"], diet: [], program: "Milkshake", ingredients: [ "1 kopje zware room (237ml)", "1 kopje melk (237ml)", "\u00bd kopje Nutella (140g)", "2 el suiker", "1 tl vanille-extract" ], steps: [ "Verwarm melk en los Nutella op.", "Mix met room en vanille.", "Giet in pint, vries 24u.", "Verwerk op Milkshake." ], mixins: ["Gehakte hazelnoten", "Chocolade saus", "Slagroom"], nutrition: { calories: 420, fat: "26g", carbs: "42g", protein: "7g" }, tips: "Warm Nutella op voor makkelijk mixen." }, // ===================== FRAPPรS ===================== { id: "fr-coffee-classic", type: "frappe", name: "Classic Coffee Frappรฉ", emoji: "โ", description: "De ultieme koffie frappรฉ โ romig, koud en vol van smaak. Geรฏnspireerd door Ninja Test Kitchen.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "50 min", totalTime: "55 min", servings: 4, rating: 4.9, popularity: 98, tags: ["beginner", "koffie", "popular"], diet: [], program: "Frappรฉ", ingredients: [ "1ยฝ kopjes half & half (355ml)", "3 kopjes zwarte koffie (afgekoeld)", "2 theelepels vanille-extract", "ยฝ kopje suiker (100g)", "Slagroom (optioneel)", "Chocoladesaus (optioneel)" ], steps: [ "Klop alle ingrediรซnten samen in een kan tot de suiker volledig is opgelost.", "Giet het mengsel in de Ninja Swirl/SLUSHi vessel.", "Selecteer het FRAPPร programma en druk op START.", "Zodra de machine 3x piept, direct serveren.", "Top af met slagroom en chocolade-/karamelsaus naar keuze." ], mixins: ["Chocoladesaus", "Karamelsaus", "Slagroom", "Cacao poeder"], nutrition: { calories: 180, fat: "8g", carbs: "22g", protein: "2g" }, tips: "Voor dairy-free: vervang half & half door haver- of amandelmelk." }, { id: "fr-mocha", type: "frappe", name: "Mocha Frappรฉ", emoji: "๐ซ", description: "Espresso ontmoet chocolade in deze hemelse bevroren frappรฉ.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "50 min", totalTime: "55 min", servings: 4, rating: 4.8, popularity: 92, tags: ["beginner", "koffie", "chocolade"], diet: [], program: "Frappรฉ", ingredients: [ "1ยฝ kopjes half & half (355ml)", "2ยฝ kopjes zwarte koffie (afgekoeld)", "3 el cacaopoeder", "2 el gesmolten chocolade", "ยฝ kopje suiker (100g)", "1 tl vanille-extract" ], steps: [ "Mix koffie, cacaopoeder en suiker in een kom tot een glad mengsel.", "Voeg half & half, gesmolten chocolade en vanille toe.", "Giet in de vessel en selecteer FRAPPร.", "Serveren zodra klaar. Top met slagroom en cacao." ], mixins: ["Chocoladesaus", "Slagroom", "Chocolade krullen", "Koffiebonen"], nutrition: { calories: 210, fat: "9g", carbs: "28g", protein: "3g" }, tips: "Gebruik dark chocolate voor een intensere smaak." }, { id: "fr-caramel", type: "frappe", name: "Caramel Frappรฉ", emoji: "๐ฏ", description: "Boterzachte karamel verweven met koude koffie โ een koffiebarervaring thuis.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "50 min", totalTime: "1u", servings: 4, rating: 4.8, popularity: 88, tags: ["beginner", "koffie", "karamel"], diet: [], program: "Frappรฉ", ingredients: [ "1ยฝ kopjes half & half (355ml)", "3 kopjes zwarte koffie (afgekoeld)", "โ kopje karamelsiroop", "2 el suiker", "1 tl vanille-extract" ], steps: [ "Klop koffie, karamelsiroop, suiker en vanille tot suiker is opgelost.", "Voeg half & half toe en roer goed.", "Giet in de vessel, selecteer FRAPPร en start.", "Garneer met een draai karamelsaus en slagroom." ], mixins: ["Karamelsaus", "Slagroom", "Zeezout", "Pecannoten"], nutrition: { calories: 220, fat: "8g", carbs: "30g", protein: "2g" }, tips: "Voeg een snufje zeezout toe voor een salted caramel variant." }, { id: "fr-pumpkin-spice", type: "frappe", name: "Pumpkin Spice Frappรฉ", emoji: "๐", description: "Herfst in een glas โ pompoen, kaneel en koffie samengekomen in een frappรฉ.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "15 min", freezeTime: "50 min", totalTime: "1u 5m", servings: 4, rating: 4.7, popularity: 75, tags: ["herfst", "koffie", "seizoensgebonden"], diet: [], program: "Frappรฉ", ingredients: [ "1ยฝ kopjes half & half (355ml)", "2ยฝ kopjes zwarte koffie (afgekoeld)", "3 el pompoenpuree", "2 el gecondenseerde melk", "1 tl pompoenkruiden", "2 el suiker" ], steps: [ "Mix pompoenpuree, gecondenseerde melk, kruiden en suiker tot glad.", "Voeg koffie en half & half toe. Goed roeren.", "Giet in de vessel en selecteer FRAPPร.", "Garneer met slagroom en een snufje kaneel." ], mixins: ["Slagroom", "Kaneel", "Pecannoten", "Karamelsaus"], nutrition: { calories: 195, fat: "8g", carbs: "25g", protein: "3g" }, tips: "Maak je eigen pompoenkruiden: 2 deel kaneel, 1 deel nootmuskaat, 1 deel gember, ยฝ deel kruidnagel." }, // ===================== SLUSHIES ===================== { id: "sl-pink-lemonade", type: "slushie", name: "Pink Lemonade Slushie", emoji: "๐ฉท", description: "Zomerse klassieker โ zuur, zoet en heerlijk koud. Origineel Ninja Test Kitchen recept.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "45 min", totalTime: "50 min", servings: 8, rating: 5.0, popularity: 95, tags: ["beginner", "zomer", "verfrissend", "popular"], diet: ["vegan", "dairy_free"], program: "Slush", ingredients: [ "5ยฝ kopjes water (1.3L)", "โ kopje + 4 tl pink lemonade poeder mix" ], steps: [ "Klop water en pink lemonade poiker samen tot poeder volledig is opgelost.", "Giet het mengsel in de Ninja SLUSHi vessel.", "Selecteer SLUSH en druk op START.", "Serveren zodra de machine 3x piept." ], mixins: ["Verse citroen partjes", "Munt", "Bessen", "Limoen"], nutrition: { calories: 80, fat: "0g", carbs: "20g", protein: "0g" }, tips: "Voor een natuurlijke variant: vers citroensap, water en agavesiroop met cranberrysap." }, { id: "sl-tropical-mango", type: "slushie", name: "Tropical Mango Slushie", emoji: "๐ฅญ", description: "Alsof je op een tropisch eiland zit โ zoete mango gemixt met een vleugje limoen.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "45 min", totalTime: "55 min", servings: 4, rating: 4.8, popularity: 85, tags: ["beginner", "tropisch", "fruit"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "3 kopjes mango nectar (720ml)", "1 kopje water", "3 el limoensap", "2 el suiker (optioneel)", "Snufje zout" ], steps: [ "Mix alle ingrediรซnten in een kan tot suiker is opgelost.", "Giet in de vessel en selecteer SLUSH.", "Serveren zodra klaar. Garneer met een partje limoen." ], mixins: ["Verse mango stukjes", "Limoen", "Chili poeder", "Munt"], nutrition: { calories: 120, fat: "0g", carbs: "30g", protein: "1g" }, tips: "Voor een pittige twist: voeg Tajรญn of chili poeder toe aan de rand van het glas." }, { id: "sl-strawberry-watermelon", type: "slushie", name: "Strawberry Watermelon Slushie", emoji: "๐", description: "De ultieme zomerse verfrissing โ sappige watermeloen en zoete aardbeien.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "45 min", totalTime: "55 min", servings: 4, rating: 4.9, popularity: 90, tags: ["beginner", "zomer", "fruit", "verfrissend"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "4 kopjes watermeloen sap (960ml)", "1 kopje aardbeien (gepureerd)", "2 el limoensap", "2 el suiker of honing" ], steps: [ "Mix alle ingrediรซnten goed door elkaar.", "Giet in de vessel en selecteer SLUSH.", "Serveren met een schijfje watermeloen en een aardbei." ], mixins: ["Verse munt", "Limoen", "Bessen", "Basilicum"], nutrition: { calories: 90, fat: "0g", carbs: "23g", protein: "1g" }, tips: "Gebruik zaadloze watermeloen voor een gladdere textuur." }, { id: "sl-blue-raspberry", type: "slushie", name: "Blue Raspberry Slushie", emoji: "๐ต", description: "Elektrisch blauw, supervers โ een feestje in een glas.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "45 min", totalTime: "50 min", servings: 6, rating: 4.6, popularity: 78, tags: ["feest", "kinderen", "kleurrijk"], diet: ["vegan", "dairy_free"], program: "Slush", ingredients: [ "5 kopjes water (1.2L)", "1 pakje blue raspberry drankpoeder", "3 el suiker", "1 el citroensap" ], steps: [ "Mix water, poeder, suiker en citroensap tot alles is opgelost.", "Giet in de vessel en selecteer SLUSH.", "Serveren met een gekleurd rietje voor het feestelijke effect." ], mixins: ["Gummy beren", "Sprinkles", "Limoen", "Zure matten"], nutrition: { calories: 70, fat: "0g", carbs: "18g", protein: "0g" }, tips: "Perfect voor kinderfeestjes. Voeg popping candy toe voor extra effect." }, // ===================== MOCKTAILS ===================== { id: "mc-shirley-temple", type: "mocktail", name: "Frozen Shirley Temple", emoji: "๐", description: "De tijdloze klassieker โ bevroren en nog lekkerder. Gebaseerd op het recept uit de jaren '30.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "40 min", totalTime: "45 min", servings: 2, rating: 4.9, popularity: 92, tags: ["beginner", "klassiek", "kinderen", "popular"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Frappรฉ", ingredients: [ "1 kopje lemon-lime soda (Sprite/7-Up)", "1 kopje ijsblokjes", "2-3 el grenadinesiroop", "Scheutje vers limoensap (optioneel)", "Maraschinokerssen voor garnering" ], steps: [ "Combineer soda, grenadine en ijsblokjes in een blender.", "Blend tot een glad, slushy mengsel.", "Proef en pas aan met extra grenadine of limoensap.", "Giet in glazen, top met extra soda en garneer met een kers." ], mixins: ["Maraschinokerss", "Citroenpartje", "Sinaasappelschijf", "Munt"], nutrition: { calories: 110, fat: "0g", carbs: "27g", protein: "0g" }, tips: "Voor een 'Dirty Shirley' cocktail: voeg 30-60ml wodka toe." }, { id: "mc-virgin-mojito", type: "mocktail", name: "Virgin Mojito Slush", emoji: "๐ฟ", description: "Verfrissende munt en limoen โ Cubaanse sfeer zonder alcohol.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "40 min", totalTime: "50 min", servings: 2, rating: 4.7, popularity: 85, tags: ["beginner", "munt", "verfrissend", "zomer"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "20 muntbladeren (plus extra voor garnering)", "3 limoenen (sap en partjes)", "3 el suiker of agavesiroop", "2 kopjes soda water (480ml)", "2 kopjes ijsblokjes", "Snufje zout" ], steps: [ "Kneus muntbladeren en limoenpartjes met een pestel in een kan.", "Voeg suiker, soda water en ijsblokjes toe.", "Mix goed en giet in de vessel.", "Selecteer SLUSH en start.", "Garneer met een takje munt en een partje limoen." ], mixins: ["Munt", "Limoen", "Bessen", "Gemberbier", "Komkommer"], nutrition: { calories: 80, fat: "0g", carbs: "20g", protein: "0g" }, tips: "Kneus de munt zachtjes โ niet pureren, anders wordt het bitter." }, { id: "mc-berry-basil-smash", type: "mocktail", name: "Berry Basil Smash", emoji: "๐", description: "Bloederige bessen ontmoeten verse basilicum โ complex, fruitig en verfijnd.", difficulty: "Gemiddeld", difficultyScore: 2, prepTime: "10 min", freezeTime: "40 min", totalTime: "50 min", servings: 2, rating: 4.8, popularity: 80, tags: ["berry", "kruidig", "elegant"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "1 kopje gemengde bessen (aardbeien, frambozen, bosbzen)", "10 basilicumblaadjes", "2 limoenen (sap)", "2 el honing of agavesiroop", "2 kopjes soda water (480ml)", "1 kopje ijsblokjes" ], steps: [ "Kneus bessen en basilicum in een kan met een pestel.", "Voeg limoensap, honing, soda water en ijs toe.", "Goed roeren en in de vessel gieten.", "Selecteer SLUSH en start.", "Garneer met een basilicumblaadje en enkele bessen." ], mixins: ["Bessen", "Basilicum", "Limoen", "Gember", "Rooswater"], nutrition: { calories: 95, fat: "0g", carbs: "24g", protein: "0g" }, tips: "Voor een feestelijke variant: voeg een scheutje alcoholvrije sparkelende wijn toe." }, { id: "mc-pina-colada-mock", type: "mocktail", name: "Virgin Piรฑa Colada Slush", emoji: "๐ฅฅ", description: "Caribische vibe zonder alcohol โ romige kokos en zoete ananas.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "50 min", totalTime: "55 min", servings: 4, rating: 4.9, popularity: 88, tags: ["beginner", "tropisch", "ananas", "kokos"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "3 kopjes ananassap (720ml)", "1 kopje kokosmelk (licht)", "2 el kokoscreme", "2 el suiker of agavesiroop", "1 tl vanille-extract", "Snufje zout" ], steps: [ "Mix ananassap, kokosmelk, kokoscreme, suiker, vanille en zout goed door.", "Giet in de vessel en selecteer SLUSH.", "Serveren met een ananaspartje en een maraschinokerss." ], mixins: ["Ananas stukjes", "Geraspte kokos", "Maraschinokerss", "Limoen"], nutrition: { calories: 140, fat: "5g", carbs: "22g", protein: "1g" }, tips: "Gebruik volle kokosmelk voor een romigere textuur." }, { id: "mc-sunrise-orange", type: "mocktail", name: "Frozen Orange Sunrise", emoji: "๐ ", description: "Een prachtige gradient van sinaasappel en grenadine โ smaakt als een zonsopgang.", difficulty: "Beginner", difficultyScore: 1, prepTime: "5 min", freezeTime: "40 min", totalTime: "45 min", servings: 2, rating: 4.6, popularity: 72, tags: ["beginner", "zomer", "kleurrijk"], diet: ["vegan", "dairy_free", "gluten_free"], program: "Slush", ingredients: [ "2 kopjes sinaasappelsap (480ml)", "1 kopje ananassap", "1 el citroensap", "3 el grenadinesiroop", "2 kopjes ijsblokjes" ], steps: [ "Mix sinaasappelsap, ananassap en citroensap in een kan.", "Giet in de vessel en selecteer SLUSH.", "Bij het serveren: giet langzaam grenadine langs de zijkant voor een sunset-effect.", "Garneer met een sinaasappelschijf." ], mixins: ["Sinaasappel", "Grenadine", "Munt", "Bessen"], nutrition: { calories: 130, fat: "0g", carbs: "32g", protein: "1g" }, tips: "Voor het beste gradient-effect: gebruik de achterkant van een lepel bij het gieten van de grenadine." }, { id: "mc-cucumber-mint-cooler", type: "mocktail", name: "Cucumber Mint Cooler", emoji: "๐ฅ", description: "Ultra-verfrissend โ koele komkommer, munt en een vleugje limoen. Spa-dag thuis.", difficulty: "Beginner", difficultyScore: 1, prepTime: "10 min", freezeTime: "40 min", totalTime: "50 min", servings: 2, rating: 4.5, popularity: 68, tags: ["verfrissend", "light", "zomer"], diet: ["vegan", "dairy_free", "gluten_free", "low_sugar"], program: "Slush", ingredients: [ "1 komkommer (geschild en in stukjes)", "15 muntblaadjes", "2 limoenen (sap)", "1 el agavesiroop", "2 kopjes soda water (480ml)", "1 kopje ijsblokjes" ], steps: [ "Pureer komkommer met munt en limoensap in een blender.", "Zeef het mengsel door een fijne zeef.", "Voeg agavesiroop, soda water en ijs toe.", "Giet in de vessel en selecteer SLUSH.", "Garneer met een komkommerlint en munt." ], mixins: ["Komkommer", "Munt", "Limoen", "Basilicum"], nutrition: { calories: 45, fat: "0g", carbs: "11g", protein: "1g" }, tips: "Maak komkommerlinten met een dunschiller voor een elegante garnering." } ]; // ============================================================ // MIX & MATCH DATA // ============================================================ const MIXMATCH_DATA = { bases: [ { id: 'heavy-cream', name: 'Zware room', emoji: '๐ฅ', desc: 'Klassiek, meest romig' }, { id: 'whole-milk', name: 'Volle melk', emoji: '๐', desc: 'Standaard, lichter' }, { id: 'coconut-milk', name: 'Kokosmelk', emoji: '๐ฅฅ', desc: 'Vegan, tropisch' }, { id: 'almond-milk', name: 'Amandelmelk', emoji: '๐ฅ', desc: 'Low-cal, notig' }, { id: 'greek-yogurt', name: 'Griekse yoghurt', emoji: '๐ฅ', desc: 'Tart, eiwitrijk' }, { id: 'oat-milk', name: 'Havermelk', emoji: '๐พ', desc: 'Vegan, romig' }, { id: 'cashew-milk', name: 'Cashewmelk', emoji: '๐ฅ', desc: 'Vegan, boterzig' }, { id: 'protein-shake', name: 'Eiwitshake', emoji: '๐ช', desc: 'Klaar-te-drinken' }, ], flavors: [ { id: 'vanilla', name: 'Vanille', emoji: '๐ธ', pairing: 95 }, { id: 'chocolate', name: 'Chocolade', emoji: '๐ซ', pairing: 95 }, { id: 'strawberry', name: 'Aardbei', emoji: '๐', pairing: 88 }, { id: 'mango', name: 'Mango', emoji: '๐ฅญ', pairing: 82 }, { id: 'pistachio', name: 'Pistache', emoji: '๐ข', pairing: 78 }, { id: 'coffee', name: 'Koffie', emoji: 'โ', pairing: 85 }, { id: 'matcha', name: 'Matcha', emoji: '๐ต', pairing: 72 }, { id: 'lemon', name: 'Citroen', emoji: '๐', pairing: 68 }, { id: 'lavender', name: 'Lavendel', emoji: '๐', pairing: 55 }, { id: 'caramel', name: 'Karamel', emoji: '๐ฏ', pairing: 90 }, { id: 'mint', name: 'Munt', emoji: '๐ฟ', pairing: 75 }, { id: 'blackberry', name: 'Bosbes', emoji: '๐ซ', pairing: 80 }, { id: 'banana', name: 'Banaan', emoji: '๐', pairing: 78 }, { id: 'rose', name: 'Roos', emoji: '๐น', pairing: 45 }, { id: 'cardamom', name: 'Kardemom', emoji: '๐ค', pairing: 50 }, { id: 'espresso', name: 'Espresso', emoji: 'โ', pairing: 82 }, ], mixins: [ { id: 'choc-chunks', name: 'Chocolade stukjes', emoji: '๐ซ', pairing: 92 }, { id: 'brownie', name: 'Brownie stukjes', emoji: '๐ซ', pairing: 88 }, { id: 'oreo', name: 'Oreo crumble', emoji: '๐ช', pairing: 90 }, { id: 'caramel-swirl', name: 'Karamel swirl', emoji: '๐ฏ', pairing: 85 }, { id: 'pecan', name: 'Pecan noten', emoji: '๐ฅ', pairing: 75 }, { id: 'cookie-dough', name: 'Cookie dough', emoji: '๐ก', pairing: 87 }, { id: 'fresh-berries', name: 'Verse bessen', emoji: '๐ซ', pairing: 80 }, { id: 'granola', name: 'Granola', emoji: '๐ฅฃ', pairing: 70 }, { id: 'coconut-flakes', name: 'Kokos vlokken', emoji: '๐ฅฅ', pairing: 68 }, { id: 'almonds', name: 'Geroosterde amandelen', emoji: '๐ฅ', pairing: 72 }, { id: 'marshmallow', name: 'Marshmallow', emoji: 'โฌ', pairing: 65 }, { id: 'pistachio-nuts', name: 'Pistaches', emoji: '๐ข', pairing: 70 }, { id: 'espresso-beans', name: 'Espresso bonen', emoji: '๐ค', pairing: 68 }, { id: 'mango-chunks', name: 'Mango stukjes', emoji: '๐ฅญ', pairing: 60 }, { id: 'chili', name: 'Chili vlokken', emoji: '๐ถ๏ธ', pairing: 35 }, ], toppings: [ { id: 'hot-fudge', name: 'Warme chocoladesaus', emoji: '๐ซ', pairing: 95 }, { id: 'caramel-sauce', name: 'Karamel saus', emoji: '๐ฏ', pairing: 92 }, { id: 'whipped-cream', name: 'Slagroom', emoji: '๐ฅ', pairing: 90 }, { id: 'sprinkles', name: 'Sprinkles', emoji: '๐', pairing: 70 }, { id: 'cherry', name: 'Kers', emoji: '๐', pairing: 75 }, { id: 'mint-leaf', name: 'Verse munt', emoji: '๐ฟ', pairing: 60 }, { id: 'waffle-cone', name: 'Wafel hoorntje', emoji: '๐ฆ', pairing: 88 }, { id: 'lime-zest', name: 'Lime rasp', emoji: '๐', pairing: 50 }, { id: 'sea-salt', name: 'Zeezout vlokken', emoji: '๐ง', pairing: 55 }, { id: 'honey', name: 'Honing', emoji: '๐ฏ', pairing: 72 }, { id: 'berry-compote', name: 'Bessen compote', emoji: '๐ซ', pairing: 78 }, { id: 'balsamic', name: 'Balsamico glazuur', emoji: '๐ค', pairing: 40 }, ], }; // ============================================================ // FLAVOR PAIRING MATRIX โ Voor Mix & Match compatibility scoring // ============================================================ const PAIRING_RULES = { // [flavor][mixin] = modifier (0.5 - 1.5) 'chocolate': { 'choc-chunks': 1.3, 'brownie': 1.4, 'caramel-swirl': 1.2, 'espresso-beans': 1.3, 'chili': 1.2 }, 'vanilla': { 'choc-chunks': 1.2, 'oreo': 1.3, 'cookie-dough': 1.3, 'fresh-berries': 1.2, 'caramel-swirl': 1.2 }, 'strawberry': { 'fresh-berries': 1.3, 'granola': 1.2, 'choc-chunks': 1.1, 'marshmallow': 1.2 }, 'mango': { 'coconut-flakes': 1.3, 'chili': 1.4, 'lime-zest': 1.3, 'fresh-berries': 0.8 }, 'pistachio': { 'pistachio-nuts': 1.4, 'almonds': 1.2, 'choc-chunks': 1.1, 'honey': 1.2 }, 'coffee': { 'espresso-beans': 1.4, 'choc-chunks': 1.3, 'caramel-swirl': 1.3, 'brownie': 1.2 }, 'matcha': { 'almonds': 1.2, 'coconut-flakes': 1.2, 'choc-chunks': 1.0, 'fresh-berries': 1.1 }, 'lemon': { 'fresh-berries': 1.3, 'mint-leaf': 1.2, 'lime-zest': 1.3, 'granola': 1.1 }, 'caramel': { 'caramel-swirl': 1.5, 'pecan': 1.3, 'sea-salt': 1.4, 'brownie': 1.2 }, 'mint': { 'choc-chunks': 1.4, 'brownie': 1.2, 'fresh-berries': 1.0 }, 'banana': { 'choc-chunks': 1.2, 'caramel-swirl': 1.2, 'pecan': 1.1, 'granola': 1.3 }, }; // ============================================================ // GUIDE CONTENT // ============================================================ const GUIDE_CONTENT = { programs: { title: '๐๏ธ Alle 13 Programma\'s', html: `
De Ninja Swirl by CREAMi heeft 13 รฉรฉn-knops programma's verdeeld over twee categorieรซn: Scooped (7) en Soft Serve (6). Hieronder het volledige overzicht.
${p.desc}
Programma ID: ${key}
De Ninja Swirl by CREAMi gebruikt een uniek systeem: in plaats van een traditioneel ijsmachine met ingebouwde vrieskom, vries je het mengsel in speciale pints. De machine gebruikt dan een roterende paddle (de "Creamifier") om het bevroren blok om te zetten in romig ijs.
Blend of roer je ingrediรซnten. Giet in een Ninja Swirl pint tot 2,5 cm van de rand.
Plaats de afgedekte pint minimaal 24 uur in de vriezer op -18ยฐC of kouder. Het mengsel moet volledig hard bevroren zijn.
Plaats de pint in de outer bowl. Sluit het deksel. Voor soft serve: installeer de swirl nozzle. Plaats de outer bowl op het platform en til omhoog.
Kies het juiste programma en druk op START. De machine draait ~2-4 minuten. Het geluidsniveau is hoog (80-85dB) โ dit is normaal.
Haal de pint eruit. Maak een kuiltje in het midden. Voeg mix-ins toe en gebruik het MIX-IN programma. Voor soft serve: dispenseer met de swirl knop.
Een goede voorbereiding is cruciaal voor perfect resultaat. De pinten moeten minimaal 24 uur in de vriezer. De temperatuur moet consequent -18ยฐC of lager zijn. Een vries-vries combinatie werkt, maar de back-vriezer is betrouwbaarder dan de deur.
Vul de pint tot maximaal de MAX lijn (ongeveer 2,5 cm onder de rand). Te vol = het deksel past niet goed en de Creamifier kan het niet verwerken. Te weinig = de paddle bereikt het mengsel niet.
Bewaar verwerkte ijs in de pint met het deksel. Bij juiste vriezer-temperatuur blijft het tot 2 weken goed. Voor soft serve: bewaar in de pint met nozzle-cap.
DD-MM Smaak
Swirl Press: Het oranje/grijze onderdeel in de dispense deksel moet na soft serve grondig worden uitgespoeld. Demonteer het door de dispense cap van het deksel te draaien. Week in warm water als restanten hard zijn.
Nozzle: De nozzle op de pint moet regelmatig worden gecheckt. Als de soft serve niet gelijkmatig uitkomt, kan de nozzle verstopt zijn. Week 15 minuten in warm water en reinig met een zachte borstel.
`, }, troubleshooting: { title: '๐ง Probleemoplossing', html: `Oorzaak: Te lang bevroren of mengsel te droog.
Oplossing: Voeg 1 eetlepel melk of water toe aan de pint en gebruik RE-SPIN. Herhaal indien nodig. Bij hardnekkige gevallen: laat de pint 2-5 minuten op het aanrecht staan.
Oorzaak: Mengsel niet genoeg bevroren of te veel suiker/alcohol.
Oplossing: Vries de pint opnieuw 2-4 uur. Verminder suiker in volgende batch. Alcohol verlaagt het vriespunt โ max 1-2 eetlepels per pint.
Oorzaak: Normaal! De Creamifier roteert met hoge snelheid tegen hard bevroren mengsel.
Oplossing: Geen actie nodig. Het geluid neemt af naarmate het ijs zachter wordt. Overweeg oordopjes als de machine naast je staat.
Oorzaak: Outer bowl niet correct geรฏnstalleerd of platform niet omhoog.
Oplossing: Controleer of de outer bowl vastklikt. Til het platform volledig omhoog tot het klikt. De deksel moet pijlsgewijs zijn aangedraaid.
Oorzaak: Swirl nozzle verstopt of dispense cap niet correct geรฏnstalleerd.
Oplossing: Controleer de swirl press. Demonteer en reinig de nozzle. Zorg dat de dispense cap volledig is aangedraaid. Probeer de RE-SPIN om het ijs zachter te maken.
Oorzaak: Te weinig vet of suiker in de basis, of niet lang genoeg bevroren.
Oplossing: Gebruik volle melk en room (minstens 35% vet). Suiker en alcohol voorkomen kristalvorming. Vries minimaal 24 uur.
Oorzaak: De machine detecteert dat het mengsel te vast is om te verwerken.
Oplossing: Voeg 1-2 eetlepels vloeistof toe (melk, water, of sap) en druk op RE-SPIN.
${prog.desc}
๐
Pas je filters aan of probeer een andere zoekterm.
${r.description}
${r.description}
${r.description}
Selecteer minimaal รฉรฉn optie om een recept te genereren!
'); return; } const compat = calculateCompatibility(); const program = recommendProgram(); const compatLabel = compat >= 85 ? '๐ Perfecte match!' : compat >= 70 ? '๐ Goede combi!' : '๐ค Avant-garde...'; const compatColor = compat >= 85 ? 'var(--mint-primary)' : compat >= 70 ? 'var(--mango)' : 'var(--berry)'; // Build ingredient list const ingredients = []; if (base) { const baseData = MIXMATCH_DATA.bases.find(b => b.id === base.id); ingredients.push(`2 kopjes ${baseData.name.toLowerCase()} (473ml)`); } else { ingredients.push('2 kopjes zware room (473ml)'); } ingredients.push('1 kopje volle melk of plantaardige melk (237ml)'); ingredients.push('โ kopje suiker of natuurlijke zoetstof (133g)'); if (flavor) { const flavorIngredients = { vanilla: '1 eetlepel vanille-extract', chocolate: 'โ kopje cacaopoeder (33g)', strawberry: '1 kopje verse aardbeien, geblend', mango: '1 kopje mango puree', pistachio: '1 kopje gepureerde pistaches', coffee: '2 eetlepels oploskoffie of espresso', matcha: '2 eetlepels matcha poeder', lemon: '3 eetlepels vers citroensap + zeste', lavender: '2 theelepels gedroogde lavendelbloemen', caramel: '3 eetlepels karamelsiroop', mint: '1 theelepel pepermunt extract', blackberry: '1 kopje bosbes puree', banana: '2 rijpe bananen, geprakt', rose: '1 theelepel rozenwater', cardamom: '1 theelepel gemalen kardemom', espresso: '2 eetlepels espresso, afgekoeld', }; if (flavorIngredients[flavor.id]) ingredients.push(flavorIngredients[flavor.id]); } if (mixin) ingredients.push(`${mixin.emoji} ${mixin.name} (naar smaak)`); ingredients.push('Snufje zout'); const recipeName = [ flavor ? flavor.name : 'Romige', base && base.id === 'greek-yogurt' ? 'Frozen Yogurt' : 'IJs', mixin ? `met ${mixin.name}` : '', ].filter(Boolean).join(' '); showMMResult(`${base ? base.emoji + ' ' + base.name : ''} ${base && flavor ? ' + ' : ''} ${flavor ? flavor.emoji + ' ' + flavor.name : ''} ${mixin ? ' + ' + mixin.emoji + ' ' + mixin.name : ''} ${topping ? ' + ' + topping.emoji + ' ' + topping.name : ''}
๐ฏ
Ga terug om je keuzes te maken.
Direct te maken uit de database:
${r.description}
Op basis van jouw keuzes samengesteld:
๐คท
Probeer andere keuzes.
${base.split('(')[0]} + ${flavorName}${mixinNames.length ? ' + ' + mixinNames.join(', ') : ''}