[{"data":1,"prerenderedAt":443},["ShallowReactive",2],{"DefaultLayouten":3,"language-blog-page-page-i18n-slugs":134,"language-blog-page-page-en-3":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":420,"tags":422,"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,184,199,210,219,234,248,257,268,280,295,306,316,329,342,353,364,374,387,403],{"slug":173,"social":174,"title":179,"date":180,"authors":181},"kick-start-your-design-system-with-a-design-inventory-workshop",{"title":175,"description":176,"image":177},"Design System Inventory Workshop with Web Experts ","Turning an existing design into a system, can be a challenge. To kick-start this process we’ve developed the Design System Inventory Workshop. Read more.",{"url":178},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1631791147-design-inventory-cover.jpg","Kick-start your Design System with a Design Inventory Workshop","2021-09-16T02:00:00.000+02:00",[182],{"name":154,"image":183},{"url":156,"alt":134,"width":157,"height":158},{"slug":185,"social":186,"title":187,"date":191,"authors":192},"create-a-better-google-user-experience-with-structured-data",{"title":187,"description":188,"image":189},"Create a better Google user experience with structured data","Using structured data helps Google better understand your website and present info in a user friendly way",{"url":190},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1623338977-structured-data-bas-cover.png","2021-06-10T02:00:00.000+02:00",[193],{"name":194,"image":195},"Bas",{"url":196,"alt":134,"width":197,"height":198},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534636-placeholder.jpg",1235,1646,{"slug":200,"social":201,"title":202,"date":206,"authors":207},"elder-js-the-new-kid-on-the-block",{"title":202,"description":203,"image":204},"Elder.js, the new kid on the block","Elder.js is a new meta framework based on Svelte. What does it bring to the table?",{"url":205},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1621322949-elderjs-cover.png","2021-05-18T02:00:00.000+02:00",[208],{"name":154,"image":209},{"url":156,"alt":134,"width":157,"height":158},{"slug":211,"social":212,"title":213,"date":215,"authors":216},"don-t-rely-on-automated-tests-for-solid-accessibility",{"title":213,"description":214,"image":134},"Don’t rely on automated tests for solid accessibility","It is important to manually check for accessibility issues, as not all issues will be found using automated testing.","2021-04-23T02:00:00.000+02:00",[217],{"name":194,"image":218},{"url":196,"alt":134,"width":197,"height":198},{"slug":220,"social":221,"title":222,"date":226,"authors":227},"bundle-splitting-with-react-s-lazy-and-suspense",{"title":222,"description":223,"image":224},"Bundle splitting with React’s lazy & Suspense","A guide to using React suspense and lazy loading components",{"url":225},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1618221749-react-lazy-loading-cover.png","2021-03-30T02:00:00.000+02:00",[228],{"name":229,"image":230},"Sjoerd",{"url":231,"alt":134,"width":232,"height":233},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534892-sjoerd.jpg",1637,2182,{"slug":235,"social":236,"title":237,"date":241,"authors":242},"the-new-native-web",{"title":237,"description":238,"image":239},"New native web API's: Monetization and Animation","Watch the videos of our new native web meetup about the new Monetization and Web Animation API's",{"url":240},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1616680383-new-native-web-blog.jpg","2021-03-25T01:00:00.000+01:00",[243,246],{"name":244,"image":245},"Ben",{"url":196,"alt":134,"width":197,"height":198},{"name":154,"image":247},{"url":156,"alt":134,"width":157,"height":158},{"slug":249,"social":250,"title":251,"date":253,"authors":254},"why-skip-links-are-important-for-accessibility",{"title":251,"description":252,"image":134},"Why skip-links are important for accessibility","Skip-links play an important role in making a website accessible for everybody. Here I point out why and how you can implement them consistently.","2021-03-23T01:00:00.000+01:00",[255],{"name":194,"image":256},{"url":196,"alt":134,"width":197,"height":198},{"slug":258,"social":259,"title":260,"date":264,"authors":265},"maybe-not-eleventy",{"title":260,"description":261,"image":262},"Maybe not Eleventy","Eleventy is a very popular JAMStack site generator. But it too has its limitations. Here's why maybe you shouldn't choose Eleventy for your next project.",{"url":263},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1615900125-maybe-not-eleventy-cover.jpg","2021-03-16T01:00:00.000+01:00",[266],{"name":154,"image":267},{"url":156,"alt":134,"width":157,"height":158},{"slug":269,"social":270,"title":271,"date":275,"authors":276},"super-fast-npm-install-on-github-actions",{"title":271,"description":272,"image":273},"Super fast npm install on Github Actions","A guide to speed up installing Node.js dependencies in a CI environment.",{"url":274},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1614344050-super-fast-npm-installs-on-github-actions.jpg","2021-02-26T01:00:00.000+01:00",[277],{"name":278,"image":279},"Selwyn",{"url":196,"alt":134,"width":197,"height":198},{"slug":281,"social":282,"title":283,"date":287,"authors":288},"simulate-blindness-when-testing-a11y",{"title":283,"description":284,"image":285},"Simulate blindness when testing a11y","A handy technique to simulate blindness and improve accessibility testing.",{"url":286},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1613552127-simulate-blindness-on-wikipedia.jpg","2021-02-17T01:00:00.000+01:00",[289],{"name":290,"image":291},"Peter",{"url":292,"alt":134,"width":293,"height":294},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1744374527-peter-edit.jpg",1381,1839,{"slug":296,"social":297,"title":298,"date":302,"authors":303},"svelte-kit-the-first-serverless-first-framework",{"title":298,"description":299,"image":300},"Svelte Kit, the first ‘serverless-first’ framework?","Rich Harris claims Svelte is now 'serverless-first'. But is it? And how well does it integrate with serverless platforms like Netlify and Vercel?",{"url":301},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1612365011-svelte-kit-serverless-first-banner.png","2021-02-02T01:00:00.000+01:00",[304],{"name":154,"image":305},{"url":156,"alt":134,"width":157,"height":158},{"slug":307,"social":308,"title":309,"date":311,"authors":312},"load-sentry-asynchronously-only-on-error",{"title":309,"description":310,"image":134},"Load Sentry asynchronously only on error","To prevent a performance penalty by loading Sentry even if no errors occur, we wrote a small handler that lazy loads Sentry:","2021-01-22T01:00:00.000+01:00",[313],{"name":314,"image":315},"Declan",{"url":196,"alt":134,"width":197,"height":198},{"slug":317,"social":318,"title":319,"date":321,"authors":322},"building-a-client-side-proxy",{"title":319,"description":320,"image":134},"Building a client side proxy","Using front-end technology to enforce the right to free access to information","2020-09-27T02:00:00.000+02:00",[323],{"name":324,"image":325},"Anne",{"url":326,"alt":134,"width":327,"height":328},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535114-anne.jpg",1823,2431,{"slug":330,"social":331,"title":332,"date":334,"authors":335},"faster-nuxt-sites-on-netlify",{"title":332,"description":333,"image":134},"Faster Nuxt sites on Netlify","From Nuxt and Netlify we get a lot performance out-of-the-box. But we can make things even faster by tuning Nuxt and Netlify to work together!","2020-05-08T02:00:00.000+02:00",[336],{"name":337,"image":338},"Frank",{"url":339,"alt":134,"width":340,"height":341},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534610-frank.jpg",2049,2732,{"slug":343,"social":344,"title":345,"date":349,"authors":350},"learning-new-skills-during-my-downtime",{"title":345,"description":346,"image":347},"Learning new skills during my downtime","How I found a useful way to spend my downtime.",{"url":348},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1588236691-i4chwc3n.jpeg","2020-04-29T02:00:00.000+02:00",[351],{"name":194,"image":352},{"url":196,"alt":134,"width":197,"height":198},{"slug":354,"social":355,"title":356,"date":360,"authors":361},"turning-vue-components-into-reusable-npm-packages",{"title":356,"description":357,"image":358},"Turning Vue components into reusable npm packages","How can you reuse Vue.js components across your projects? \nHere’s how we automated our process to bundle, test, document and publish Vue components.",{"url":359},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1587478158-blogpost-diagram.png","2020-04-22T02:00:00.000+02:00",[362],{"name":229,"image":363},{"url":231,"alt":134,"width":232,"height":233},{"slug":365,"social":366,"title":369,"date":370,"authors":371},"corona-proof-it-architecture",{"title":367,"description":368,"image":134},"Corona-proof IT architecture: perfomance under pressure ","Your IT architecture choices determine how well your product performs under pressure. How well does your site handle unexpected high traffic? What can you do?"," Corona-proof IT architecture?","2020-04-14T02:00:00.000+02:00",[372],{"name":154,"image":373},{"url":156,"alt":134,"width":157,"height":158},{"slug":375,"social":376,"title":381,"date":382,"authors":383},"ice-cream-with-graphql-subscriptions",{"title":377,"description":378,"image":379},"Ice cream with GraphQL subscriptions | Blog | De Voorhoede","Get notified whenever ice cream is dispensed in your favourite flavour using real-time GraphQL subscriptions. Read about it in our blog.",{"url":380},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1585835640-graphql-ice-cream-001.jpeg","Ice cream with GraphQL subscriptions","2020-03-31T02:00:00.000+02:00",[384],{"name":385,"image":386},"Thadee",{"url":196,"alt":134,"width":197,"height":198},{"slug":388,"social":389,"title":394,"date":395,"authors":396},"building-our-own-chatbot-and-cloud-ai-service",{"title":390,"description":391,"image":392},"Building our own Chatbot and Cloud AI Service","Welcome to Chatty Coffee, a chatbot AI experiment with NLP.js and Netlify functions.",{"url":393},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1583230552-chatty-coffee-cover.jpeg","Building our own chatbot and cloud AI service","2020-03-03T01:00:00.000+01:00",[397],{"name":398,"image":399},"James",{"url":400,"alt":134,"width":401,"height":402},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534742-james.jpg",1811,2415,{"slug":404,"social":405,"title":406,"date":410,"authors":411},"your-website-probably-has-a-memory-leak",{"title":406,"description":407,"image":408},"Your website probably has a memory leak","Memory leaks are common in Single Page Apps. How do you find and fix them?",{"url":409},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1582878468-memory-leak-social.jpeg","2020-02-25T01:00:00.000+01:00",[412,418],{"name":413,"image":414},"Remco",{"url":415,"alt":134,"width":416,"height":417},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535671-remco.jpg",1990,2653,{"name":314,"image":419},{"url":196,"alt":134,"width":197,"height":198},{"count":421},96,[423,427,431,435,439],{"id":424,"title":425,"slug":426},"WTPJX79URE-O5lpWLJeEHg","Headless CMS","headless-cms",{"id":428,"title":429,"slug":430},"JBiZUe8mQVujxlNVR5gx8Q","Design Systems","design-systems",{"id":432,"title":433,"slug":434},"HgWm8aCCRMWWS0eqggo5xg","Accessibility ","accessibility",{"id":436,"title":437,"slug":438},"NJN9K2rdSY2pn9MvchHLtw","Strategy","strategy",{"id":440,"title":441,"slug":442},"b-HOCOQTRJKMsff0UxhDcg","Web performance ","web-performance",1776256139871]