[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"projects":3},[4,17,27],{"slug":5,"name":6,"tagline":7,"summary":8,"stack":9,"href":15,"hasCaseStudy":16},"computravel","Computravel","South African travel platform, rebuilt end to end.","A Nuxt + Directus catalogue for holidays and day tours, with search that lives in the URL, editor-authored campaigns, and a deployment pipeline that migrates, rebuilds, and smoke-tests on a self-hosted runner.",[10,11,12,13,14],"Nuxt 3","Directus","Postgres","Docker","GitHub Actions","https:\u002F\u002Fcomputravel.co.za",false,{"slug":18,"name":19,"tagline":20,"summary":21,"stack":22,"href":26,"hasCaseStudy":16},"yearcrest","Yearcrest","Personal yearbooks as printed artefacts.","A design-led studio for assembling the year into a framed print. Directus-backed content, a headless Chromium export service, and a careful contract between screen preview and paper.",[10,11,23,24,25],"Playwright","Nginx","GHCR","https:\u002F\u002Fyearcrest.com",{"slug":28,"name":28,"tagline":29,"summary":30,"stack":31,"href":32,"hasCaseStudy":16},"publicdraw","A service for performing transparently fair random draws. ","When opportunities or resources need to be distributed fairly amongst a group of people, this service solves that problem.\nExamples are music or sports event ticket allocation, or housing allocation in a suburban area.\nA user may sign up and create a draw. Other users then need to enter the draw before it takes place , as the 'operator' user should not be allowed to change the draw time after creating it. \n",[],"https:\u002F\u002Fpublicdraw.truelathe.com"]