<!DOCTYPE html> <html lang="nl"> <head> <!-- Google tag (gtag.js) with Consent Mode --> <script> // Set default consent state before gtag loads window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} // Default consent state (denied for EEA users) gtag('consent', 'default', { analytics_storage: 'denied', ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', wait_for_update: 500 }); gtag('js', new Date()); gtag('config', 'G-HE7WYLFFFP'); </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-HE7WYLFFFP"></script> <!-- Meta Pixel Code --> <script> try { !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; // Error handling voor geblokkeerde scripts t.onerror = function() { // Silent fail - script geblokkeerd door ad blocker of privacy settings console.info('Facebook Pixel script geblokkeerd door browser/extensie - dit is normaal gedrag voor privacy'); }; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); // Fallback fbq functie als script niet laadt if (!window.fbq) { window.fbq = function() { // No-op functie om errors te voorkomen }; } fbq('init', '610217278362800'); // PageView tracking will be handled by cookie consent } catch (error) { // Silent fail voor Facebook Pixel fouten console.info('Facebook Pixel kon niet worden geladen - dit is normaal bij privacy-instellingen'); } </script> <!-- End Meta Pixel Code --> <meta charset="UTF-8" > <link rel="icon" type="image/png" href="/favicon_round_sharp32.png" > <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" > <meta name="description" content="WeekChef - Je persoonlijke AI-chef voor weekmenu's en boodschappenlijsten" > <title>WeekChef - Je persoonlijke AI-chef voor weekmenu's</title> <script type="module" crossorigin src="/assets/index-BVUmByCP.js"></script> <link rel="modulepreload" crossorigin href="/assets/vendor-CiEz7Y2v.js"> <link rel="modulepreload" crossorigin href="/assets/supabase-CgihASmK.js"> <link rel="modulepreload" crossorigin href="/assets/ui-JiLr4Fyt.js"> <link rel="stylesheet" crossorigin href="/assets/index-BRz7iqqy.css"> <link rel="manifest" href="/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script><meta name="description" content="Ontvang elke week een persoonlijk menu met snelle, lekkere recepten en een slimme boodschappenlijst."> <meta property="og:title" content="WeekChef - Je persoonlijke AI-chef voor weekmenu's"> <meta property="og:description" content="Ontvang elke week een persoonlijk menu met snelle, lekkere recepten en een slimme boodschappenlijst."> <meta property="og:image" content="https://weekchef.com/share-afbeelding-logo.png"> <meta property="og:url" content="https://weekchef.com/"> <meta property="og:type" content="website"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="WeekChef - Je persoonlijke AI-chef voor weekmenu's"> <meta name="twitter:description" content="Ontvang elke week een persoonlijk menu met snelle, lekkere recepten en een slimme boodschappenlijst."> <meta name="twitter:image" content="https://weekchef.com/share-afbeelding-logo.png"></head> <body> <!-- Meta Pixel noscript fallback --> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=610217278362800&ev=PageView&noscript=1" /></noscript> <div id="root"><div id="app">Loading...</div> <!-- Fallback loading indicator --> <div id="initial-loader" style=" position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: white; display: flex; align-items: center; justify-content: center; z-index: 9999; "> <div style="text-align: center;"> <div style=" width: 40px; height: 40px; border: 3px solid #f3f4f6; border-top: 3px solid #059669; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 16px; "></div> <p style="color: #6b7280; font-family: system-ui, sans-serif;">WeekChef wordt geladen...</p> </div> </div> <style> @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } </style> </div> <script> // Verberg de loader zodra React is geladen - alleen tonen in PWA modus window.addEventListener('DOMContentLoaded', function() { // Check of we in PWA modus zijn const isStandalone = window.matchMedia('(display-mode: standalone)').matches || navigator.standalone === true; const loader = document.getElementById('initial-loader'); if (loader && !isStandalone) { // In browser: verberg loader direct loader.style.display = 'none'; } else if (loader && isStandalone) { // In PWA: verberg na korte delay setTimeout(function() { loader.style.display = 'none'; }, 100); } }); </script> </body> </html>