[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fSTpS7D5WfzPDthp9BAsFESLLqpSbuyx3j6W30LSUDCU":3},{"_id":4,"slug":5,"__v":7,"client":8,"content":9,"cover":13,"createdAt":14,"date":15,"excerpt":16,"featured":20,"order":21,"tag":22,"title":26,"updatedAt":27,"url":28,"skills":29,"technologies":105},"6abbb7c110e450ed5689c5a8",{"fr":6,"nl":6,"en":6},"logobox",0,"LogoBox",{"fr":10,"nl":11,"en":12},"\u003Ch2>Le contexte\u003C\u002Fh2>\u003Cp>En logopédie, beaucoup de praticiens adaptent des jeux de société pour travailler le langage oral et écrit, les fonctions cognitives ou le raisonnement logico-mathématique. Ces adaptations restaient éparpillées dans des classeurs et des groupes privés. LogoBox veut les réunir sur une plateforme conçue par et pour les logopèdes, où chacun peut publier, retrouver et réutiliser des fiches.\u003C\u002Fp>\u003Ch2>Ce que j'ai réalisé\u003C\u002Fh2>\u003Cp>Une application web complète, de la base de données à l'interface :\u003C\u002Fp>\u003Cul>\u003Cli>la recherche de fiches par compétence, âge, nombre de joueurs et durée ;\u003C\u002Fli>\u003Cli>un éditeur de fiche structuré : jeu utilisé, prérequis, compétences visées, étapes et sous-étapes réorganisables par glisser-déposer, variantes ;\u003C\u002Fli>\u003Cli>l'export PDF de chaque fiche, fidèle au modèle papier utilisé par la cliente ;\u003C\u002Fli>\u003Cli>un espace personnel : tableau de bord et statistiques, brouillons, favoris, notifications ;\u003C\u002Fli>\u003Cli>des avis, des commentaires et des profils publics.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>La validation par les pairs\u003C\u002Fh2>\u003Cp>Pour garantir la qualité sans modération centralisée, chaque fiche soumise est confiée à trois logopèdes tirés au sort parmi les membres actifs. Deux avis favorables la publient, deux avis défavorables la renvoient à son auteur avec leurs remarques, et les demandes restées sans réponse expirent automatiquement après cinq jours. Un filtre de modération adapté au français complète le dispositif.\u003C\u002Fp>\u003Ch2>Prête pour la production\u003C\u002Fh2>\u003Cp>Comptes vérifiés par e-mail, limitation des requêtes, suivi des erreurs avec Sentry, et une surveillance quotidienne des quotas (base de données, e-mails) qui prévient avant qu'une limite ne soit atteinte.\u003C\u002Fp>","\u003Ch2>De context\u003C\u002Fh2>\u003Cp>In de logopedie passen veel therapeuten gezelschapsspelen aan om te werken aan mondelinge en schriftelijke taal, cognitieve functies of logisch-wiskundig redeneren. Die aanpassingen zaten verspreid in mappen en besloten groepen. LogoBox brengt ze samen op een platform door en voor logopedisten, waar iedereen fiches kan publiceren, terugvinden en hergebruiken.\u003C\u002Fp>\u003Ch2>Wat ik heb gerealiseerd\u003C\u002Fh2>\u003Cp>Een volledige webapplicatie, van database tot interface:\u003C\u002Fp>\u003Cul>\u003Cli>fiches zoeken op vaardigheid, leeftijd, aantal spelers en duur;\u003C\u002Fli>\u003Cli>een gestructureerde fiche-editor: gebruikt spel, voorkennis, beoogde vaardigheden, stappen en substappen die je met drag-and-drop herschikt, varianten;\u003C\u002Fli>\u003Cli>PDF-export van elke fiche, trouw aan het papieren sjabloon van de klant;\u003C\u002Fli>\u003Cli>een persoonlijke ruimte: dashboard en statistieken, concepten, favorieten, meldingen;\u003C\u002Fli>\u003Cli>beoordelingen, reacties en openbare profielen.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Validatie door collega's\u003C\u002Fh2>\u003Cp>Om de kwaliteit te bewaken zonder centrale moderatie, wordt elke ingediende fiche voorgelegd aan drie willekeurig gekozen actieve logopedisten. Twee positieve adviezen publiceren de fiche, twee negatieve sturen ze met opmerkingen terug naar de auteur, en onbeantwoorde aanvragen vervallen automatisch na vijf dagen. Een moderatiefilter op maat van het Frans vervolledigt het geheel.\u003C\u002Fp>\u003Ch2>Klaar voor productie\u003C\u002Fh2>\u003Cp>Accounts geverifieerd via e-mail, rate limiting, foutopvolging met Sentry en een dagelijkse controle van de quota (database, e-mails) die waarschuwt voordat een limiet wordt bereikt.\u003C\u002Fp>","\u003Ch2>The context\u003C\u002Fh2>\u003Cp>Many speech therapists adapt board games to work on spoken and written language, cognitive functions or logical-mathematical reasoning. Those adaptations were scattered across binders and private groups. LogoBox brings them together on a platform built by and for speech therapists, where anyone can publish, find and reuse game sheets.\u003C\u002Fp>\u003Ch2>What I built\u003C\u002Fh2>\u003Cp>A complete web application, from the database to the interface:\u003C\u002Fp>\u003Cul>\u003Cli>search by skill, age, number of players and duration;\u003C\u002Fli>\u003Cli>a structured sheet editor: game used, prerequisites, target skills, drag-and-drop steps and sub-steps, variations;\u003C\u002Fli>\u003Cli>PDF export of every sheet, matching the paper template the client already used;\u003C\u002Fli>\u003Cli>a personal area: dashboard and statistics, drafts, favourites, notifications;\u003C\u002Fli>\u003Cli>reviews, comments and public profiles.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Peer review\u003C\u002Fh2>\u003Cp>To ensure quality without central moderation, each submitted sheet goes to three randomly selected active speech therapists. Two approvals publish it, two rejections send it back to its author with their comments, and unanswered requests expire automatically after five days. A moderation filter tailored to French completes the setup.\u003C\u002Fp>\u003Ch2>Production-ready\u003C\u002Fh2>\u003Cp>Email-verified accounts, rate limiting, error tracking with Sentry, and a daily quota check (database, emails) that raises an alert before any limit is reached.\u003C\u002Fp>","\u002Fimages\u002Fprojects\u002Flogobox.jpg","2026-09-29T13:06:09.836Z","2026-08-01T00:00:00.000Z",{"fr":17,"nl":18,"en":19},"Une plateforme collaborative où les logopèdes partagent des fiches de jeux thérapeutiques, validées par leurs pairs avant publication.","Een samenwerkingsplatform waar logopedisten therapeutische spelfiches delen, die vóór publicatie door collega's worden gevalideerd.","A collaborative platform where speech therapists share therapeutic game sheets, peer-reviewed before they are published.",true,-4,{"fr":23,"nl":24,"en":25},"Plateforme web","Webplatform","Web platform",{"fr":8,"nl":8,"en":8},"2026-09-30T10:04:54.020Z","https:\u002F\u002Fwww.logobox.be",[30,47,63,77,91],{"_id":31,"name":32,"value":36,"icon":37,"order":7,"__v":7,"createdAt":38,"updatedAt":38,"iconDef":39},"6abcd9c36ddb26fc8d5fb73d",{"fr":33,"nl":34,"en":35},"Développement front-end","Front-endontwikkeling","Front-end development",90,"code","2026-09-30T09:43:31.140Z",{"prefix":40,"iconName":37,"icon":41},"fasl",[42,43,44,45,46],576,512,[],"f121","M383.3 21.1l5.1-15.2-30.4-10.1-5.1 15.2-160 480-5.1 15.2 30.4 10.1 5.1-15.2 160-480zM150.8 144l-22.6-22.6-11.3 11.3-112 112-11.3 11.3 11.3 11.3 112 112 11.3 11.3 22.6-22.6-11.3-11.3-100.7-100.7 100.7-100.7 11.3-11.3zm274.7 0l11.3 11.3 100.7 100.7-100.7 100.7-11.3 11.3 22.6 22.6 11.3-11.3 112-112 11.3-11.3-11.3-11.3-112-112-11.3-11.3-22.6 22.6z",{"_id":48,"name":49,"value":53,"icon":54,"order":55,"__v":7,"createdAt":56,"updatedAt":56,"iconDef":57},"6abcd9c36ddb26fc8d5fb73e",{"fr":50,"nl":51,"en":52},"Back-end & API","Back-end & API's","Back-end & APIs",85,"server",1,"2026-09-30T09:43:31.141Z",{"prefix":40,"iconName":54,"icon":58},[59,43,60,61,62],448,[],"f233","M32 64l0 128 384 0 0-128-384 0zM0 32l448 0 0 192-448 0 0-192zm264 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM32 320l0 128 384 0 0-128-384 0zM0 288l448 0 0 192-448 0 0-192zm240 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z",{"_id":64,"name":65,"value":69,"icon":70,"order":71,"__v":7,"createdAt":56,"updatedAt":56,"iconDef":72},"6abcd9c36ddb26fc8d5fb73f",{"fr":66,"nl":67,"en":68},"Bases de données & modélisation","Databases & datamodellering","Databases & data modelling",80,"database",2,{"prefix":40,"iconName":70,"icon":73},[59,43,74,75,76],[],"f1c0","M32 203.6l88.1 50.3 3.7 2.1 200.5 0 3.7-2.1 88.1-50.3 0 91.1-100.2 57.3-183.5 0-100.2-57.3 0-91.1zm0-36.9l0-69 105.2-65.7 173.6 0 105.2 65.7 0 69-100.2 57.3-183.5 0-100.2-57.3zm0 247.6l0-82.7 88.1 50.3 3.7 2.1 200.5 0 3.7-2.1 88.1-50.3 0 82.7-105.2 65.7-173.6 0-105.2-65.7zM128 0l-128 80 0 352 128 80 192 0 128-80 0-352-128-80-192 0z",{"_id":78,"name":79,"value":36,"icon":83,"order":84,"__v":7,"createdAt":56,"updatedAt":56,"iconDef":85},"6abcd9c36ddb26fc8d5fb740",{"fr":80,"nl":81,"en":82},"Backoffice, CMS sur mesure & WordPress","Backoffice, CMS op maat & WordPress","Custom back office, CMS & WordPress","sliders",3,{"prefix":40,"iconName":83,"icon":86},[43,43,87,89,90],[88],"sliders-h","f1de","M0 400l80 0 0-64 160 0 0 64 272 0 0 32-272 0 0 64-160 0 0-64-80 0 0-32zm208 32l0-64-96 0 0 96 96 0 0-32zM0 240l272 0 0-64 160 0 0 64 80 0 0 32-80 0 0 64-160 0 0-64-272 0 0-32zM112 112l-112 0 0-32 112 0 0-64 160 0 0 64 240 0 0 32-240 0 0 64-160 0 0-64zm32 0l0 32 96 0 0-96-96 0 0 64zM400 240l0-32-96 0 0 96 96 0 0-64z",{"_id":92,"name":93,"value":97,"icon":98,"order":99,"__v":7,"createdAt":56,"updatedAt":56,"iconDef":100},"6abcd9c36ddb26fc8d5fb747",{"fr":94,"nl":95,"en":96},"Mise en production, CI\u002FCD & monitoring","Livegang, CI\u002FCD & monitoring","Deployment, CI\u002FCD & monitoring",75,"rocket",10,{"prefix":40,"iconName":98,"icon":101},[42,43,102,103,104],[],"f135","M501.6 42.4l2.1 10.5c8.9 44.3 14.2 111.2-19 175.5-19.3 37.4-51.1 72.8-100.7 102.1L384 448c-101.3 60.8-154.7 92.8-160 96L224 374.6 169.4 320 0 320c3.2-5.3 35.2-58.7 96-160l117.5 0c29.3-49.6 64.7-81.4 102.1-100.7 64.3-33.2 131.2-27.8 175.5-19l10.5 2.1zM352 347.3c-27.4 12.9-59.2 24.1-96 33.3l0 106.9 96-57.6 0-82.6zM163.4 288c9.2-36.8 20.5-68.6 33.3-96l-82.6 0-57.6 96 106.9 0zm30.2 11L245 350.4c124.4-30.5 183.9-83.7 211.3-136.7 26-50.4 24.7-103.6 18-143.9-40.3-6.8-93.5-8-143.9 18-53.1 27.4-106.3 86.8-136.7 211.3zM344 176a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm24 56a56 56 0 1 1 0-112 56 56 0 1 1 0 112z",[106,119,132,145,157,170,179,194,205],{"_id":107,"name":108,"__v":7,"createdAt":109,"icon":110,"order":55,"updatedAt":111,"iconDef":112},"6abbd10010e450ed5689c5ae","TypeScript","2026-09-29T14:53:52.743Z","fab:typescript","2026-09-30T10:04:53.996Z",{"prefix":113,"iconName":114,"icon":115},"fab","typescript",[59,43,116,117,118],[],"e840","M16.8 32l414.4 0c9.3 0 16.8 7.5 16.8 16.8l0 414.4c0 9.3-7.5 16.8-16.8 16.8L16.8 480C7.5 480 0 472.5 0 463.2L0 48.8C0 39.5 7.5 32 16.8 32zM249 270.3l0-36.7-159.4 0 0 36.7 56.9 0 0 163.6 45.3 0 0-163.6 57.2 0zm18.1 159.3c7.3 3.7 15.9 6.5 25.9 8.4s20.5 2.8 31.5 2.8c10.8 0 21-1 30.7-3.1s18.2-5.4 25.5-10.1 13.1-10.9 17.4-18.4 6.4-17 6.4-28.2c0-8.1-1.2-15.2-3.7-21.3s-5.9-11.5-10.5-16.3-10.1-9-16.5-12.8-13.7-7.3-21.7-10.7c-5.9-2.4-11.2-4.8-15.9-7.1s-8.7-4.6-11.9-7-5.8-4.9-7.6-7.5-2.7-5.7-2.7-9c0-3.1 .8-5.8 2.4-8.3s3.8-4.6 6.7-6.4 6.5-3.1 10.7-4.1 8.9-1.5 14.1-1.5c3.7 0 7.7 .3 11.9 .8s8.4 1.4 12.6 2.6 8.3 2.6 12.3 4.4 7.7 3.8 11 6.1l0-41.8c-6.8-2.6-14.3-4.5-22.4-5.8s-17.4-1.9-27.9-1.9c-10.7 0-20.8 1.1-30.4 3.4s-18 5.8-25.2 10.7-13 11-17.2 18.5-6.3 16.5-6.3 26.9c0 13.3 3.9 24.7 11.6 34.1s19.5 17.4 35.2 23.9c6.2 2.5 11.9 5 17.3 7.4s10 4.9 13.8 7.5 7 5.4 9.2 8.5 3.4 6.6 3.4 10.5c0 2.9-.7 5.6-2.1 8s-3.5 4.6-6.4 6.4-6.4 3.2-10.7 4.3-9.3 1.5-15 1.5c-9.7 0-19.4-1.7-28.9-5.1s-18.4-8.5-26.6-15.3l0 44.7z",{"_id":120,"name":121,"__v":7,"createdAt":122,"icon":123,"order":124,"updatedAt":125,"iconDef":126},"6abbd10010e450ed5689c5ad","Vue","2026-09-29T14:53:52.740Z","fab:vuejs",4,"2026-09-30T10:04:54.001Z",{"prefix":113,"iconName":127,"icon":128},"vuejs",[59,43,129,130,131],[],"f41f","M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z",{"_id":133,"name":134,"__v":7,"createdAt":135,"icon":136,"order":137,"updatedAt":138,"iconDef":139},"6abbd10010e450ed5689c5ac","Nuxt","2026-09-29T14:53:52.632Z","mountain",5,"2026-09-30T10:04:54.002Z",{"prefix":40,"iconName":136,"icon":140},[42,43,141,143,144],[142],127956,"f6fc","M560 480L16 480 288-16 560 480zM70 448L506 448 400.7 256 296 256c-33.9 45.2-52.5 69.9-55.6 74.1L227.5 314 177.7 251.7 70 448zM194.3 221.3l45.2 56.6 35.6-47.4 4.8-6.4 103.1 0-95.1-173.5-93.7 170.8z",{"_id":146,"name":147,"__v":7,"createdAt":148,"icon":149,"order":150,"updatedAt":151,"iconDef":152},"6abbd10010e450ed5689c5af","Tailwind CSS","2026-09-29T14:53:52.745Z","wind",11,"2026-09-30T10:04:54.006Z",{"prefix":40,"iconName":149,"icon":153},[43,43,154,155,156],[],"f72e","M288 0l0 32 80 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-368 0 0 32 368 0c44.2 0 80-35.8 80-80S412.2 0 368 0L288 0zm64 416l72 0c48.6 0 88-39.4 88-88s-39.4-88-88-88l-424 0 0 32 424 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-72 0 0 32zM112 512l64 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-176 0 0 32 176 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-80 0 0 32 16 0z",{"_id":158,"name":159,"__v":7,"createdAt":160,"icon":161,"order":162,"updatedAt":163,"iconDef":164},"6abbd10010e450ed5689c5b2","Node.js","2026-09-29T14:53:52.748Z","fab:node-js",14,"2026-09-30T10:04:54.007Z",{"prefix":113,"iconName":165,"icon":166},"node-js",[59,43,167,168,169],[],"f3d3","M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z",{"_id":171,"name":172,"__v":7,"createdAt":173,"icon":70,"order":174,"updatedAt":175,"iconDef":176},"6abbd10010e450ed5689c5b4","MongoDB","2026-09-29T14:53:52.750Z",21,"2026-09-30T10:04:54.010Z",{"prefix":40,"iconName":70,"icon":177},[59,43,178,75,76],[],{"_id":180,"name":181,"__v":7,"createdAt":182,"icon":183,"order":184,"updatedAt":185,"iconDef":186},"6abbd10010e450ed5689c5bd","Resend","2026-09-29T14:53:52.756Z","envelope",26,"2026-09-30T10:04:54.012Z",{"prefix":40,"iconName":183,"icon":187},[43,43,188,192,193],[189,190,191],128386,9993,61443,"f0e0","M16 64l-16 0 0 384 512 0 0-384-496 0zm464 56l0 15.9-224 164.3-224-164.3 0-39.9 448 0 0 24zm0 55.6l0 240.4-448 0 0-240.4 214.5 157.3 9.5 6.9 9.5-6.9 214.5-157.3z",{"_id":195,"name":196,"__v":7,"createdAt":197,"icon":198,"order":199,"updatedAt":185,"iconDef":200},"6abbd10010e450ed5689c5be","Sentry","2026-09-29T14:53:52.757Z","bug",27,{"prefix":40,"iconName":198,"icon":201},[42,43,202,203,204],[],"f188","M288 32c35.3 0 64 28.7 64 64L224 96c0-35.3 28.7-64 64-64zM192 96l0 32 192 0 0-32c0-53-43-96-96-96s-96 43-96 96zM416 352c0 65.3-48.9 119.1-112 127l0-223-32 0 0 223c-63.1-7.9-112-61.7-112-127l0-144 256 0 0 144zm32 0l0-48 128 0 0-32-128 0 0-80 89.6-67.2 12.8-9.6-19.2-25.6-12.8 9.6-102.4 76.8-256 0-102.4-76.8-12.8-9.6-19.2 25.6 12.8 9.6 89.6 67.2 0 80-128 0 0 32 128 0 0 48c0 10.2 1 20.2 2.8 29.9l-92.4 69.3-12.8 9.6 19.2 25.6 12.8-9.6 83.1-62.3C165 471.8 221.8 512 288 512s123-40.2 147.3-97.5l83.1 62.3 12.8 9.6 19.2-25.6-12.8-9.6-92.4-69.3c1.8-9.7 2.8-19.7 2.8-29.9z",{"_id":206,"name":207,"__v":7,"createdAt":197,"icon":208,"order":209,"updatedAt":210,"iconDef":211},"6abbd10010e450ed5689c5bf","Vercel","triangle",29,"2026-09-30T10:04:54.013Z",{"prefix":40,"iconName":208,"icon":212},[42,43,213,215,216],[214],9650,"f2ec","M306.2 17.3L542.4 448 560 480 16 480 33.6 448 269.8 17.3 288-16 306.2 17.3zM70 448L506 448 288 50.6 70 448z"]