[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-options":3,"work-case-tv-dashboard":41},{"data":4,"source":40},{"absolitOptions":5},{"absolitOptionsFields":6},{"tagline":7,"shortDescription":8,"faqIntro":9,"email":10,"phone":11,"seoTitleSuffix":12,"seoDefaultDescription":13,"seoDefaultImage":14,"seoPages":15},"Digitaal vakwerk. Vlakbij.","Websites en maatwerk software voor ondernemers die kwaliteit verwachten. Persoonlijk contact, snel geschakeld.","Hier vind je antwoorden op alle vragen over mijn werkwijze, diensten en tarieven.","info@absolit.nl","0644694639"," - Absolit","Websites en maatwerk software voor ondernemers in Nederland. Persoonlijk contact, snel geschakeld.",null,[16,20,24,28,32,36],{"route":17,"title":18,"description":13,"noindex":19,"image":14},"\u002F","Absolit - Webontwikkeling voor ondernemers",false,{"route":21,"title":22,"description":23,"noindex":19,"image":14},"\u002Fwork","Mijn Werk","Bekijk mijn werk: recente webdevelopment projecten voor ondernemers in Nederland.",{"route":25,"title":26,"description":27,"noindex":19,"image":14},"\u002Ffaq","Veelgestelde Vragen","Antwoorden op veelgestelde vragen over webdevelopment en diensten.",{"route":29,"title":30,"description":31,"noindex":19,"image":14},"\u002Ftarieven","Tarieven","Vaste uurtarieven voor webdevelopment: website, webshop, maatwerk software en onderhoud.",{"route":33,"title":34,"description":35,"noindex":19,"image":14},"\u002Fprivacy","Privacyverklaring","Lees hoe Absolit omgaat met jouw persoonlijke gegevens en privacy.",{"route":37,"title":38,"description":39,"noindex":19,"image":14},"\u002Fvoorwaarden","Algemene Voorwaarden","De algemene voorwaarden voor samenwerking met Absolit. Lees hier alles over opdrachten, prijzen en aansprakelijkheid.","live",{"databaseId":42,"title":43,"slug":44,"date":45,"content":46,"seo":47,"projectFields":55,"featuredImage":128,"siteVisibility":137},328,"TV Dashboard","tv-dashboard","2026-08-10T13:44:23","\u003Cp>Aan de muur van een gedeelde kantoorruimte hangt een scherm. Daarop staat wat er die dag toe doet: de tijd, wie er jarig is, welke pipelines er draaien, hoe de sprint ervoor staat, wat er in de agenda staat en welk nummer er speelt.\u003C\u002Fp>\n\u003Cp>Elke afnemer draait een eigen installatie op een eigen subdomein, met een eigen database en eigen instellingen. Het heeft eerst bij Specialist in Websites gedraaid en draait nu bij Cyso. Doorverkopen is het idee, maar zover is het nog niet.\u003C\u002Fp>\n\u003Ch2>Waarom\u003C\u002Fh2>\n\u003Cp>Om als bedrijfzijnde intern te pronken met belangrijke informatie, progressies van projecten of te weten wie er gefeliciteerd moet worden met een verjaardag. Met het tv-dashboard toon je alles tegelijkertijd instelbaar door één beheerder.\u003C\u002Fp>\n\u003Ch2>Hoe het werkt\u003C\u002Fh2>\n\u003Cp>Laravel met Inertia en Vue 3 en een beheerpaneel op Nuxt UI. Het scherm zelf en het beheer zijn twee losse oppervlakken met verschillende regels: het scherm mag mooi zijn, het beheerpaneel moet vooral duidelijk zijn.\u003C\u002Fp>\n\u003Cp>Wat erop komt is opgebouwd uit modules, inmiddels drieëntwintig. Een klok, verjaardagen, een agenda, een poll, vrije tekst, medewerker van de maand, pipelines en release-tags uit GitLab, sprint- en roadmapoverzichten en tijdregistratie uit YouTrack, uren- en omzetcijfers uit Simplicate, wat er op de Sonos speelt en een statusmonitor. En een module die de standen uit Old School RuneScape haalt, want een scherm dat de hele dag hangt mag ook iets tonen waar niemand om gevraagd heeft. Elke module haalt zijn eigen gegevens op en heeft zijn eigen instellingen.\u003C\u002Fp>\n\u003Cp>De code is zo opgezet dat het kan worden afgenomen door elke partij. Het doel is dan ook om de dashboard-app te verkopen aan bedrijven met een lege TV.\u003C\u002Fp>\n\u003Ch2>Kernpunten waar ik trots op ben\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multi-tenant opzet: eigen installatie, database en instellingen per afnemer\u003C\u002Fstrong>, met een wizard die een nieuwe installatie door de eerste configuratie loodst.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Realtime updates via Reverb\u003C\u002Fstrong>, met kanalen per module. Sommige events via back-end polling, sommige via webhooks.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Compatibiliteit met oude tv-browsers.\u003C\u002Fstrong> Het scherm hangt aan een televisie en die browsers lopen soms jaren achter.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>23+ modules met hun eigen instellingen.\u003C\u002Fstrong> Elke module haalt zijn eigen gegevens op, heeft zijn eigen configuratie en zijn eigen lege staat.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Geen hardgecodeerde waarden.\u003C\u002Fstrong> Elk endpoint, elk project en elke credential is een instelling per installatie, en credentials worden versleuteld opgeslagen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Wat er nog niet in zit\u003C\u002Fh2>\n\u003Cp>De publieke verkoopsite bestaat nog niet; het kale domein staat er wel voor gereserveerd. Verder staan er nog genoeg ideeën op de planning; dit project blijft voortdurend in ontwikkeling.\u003C\u002Fp>\n\u003Ch2>Wat het opleverde\u003C\u002Fh2>\n\u003Cp>Veel ervaring met realtime data: eerst met Pusher en later met Reverb en met het inrichten van kanalen en het doorsturen van wijzigingen daarover.\u003C\u002Fp>\n\u003Cp>Verder is dit het project waar ik het langst aan heb gewerkt wat in gebruik is. Bij een hobbyproject bouw je voor jezelf en weet je waar de scherpe randjes zitten. Hier moest ik ervan uitgaan dat iemand anders het instelt, zonder mij, op apparatuur die ik niet ken.\u003C\u002Fp>\n",{"title":48,"metaDesc":49,"canonical":49,"opengraphTitle":48,"opengraphDescription":50,"metaRobotsNoindex":51,"metaRobotsNofollow":52,"opengraphImage":53},"TV Dashboard - WP - Admin","","Aan de muur van een gedeelde kantoorruimte hangt een scherm. Daarop staat wat er die dag toe doet: de tijd, wie er jarig is, welke pipelines er draaien, hoe de sprint ervoor staat, wat er in de agenda staat en welk nummer er speelt. Elke afnemer draait een eigen installatie op een eigen subdomein, met … Continued","noindex","follow",{"sourceUrl":54,"altText":49},"https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002FGemini_Generated_Image_qw0awaqw0awaqw0a.png",{"client":14,"startDate":56,"duration":57,"projectType":58,"description":60,"liveWebsite":14,"cvDescription":61,"headerImage":62,"skills":72,"gallery":92},"2021-07-23T00:00:00+00:00","Doorlopend",[59],"prive","Een kioskdashboard voor aan de kantoormuur, dat elke klant op zijn eigen installatie draait.","\u003Cul>\n\u003Cli>Dynamisch dashboard gebouwd voor intern gebruik.\u003C\u002Fli>\n\u003Cli>Oorspronkelijk gebouwd met Bedrock\u002FSage, later ook met Laravel (8) en Vue 2.\u003C\u002Fli>\n\u003Cli>Gebruikt verschillende API&#8217;s: Sonos (API + WebSocket), weer &amp; klok &amp; interne GIF-API, Simplicate (CRM), Twitter feed, game hiscores, en Mapbox voor een clusterweergave van klanten.\u003C\u002Fli>\n\u003Cli>Realtime pusher pop-ups bij een klant-akkoord.\u003C\u002Fli>\n\u003Cli>Dynamisch opgezet, waardoor het ook voor andere partijen kan werken.\u003C\u002Fli>\n\u003C\u002Ful>\n",{"node":63},{"mediaItemUrl":64,"altText":65,"caption":66,"thumbnailUrl":67,"previewUrl":68,"mediaDetails":69},"https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-desktop.webp","Het kioskscherm van het TV Dashboard, zoals het aan de kantoormuur hangt.","\u003Cp>Het kioskscherm van het TV Dashboard, zoals het aan de kantoormuur hangt. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-desktop-768x480.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-desktop-1024x640.webp",{"width":70,"height":71},1600,1000,{"nodes":73},[74,77,80,83,86,89],{"databaseId":75,"title":76},291,"Laravel",{"databaseId":78,"title":79},406,"Inertia",{"databaseId":81,"title":82},392,"Vue 3",{"databaseId":84,"title":85},309,"PHP",{"databaseId":87,"title":88},390,"MySQL",{"databaseId":90,"title":91},391,"Tailwind CSS",{"nodes":93},[94,103,111,119],{"id":95,"altText":96,"caption":97,"thumbnailUrl":98,"previewUrl":99,"mediaItemUrl":100,"mediaDetails":101},"cG9zdDo1MTA=","De beheeromgeving van het TV Dashboard, met de systeemstatus en de laatste pipelines.","\u003Cp>De beheeromgeving van het TV Dashboard, met de systeemstatus en de laatste pipelines. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbeheer-desktop-768x773.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbeheer-desktop-1017x1024.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbeheer-desktop.webp",{"width":70,"height":102},1611,{"id":104,"altText":105,"caption":106,"thumbnailUrl":107,"previewUrl":108,"mediaItemUrl":109,"mediaDetails":110},"cG9zdDo1MTI=","Hetzelfde kioskscherm in donkere modus, die het scherm van de TV zelf overneemt.","\u003Cp>Hetzelfde kioskscherm in donkere modus, die het scherm van de TV zelf overneemt. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-donker-desktop-768x480.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-donker-desktop-1024x640.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fkiosk-donker-desktop.webp",{"width":70,"height":71},{"id":112,"altText":113,"caption":114,"thumbnailUrl":115,"previewUrl":116,"mediaItemUrl":117,"mediaDetails":118},"cG9zdDo1MTM=","De lay-out-editor van het TV Dashboard, waar de blokken over het raster worden verdeeld.","\u003Cp>De lay-out-editor van het TV Dashboard, waar de blokken over het raster worden verdeeld. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Flay-out-desktop-768x480.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Flay-out-desktop-1024x640.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Flay-out-desktop.webp",{"width":70,"height":71},{"id":120,"altText":121,"caption":122,"thumbnailUrl":123,"previewUrl":124,"mediaItemUrl":125,"mediaDetails":126},"cG9zdDo1MTQ=","Het modulescherm van het TV Dashboard, waar per installatie wordt bepaald welke blokken meedoen.","\u003Cp>Het modulescherm van het TV Dashboard, waar per installatie wordt bepaald welke blokken meedoen. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fmodules-desktop-768x832.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fmodules-desktop-945x1024.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fmodules-desktop.webp",{"width":70,"height":127},1733,{"node":129},{"sourceUrl":130,"altText":131,"caption":132,"thumbnailUrl":133,"previewUrl":134,"mediaItemUrl":130,"mediaDetails":135},"https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbanner-tv-dashboard.webp","Het logo van het TV Dashboard op een vlak in de merkkleur.","\u003Cp>Het logo van het TV Dashboard op een vlak in de merkkleur. Onderdeel van het project TV Dashboard.\u003C\u002Fp>\n","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbanner-tv-dashboard-768x432.webp","https:\u002F\u002Fadmin.marthijnbeilschmidt.nl\u002Fapp\u002Fuploads\u002F2026\u002F08\u002Fbanner-tv-dashboard-1024x576.webp",{"width":70,"height":136},900,{"site":138,"searchVisible":140},[139],"both",true]