[{"data":1,"prerenderedAt":459},["ShallowReactive",2],{"DefaultLayouten":3,"language-blog-page-page-i18n-slugs":134,"language-blog-page-page-en-4":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":436,"tags":438,"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,185,206,221,233,245,256,268,280,291,302,319,335,346,358,371,384,396,414,426],{"slug":173,"social":174,"title":175,"date":177,"authors":178},"exploring-the-web-speech-api",{"title":175,"description":176,"image":134},"Exploring the Web Speech API","What is the Web Speech API capable of, what are its limitations and strengths. How you can utilize voice on the web to enhance your user’s browsing experience?","2020-02-14T01:00:00.000+01:00",[179],{"name":180,"image":181},"James",{"url":182,"alt":134,"width":183,"height":184},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534742-james.jpg",1811,2415,{"slug":186,"social":187,"title":188,"date":192,"authors":193},"ai-voice-and-vision",{"title":188,"description":189,"image":190},"AI: Voice and Vision","Watch the videos of our January 2020 AI meetup",{"url":191},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1581084039-social-ai-in-apps.jpeg","2020-02-07T01:00:00.000+01:00",[194,200],{"name":195,"image":196},"Karlijn",{"url":197,"alt":134,"width":198,"height":199},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534636-placeholder.jpg",1235,1646,{"name":201,"image":202},"Victor",{"url":203,"alt":134,"width":204,"height":205},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683534853-victor.jpg",2170,2893,{"slug":207,"social":208,"title":209,"date":213,"authors":214},"hello-delft",{"title":209,"description":210,"image":211},"Hello Delft!","Our new office is at the Dutch epicentre of technology: Delft.\nOur new address: Koornmarkt 22, Delft. See you there?",{"url":212},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1580401526-delft-illustration-yellow-background.jpg","2020-01-31T01:00:00.000+01:00",[215],{"name":216,"image":217},"Nena",{"url":218,"alt":134,"width":219,"height":220},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535373-nena.jpg",2174,2898,{"slug":222,"social":223,"title":224,"date":228,"authors":229},"the-state-of-installability",{"title":224,"description":225,"image":226},"The state of installability","How native is the web today?",{"url":227},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1579268866-imageplaystore.png","2020-01-20T01:00:00.000+01:00",[230],{"name":231,"image":232},"Declan",{"url":197,"alt":134,"width":198,"height":199},{"slug":234,"social":235,"title":236,"date":240,"authors":241},"navigating-the-web-with-a-gamepad",{"title":236,"description":237,"image":238},"Navigating the web with a gamepad","We typically use a mouse, a keyboard or touch to navigate the web. What if you could use your gamepad?",{"url":239},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1578650374-gamepad-api-button-layout.svg","2020-01-09T01:00:00.000+01:00",[242],{"name":243,"image":244},"Mark",{"url":197,"alt":134,"width":198,"height":199},{"slug":246,"social":247,"title":248,"date":252,"authors":253},"10x-faster-nuxt-builds-on-netlify",{"title":248,"description":249,"image":250},"10x Faster Nuxt builds on Netlify","How can we create faster Nuxt builds on Netlify without affecting UX or site performance? ",{"url":251},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1568908694-nuxt-generate-fast.png","2019-09-30T02:00:00.000+02:00",[254],{"name":154,"image":255},{"url":156,"alt":134,"width":157,"height":158},{"slug":257,"social":258,"title":259,"date":263,"authors":264},"testing-accessibility-on-windows-with-virtualbox",{"title":259,"description":260,"image":261},"Testing Accessibility on Windows with VirtualBox","Accessibility testing when working on a Mac is easy. But how do you test accessibility on Windows? Use my Accessibility DIY Kit!",{"url":262},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1568817035-accessibility-diy-kit-social.jpg","2019-09-18T02:00:00.000+02:00",[265],{"name":266,"image":267},"Bas",{"url":197,"alt":134,"width":198,"height":199},{"slug":269,"social":270,"title":271,"date":275,"authors":276},"scheduling-netlify-deploys-with-github-actions",{"title":271,"description":272,"image":273},"Scheduling Netlify deploys with GitHub Actions","Static websites don’t update by themselves. We can now run a cron job in the new GitHub actions to trigger a Netlify deploy hook.",{"url":274},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1568030328-netlify-deploy-log-with-nightly-builds.jpg","2019-09-09T02:00:00.000+02:00",[277],{"name":278,"image":279},"Thadee",{"url":197,"alt":134,"width":198,"height":199},{"slug":281,"social":282,"title":283,"date":287,"authors":288},"abort-failing-nuxt-builds-on-netlify",{"title":283,"description":284,"image":285},"Abort failing Nuxt builds on Netlify","How to use `nuxt generate --fail-on-error` to prevent broken Nuxt builds from deploying on Netlify.",{"url":286},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1566230449-netlify-nuxt-generate-abort-on-error.jpg","2019-08-20T02:00:00.000+02:00",[289],{"name":154,"image":290},{"url":156,"alt":134,"width":157,"height":158},{"slug":292,"social":293,"title":294,"date":296,"authors":297},"future-proof-front-end-components",{"title":294,"description":295,"image":134},"Future-proof Front-end Components","Hidde de Vries and Peter Goes show how to tame JavaScript frameworks to improve user experience and achieve interoperability through Web Components 🚀","2019-03-27T01:00:00.000+01:00",[298,300],{"name":154,"image":299},{"url":156,"alt":134,"width":157,"height":158},{"name":195,"image":301},{"url":197,"alt":134,"width":198,"height":199},{"slug":303,"social":304,"title":305,"date":309,"authors":310},"lights-on-or-off",{"title":305,"description":306,"image":307},"Lights on or off?","Theming experiment with CSS Dark Mode, Geolocation and the Ambient Light Sensor API. And the winner is ...",{"url":308},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1552894562-quantum-inspire-dark-mode.jpg","2019-03-18T01:00:00.000+01:00",[311,317],{"name":312,"image":313},"Vincent",{"url":314,"alt":134,"width":315,"height":316},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535345-vincent.jpg",2252,3003,{"name":180,"image":318},{"url":182,"alt":134,"width":183,"height":184},{"slug":320,"social":321,"title":322,"date":324,"authors":325},"bluetooth-anywhere",{"title":322,"description":323,"image":134},"Bluetooth Anywhere","Experimenting with Bluetooth in JavaScript apps on the web, in hybrid apps and React Native","2019-02-08T01:00:00.000+01:00",[326,332],{"name":327,"image":328},"Peter",{"url":329,"alt":134,"width":330,"height":331},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1744374527-peter-edit.jpg",1381,1839,{"name":333,"image":334},"Anand",{"url":197,"alt":134,"width":198,"height":199},{"slug":336,"social":337,"title":338,"date":342,"authors":343},"dropbox-paper-as-a-headless-cms",{"title":338,"description":339,"image":340},"Dropbox Paper as a headless CMS","We turned Dropbox Paper into a headless CMS and use it to publish our content elsewhere.",{"url":341},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1548357635-imagepreview-1.png","2019-01-25T01:00:00.000+01:00",[344],{"name":154,"image":345},{"url":156,"alt":134,"width":157,"height":158},{"slug":347,"social":348,"title":351,"date":352,"authors":353},"javascript-frameworks-meet-web-components",{"title":349,"description":350,"image":134},"JavaScript frameworks, meet Web Components  | De Voorhoede","We did an experiment: create and consume a Web Component using a selection of JavaScript frameworks. In this post we'll share our experience and our verdict.","JavaScript frameworks, meet Web Components","2018-12-17T01:00:00.000+01:00",[354,356],{"name":312,"image":355},{"url":314,"alt":134,"width":315,"height":316},{"name":327,"image":357},{"url":329,"alt":134,"width":330,"height":331},{"slug":359,"social":360,"title":365,"date":366,"authors":367},"performance-hacking-with-amp",{"title":361,"description":362,"image":363},"Performance hacking with AMP: do or don’t? | De Voorhoede","AMP is an open source framework developed by Google, which promises a smooth experience by loading web pages nearly instantaneous for users.",{"url":364},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1537955645-1533802909-amp.jpg","Performance hacking with AMP: do or don’t?","2018-08-09T02:00:00.000+02:00",[368],{"name":369,"image":370},"Jesse",{"url":197,"alt":134,"width":198,"height":199},{"slug":372,"social":373,"title":378,"date":379,"authors":380},"peer-to-peer-apis",{"title":374,"description":375,"image":376},"Peer to peer APIs | De Voorhoede","Imagine an API that you don’t need an internet connection for & that can be duplicated, modified and improved on by anyone. Say hello to peer-to-peer APIs!",{"url":377},"https:\u002F\u002Fwww.datocms-assets.com\u002F2850\u002F1522330715-p2papi-1.png","Peer-to-Peer APIs","2018-04-20T02:00:00.000+02:00",[381],{"name":382,"image":383},"Marko",{"url":197,"alt":134,"width":198,"height":199},{"slug":385,"social":386,"title":391,"date":392,"authors":393},"13-command-line-tools-to-up-your-front-end-game",{"title":387,"description":388,"image":389},"13 command line tools to up your front-end game","Use these tools to become faster & more effective as a front-end developer! Also, it makes you look like you live inside a movie",{"url":390},"https:\u002F\u002Fwww.datocms-assets.com\u002F2850\u002F1523365390-crt.jpg","13 command line tools to up your Front-end Game","2018-04-10T02:00:00.000+02:00",[394],{"name":333,"image":395},{"url":197,"alt":134,"width":198,"height":199},{"slug":397,"social":398,"title":403,"date":404,"authors":405},"real-time-communication-with-server-sent-events",{"title":399,"description":400,"image":401},"Real-time communication Server Sent Events | De Voorhoede","Creating a streaming connection for text data, from the server to the client.",{"url":402},"https:\u002F\u002Fwww.datocms-assets.com\u002F2850\u002F1516801900-ap_100806131932-e.jpeg","Real-time communication with Server Sent Events","2018-01-24T01:00:00.000+01:00",[406,408],{"name":369,"image":407},{"url":197,"alt":134,"width":198,"height":199},{"name":409,"image":410},"Anne",{"url":411,"alt":134,"width":412,"height":413},"https:\u002F\u002Fwww.datocms-assets.com\u002F6524\u002F1683535114-anne.jpg",1823,2431,{"slug":415,"social":416,"title":421,"date":422,"authors":423},"every-project-a-progressive-web-app",{"title":417,"description":418,"image":419},"Every project a Progressive Web App | De Voorhoede","Our goal at the start over 2017: Turn every project we touch into a PWA. A year later this is the result...",{"url":420},"https:\u002F\u002Fwww.datocms-assets.com\u002F2850\u002F1514918712-trouw-as-pwa-android-ios-app.jpg","Every project a Progressive Web App","2018-01-08T01:00:00.000+01:00",[424],{"name":154,"image":425},{"url":156,"alt":134,"width":157,"height":158},{"slug":427,"social":428,"title":431,"date":432,"authors":433},"making-our-site-more-app-y",{"title":429,"description":430,"image":134},"Making our site more app-y | De Voorhoede","PWA Patterns on voorhoede.nl","Making our site more app-y","2017-12-04T01:00:00.000+01:00",[434],{"name":154,"image":435},{"url":156,"alt":134,"width":157,"height":158},{"count":437},96,[439,443,447,451,455],{"id":440,"title":441,"slug":442},"WTPJX79URE-O5lpWLJeEHg","Headless CMS","headless-cms",{"id":444,"title":445,"slug":446},"JBiZUe8mQVujxlNVR5gx8Q","Design Systems","design-systems",{"id":448,"title":449,"slug":450},"HgWm8aCCRMWWS0eqggo5xg","Accessibility ","accessibility",{"id":452,"title":453,"slug":454},"NJN9K2rdSY2pn9MvchHLtw","Strategy","strategy",{"id":456,"title":457,"slug":458},"b-HOCOQTRJKMsff0UxhDcg","Web performance ","web-performance",1776256139883]