[{"data":1,"prerenderedAt":468},["ShallowReactive",2],{"DefaultLayouten":3,"language-blog-i18n-slugs":134,"language-blog-en":135},{"app":4,"menu":31,"footer":66},{"githubUrl":5,"youtubeUrl":6,"linkedinUrl":7,"phoneNumber":8,"emailAddress":9,"legal":10,"addresses":20},"https:\u002F\u002Fgithub.com\u002Fvoorhoede\u002F","https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCzHuhQVYFRixtQN2-swcuGg","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fde-voorhoede","+31 20 2610 954","post@voorhoede.nl",[11,14,17],{"title":12,"value":13},"KvK","56017235",{"title":15,"value":16},"BTW","NL851944620B01",{"title":18,"value":19},"IBAN","NL14TRIO0320142078",[21,26],{"address":22,"city":23,"googleMapsLink":24,"postalCode":25},"Koivistokade 70","Amsterdam","https:\u002F\u002Fwww.google.com\u002Fmaps\u002Fplace\u002FDe+Voorhoede+%7C+Front-end+Development\u002F@52.396847,4.8700823,17z\u002Fdata=!3m1!4b1!4m5!3m4!1s0x47c5e21d502d2d59:0xbf570944a96ebf45!8m2!3d52.347647!4d4.8502154","1013 BB",{"address":27,"city":28,"googleMapsLink":29,"postalCode":30},"Koornmarkt 22","Delft","https:\u002F\u002Fwww.google.nl\u002Fmaps\u002Fplace\u002FKoornmarkt+22,+2611+EG+Delft\u002F@52.0093477,4.3573054,17z\u002F","2611 EG",{"title":32,"callToActions":33,"links":39},"Site Menu",[34],{"id":35,"title":36,"link":37},"163140902","Contact",{"__typename":38},"ContactRecord",[40,46,51,56,61],{"id":41,"title":42,"link":43},"163140904","Impact",{"__typename":44,"slug":45},"PageRecord","impact",{"id":47,"title":48,"link":49},"163140905","Services",{"__typename":50},"ServiceOverviewRecord",{"id":52,"title":53,"link":54},"163140906","Cases",{"__typename":55},"CaseOverviewRecord",{"id":57,"title":58,"link":59},"163140908","About us",{"__typename":44,"slug":60},"about-us",{"id":62,"title":63,"link":64},"d6WdFJq2SOuc3dWtpibbXQ","Work at",{"__typename":44,"slug":65},"work-at",{"links":67,"copyrightTitle":93,"copyrightLabel":94,"copyrightLink":95,"privacyTitle":96,"privacyLabel":97,"privacyLink":98,"certificatesGrid":99},[68,71,74,77,82,85,88],{"id":69,"title":42,"link":70},"144185264",{"__typename":44,"slug":45},{"id":72,"title":48,"link":73},"144185265",{"__typename":50},{"id":75,"title":53,"link":76},"144185266",{"__typename":55},{"id":78,"title":79,"link":80},"144185267","Blog",{"__typename":81},"BlogPostOverviewRecord",{"id":83,"title":58,"link":84},"144185268",{"__typename":44,"slug":60},{"id":86,"title":36,"link":87},"144185269",{"__typename":38},{"id":89,"title":90,"link":91},"144185270","FAQ",{"__typename":44,"slug":92},"faq","Creative Commons licence and disclaimer","CC BY 4.0","https:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F4.0\u002F","De Voorhoede privacy statement (pdf)","Privacy statement","https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1763455455-vh-isms-006-privacy-statement-de-voorhoede-en.pdf",[100,112,123],{"id":101,"image":102,"link":107},"Xq4bBfg_TZ6Fkjax9mkbLQ",{"url":103,"alt":104,"width":105,"height":106},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1687353463-b-corp-logo-black-rgb.png","B Corp logo",404,680,{"__typename":108,"id":109,"title":110,"url":111},"ExternalLinkRecord","fGW1ak8XQYaYDLkBSyncog","B Corp","https:\u002F\u002Fwww.bcorporation.net\u002Fen-us\u002Ffind-a-b-corp\u002Fcompany\u002Fde-voorhoede\u002F",{"id":113,"image":114,"link":119},"c5mCXRTiSraRIB25fw1p7Q",{"url":115,"alt":116,"width":117,"height":118},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1687353461-dda-boxlogo-black.png","Dutch Digital Agencies logo",627,480,{"__typename":108,"id":120,"title":121,"url":122},"P6Jh7B0cTv2cKyNEeKVWVQ","Dutch Digital Agencies","https:\u002F\u002Fdutchdigitalagencies.com\u002Fleden\u002Fde-voorhoede\u002F",{"id":124,"image":125,"link":129},"MT5SCyNxSTSr_v5eeATMZw",{"url":126,"alt":127,"width":128,"height":128},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1775730283-dnv.png","DNV logo",518,{"id":130,"title":131,"link":132},"BRtNB5HnT5i-7HkA8IYzBw","DIV",{"__typename":44,"slug":133},"impact\u002Fdigitale-producten-privacy-by-design",null,{"page":136,"items":171,"itemsMeta":445,"tags":447,"tag":134},{"title":79,"social":137,"subtitle":140,"description":141,"headerIllustration":134,"pinnedPosts":142,"pivots":159},{"title":138,"description":139,"image":134},"Blog | De Voorhoede","Find out how we approach our projects and what techniques we use.","We love the web","In our blog posts you’ll read how we approach our projects and what techniques we use.",[143],{"slug":144,"social":145,"title":150,"date":151,"authors":152},"how-to-select-framework-design-system-components",{"title":146,"description":147,"image":148},"How to select a Framework for Design System Components","Which technology or framework do you select for your design system? We looked at a setup with Stencil and PReact. Read about our conclusion. ",{"url":149},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1670852538-linkedin-post-2.jpg","How to select a framework for design system components","2022-12-12T01:00:00.000+01:00",[153],{"name":154,"image":155},"Jasper",{"url":156,"alt":134,"width":157,"height":158},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535518-jasper.jpg",1892,2523,[160],{"title":161,"body":162,"links":163,"mailchimpValue":170,"mailchimpName":170,"mailchimpId":170,"formType":170,"contactPerson":134},"Also in love with the web?","\u003Cp>For us, that’s about technology and user experience. Fast, available for all, enjoyable to use. And fun to build. This is how our team bands together, adhering to the same values, to make sure we achieve a solid result for clients both large and small. Does that fit you?\u003C\u002Fp>\n",[164],{"__typename":165,"id":166,"title":167,"link":168},"InternalLinkRecord","163140992","Join our team",{"__typename":44,"slug":169},"jobs","",[172,187,199,214,225,241,252,267,278,287,302,318,330,346,359,374,386,397,413,429],{"slug":173,"social":174,"title":179,"date":134,"authors":180},"increase-efficiency-with-white-label-websites",{"title":175,"description":176,"image":177},"Increase efficiency with white label websites | De Voorhoede","Building identical websites in isolation can feel easy at a first glance. But it's time consuming and it’s error prone. White label website are your solution.",{"url":178},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1693830938-linkedin-blog-alternatief.png","Increase efficiency with white label websites",[181],{"name":182,"image":183},"Frank",{"url":184,"alt":134,"width":185,"height":186},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534610-frank.jpg",2049,2732,{"slug":188,"social":189,"title":190,"date":134,"authors":192},"simplifying-search-using-ai-in-our-knowledge-base",{"title":190,"description":191,"image":134},"Simplifying Search: Using AI in our Knowledge Base","Discover how we utilized Supabase and the OpenAI API to revamp our internal knowledge base search.",[193],{"name":194,"image":195},"Sjoerd",{"url":196,"alt":134,"width":197,"height":198},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534892-sjoerd.jpg",1637,2182,{"slug":200,"social":201,"title":203,"date":206,"authors":207},"reclaiming-digital-sovereignty-on-european-infrastructure",{"title":202,"description":203,"image":204},"Independence from American technology","Reclaiming Digital Sovereignty on European Infrastructure",{"url":205},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1769684464-2026-01-29_blog-post-luuk-en.jpg","2026-01-29T12:02:28.591+01:00",[208],{"name":209,"image":210},"Luuk",{"url":211,"alt":134,"width":212,"height":213},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1721036156-luuk-edit-edit.jpg",2198,2969,{"slug":215,"social":216,"title":218,"date":221,"authors":222},"how-close-to-the-user-should-your-code-be",{"title":217,"description":218,"image":219},"Serverless & edge compute","How close to the user should your code be?",{"url":220},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1761816932-jasper-blog.jpg","2025-10-30T10:07:10.411+01:00",[223],{"name":154,"image":224},{"url":156,"alt":134,"width":157,"height":158},{"slug":226,"social":227,"title":232,"date":233,"authors":234},"designing-css-for-non-latin-languages-on-the-web",{"title":228,"description":229,"image":230},"CSS for Non-Latin Languages","Designing CSS for Non-Latin Languages on the Web",{"url":231},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1756825325-blog_css.jpg","Designing CSS\u002FHTML for Non-Latin Languages on the Web","2025-09-01T09:23:50.428+02:00",[235],{"name":236,"image":237},"Marleen",{"url":238,"alt":134,"width":239,"height":240},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1760339746-marleen-edit.jpeg",1431,1908,{"slug":242,"social":243,"title":244,"date":248,"authors":249},"accessibility-in-design-systems",{"title":244,"description":245,"image":246},"Accessibility in Design Systems","Design systems help with accessibility, but they’re not the full solution.",{"url":247},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1749642128-accessibility_blog_with_graphic.jpg","2025-06-17T14:15:56.000+02:00",[250],{"name":194,"image":251},{"url":196,"alt":134,"width":197,"height":198},{"slug":253,"social":254,"title":255,"date":259,"authors":260},"better-transitions-with-scroll-driven-animations",{"title":255,"description":256,"image":257},"Using scroll-driven animations for better transitions","CSS scroll-driven animations can be used to great effect instead of the transition definition.",{"url":258},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1724412268-linkedin-blog-11.jpg","2025-01-10T13:42:00.261+01:00",[261],{"name":262,"image":263},"Jurgen",{"url":264,"alt":262,"width":265,"height":266},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1721036030-jurgen-edit.jpg",2341,3069,{"slug":268,"social":269,"title":270,"date":274,"authors":275},"design-system-from-scratch-from-the-shelf",{"title":270,"description":271,"image":272},"Design System: from scratch or from the shelf?","Depending on your needs and budget, you may prefer a fully tailor-made design system from scratch, or rather a white label from the shelf.",{"url":273},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1731076679-social-design-system-scratch-shelf.png","2024-11-19T13:16:02.759+01:00",[276],{"name":154,"image":277},{"url":156,"alt":134,"width":157,"height":158},{"slug":279,"social":280,"title":281,"date":283,"authors":284},"the-popover-api-your-new-best-friend-for-tooltips",{"title":281,"description":282,"image":134},"The Popover API: Your New Best Friend for Tooltips","Discover how the Popover API and new CSS features simplify tooltip creation, making them accessible and well-positioned across all major browsers","2024-10-07T15:36:10.707+02:00",[285],{"name":194,"image":286},{"url":196,"alt":134,"width":197,"height":198},{"slug":288,"social":289,"title":291,"date":294,"authors":295},"write-components-once-run-everywhere-with-mitosis-a-beautiful-dream-or-reality",{"title":290,"description":291,"image":292},"Using Mitosis to build a Design System","“Write components once, run everywhere” with Mitosis; a beautiful dream or reality?",{"url":293},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1726596831-mitosis-social-cover-en.jpg","2024-09-16T13:04:31.307+02:00",[296],{"name":297,"image":298},"Wessel",{"url":299,"alt":297,"width":300,"height":301},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1721035942-wessel.jpg",2135,2868,{"slug":303,"social":304,"title":309,"date":310,"authors":311},"lessons-learned-debugging-inp",{"title":305,"description":306,"image":307},"Lessons learned debugging Interaction to Next Paint (INP)","INP is a new performance metric significantly affetcing your search ranking. But how can we measure and debug in order to improve our website's INP?",{"url":308},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1723473873-linkedin-blog-8.jpg"," Lessons learned debugging Interaction to Next Paint (INP)","2024-08-16T09:46:11.712+02:00",[312],{"name":313,"image":314},"Declan",{"url":315,"alt":134,"width":316,"height":317},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534636-placeholder.jpg",1235,1646,{"slug":319,"social":320,"title":325,"date":326,"authors":327},"affordance-design-system-components",{"title":321,"description":322,"image":323},"Affordance in Design System Components | De Voorhoede","By using affordance principles, design systems become easier to use and more flexible, making it simpler for developers to build web applications. Discover how.",{"url":324},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1716534481-linkedin-blog-6.jpg","Affordance in Design System Components","2024-05-27T09:00:00.000+02:00",[328],{"name":194,"image":329},{"url":196,"alt":134,"width":197,"height":198},{"slug":331,"social":332,"title":337,"date":338,"authors":339},"headless-cmss-go-head-to-head-strapi-vs-datocms",{"title":333,"description":334,"image":335},"Headless CMS: Strapi vs DatoCMS ","Our verdict: Strapi if you want to bring your own database & hosting or need severe UI customisation. For most straightforward projects DatoCMS is the way. ",{"url":336},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1691142058-headless-cms-strapi-vs-dato-cms.png","Headless CMSs go head to head: Strapi vs DatoCMS","2023-08-04T02:00:00.000+02:00",[340],{"name":341,"image":342},"Remco",{"url":343,"alt":134,"width":344,"height":345},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535671-remco.jpg",1990,2653,{"slug":347,"social":348,"title":349,"date":353,"authors":354},"building-design-system-react-web-components",{"title":349,"description":350,"image":351},"Building a Design System with React Web Components","Learn how to create a universal Design system with React and Web Components to use in any web application or framework.",{"url":352},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1687161534-linkedin-post-1.jpg","2023-06-19T02:00:00.000+02:00",[355,357],{"name":154,"image":356},{"url":156,"alt":134,"width":157,"height":158},{"name":194,"image":358},{"url":196,"alt":134,"width":197,"height":198},{"slug":360,"social":361,"title":366,"date":367,"authors":368},"switching-google-analytics-privacy-friendly-tracking-6-steps",{"title":362,"description":363,"image":364},"From GA to privacy friendly tracking: 6 steps | De Voorhoede","Is it really necessary for your website to use Google Analytics? Probably not. You can switch to alternative, privacy friendly tracking in 6 steps. Read more.",{"url":365},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1684246367-linkedin-post.jpg","Switching from Google Analytics to privacy friendly tracking in 6 steps","2023-05-29T02:00:00.000+02:00",[369,372],{"name":370,"image":371},"Vera",{"url":315,"alt":134,"width":316,"height":317},{"name":154,"image":373},{"url":156,"alt":134,"width":157,"height":158},{"slug":375,"social":376,"title":381,"date":382,"authors":383},"primary-school-girls-learn-programming-during-girls-day",{"title":377,"description":378,"image":379},"Primary school girls learn programming during Girls' Day","On 30 March 2023 we welcomed a group of girls from the primary school De Oostpoort at our office in Delft. This visit was part of the national Girls’ Day.",{"url":380},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1680181632-girls-day.jpg","Primary school girls learn programming during Girls’ Day","2023-03-31T02:00:00.000+02:00",[384],{"name":370,"image":385},{"url":315,"alt":134,"width":316,"height":317},{"slug":387,"social":388,"title":389,"date":393,"authors":394},"inclusive-design-accessible-web-development",{"title":389,"description":390,"image":391},"Inclusive Design & Accessible Web Development","Accessibilty and inclusivity still gets too little attention in web development. We talked about this during our meetup in collab with Girl Code on march 16.",{"url":392},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1679314130-linkedin-post-4.jpg","2023-03-20T01:00:00.000+01:00",[395],{"name":370,"image":396},{"url":315,"alt":134,"width":316,"height":317},{"slug":398,"social":399,"title":404,"date":405,"authors":406},"highlights-vue-js-nation-2023",{"title":400,"description":401,"image":402},"Highlights from Vue.js Nation 2023 | De Voorhoede","At the Vue.js Nation conference '23 I learned how the creators of Vue see the present and the future of the framework. Here are my takeaways of the talks.",{"url":403},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1679315682-linkedin-blog-alternatief-4.png","Highlights from Vue.js Nation 2023","2023-03-17T01:00:00.000+01:00",[407],{"name":408,"image":409},"Misha",{"url":410,"alt":134,"width":411,"height":412},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535051-misha.jpg",1951,2601,{"slug":414,"social":415,"title":420,"date":421,"authors":422},"introducing-handlebars-in-webassembly",{"title":416,"description":417,"image":418},"Introducing Handlebars in WebAssembly | Blog by De Voorhoede","Clients use various programming languages. How do we manage to create and control the entire front-end, regardless of the back-end they use? We use WebAssembly.",{"url":419},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1676363348-linkedin-blog-alternatief-3.png","Introducing Handlebars in WebAssembly","2023-02-14T01:00:00.000+01:00",[423],{"name":424,"image":425},"Arash",{"url":426,"alt":134,"width":427,"height":428},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535548-arash.jpg",2290,3054,{"slug":430,"social":431,"title":436,"date":437,"authors":438},"can-ai-generate-illustrations-custom-style",{"title":432,"description":433,"image":434},"Can AI generate illustrations in a custom style? | Blog","We did an experiment: can we train AI to generate illustrations in De Voorhoede style? Short answer: yes. Let’s look at the technology and some examples.",{"url":435},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1675175939-linkedin-post-3.jpg","Can AI generate illustrations in a custom style?","2023-01-31T01:00:00.000+01:00",[439],{"name":440,"image":441},"James",{"url":442,"alt":134,"width":443,"height":444},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534742-james.jpg",1811,2415,{"count":446},96,[448,452,456,460,464],{"id":449,"title":450,"slug":451},"WTPJX79URE-O5lpWLJeEHg","Headless CMS","headless-cms",{"id":453,"title":454,"slug":455},"JBiZUe8mQVujxlNVR5gx8Q","Design Systems","design-systems",{"id":457,"title":458,"slug":459},"HgWm8aCCRMWWS0eqggo5xg","Accessibility ","accessibility",{"id":461,"title":462,"slug":463},"NJN9K2rdSY2pn9MvchHLtw","Strategy","strategy",{"id":465,"title":466,"slug":467},"b-HOCOQTRJKMsff0UxhDcg","Web performance ","web-performance",1776256134202]