[{"data":1,"prerenderedAt":93},["ShallowReactive",2],{"home-posts":3,"home-projects":4},[],[5,27,44,60,77],{"id":6,"title":7,"body":8,"description":15,"extension":16,"featured":17,"mainLink":18,"meta":19,"navigation":20,"order":21,"path":22,"repo":18,"screenshot":23,"seo":24,"stem":25,"url":18,"__hash__":26},"projects\u002Fprojects\u002Fbankbuoy.md","BankBuoy",{"type":9,"value":10,"toc":11},"minimark",[],{"title":12,"searchDepth":13,"depth":13,"links":14},"",3,[],"A self-hosted personal finance aggregator that pulls banking data into one private dashboard — Nuxt, Hono, Drizzle and PostgreSQL.","md",false,null,{},true,1,"\u002Fprojects\u002Fbankbuoy","\u002Fprojects\u002Fbankbuoy.png",{"title":7,"description":15},"projects\u002Fbankbuoy","cEvVSpdrqPJjvtsZDrLCQ9byZKOReDoKqZxAc_UpXOY",{"id":28,"title":29,"body":30,"description":34,"extension":16,"featured":17,"mainLink":35,"meta":36,"navigation":20,"order":37,"path":38,"repo":18,"screenshot":39,"seo":40,"stem":41,"url":42,"__hash__":43},"projects\u002Fprojects\u002Fbundle.md","Bundle",{"type":9,"value":31,"toc":32},[],{"title":12,"searchDepth":13,"depth":13,"links":33},[],"A browser-side constraint solver that allocates people to rooms by preference — Google OR-Tools compiled to WebAssembly, with no server in the loop.","website",{},5,"\u002Fprojects\u002Fbundle","\u002Fprojects\u002Fbundle.png",{"title":29,"description":34},"projects\u002Fbundle","https:\u002F\u002Fbundle.samstack.org","WeYdP-OkUN40k4XTTjPHlv02EGFblLflpZo75ui-e_Y",{"id":45,"title":46,"body":47,"description":51,"extension":16,"featured":20,"mainLink":35,"meta":52,"navigation":20,"order":53,"path":54,"repo":18,"screenshot":55,"seo":56,"stem":57,"url":58,"__hash__":59},"projects\u002Fprojects\u002Fripple.md","Ripple",{"type":9,"value":48,"toc":49},[],{"title":12,"searchDepth":13,"depth":13,"links":50},[],"An events platform for organisers — registration, waitlists, drafts and bulk upload — built as a split backend and PWA frontend.",{},2,"\u002Fprojects\u002Fripple","\u002Fprojects\u002Fripple.jpg",{"title":46,"description":51},"projects\u002Fripple","https:\u002F\u002Fmakearipple.app","blLVrGv15-DfOM32adB8OBbPq3GZOTP4vK0P6g6bhok",{"id":61,"title":62,"body":63,"description":67,"extension":16,"featured":17,"mainLink":35,"meta":68,"navigation":20,"order":69,"path":70,"repo":71,"screenshot":72,"seo":73,"stem":74,"url":75,"__hash__":76},"projects\u002Fprojects\u002Ftakeinitiative.md","Take Initiative",{"type":9,"value":64,"toc":65},[],{"title":12,"searchDepth":13,"depth":13,"links":66},[],"A Dungeons and Dragons campaign management tool for DMs and players, in and out of combat.",{},4,"\u002Fprojects\u002Ftakeinitiative","https:\u002F\u002Fgithub.com\u002FPI-Gorbo\u002FTakeInitiative","\u002Fprojects\u002Ftakeinitiative.png",{"title":62,"description":67},"projects\u002Ftakeinitiative","https:\u002F\u002Ftakeinitiative.samstack.org","V92E3hVRK4guvj0EKO5_RExYBHay8e-oI41PHYYYqtQ",{"id":78,"title":79,"body":80,"description":84,"extension":16,"featured":17,"mainLink":35,"meta":85,"navigation":20,"order":13,"path":86,"repo":87,"screenshot":88,"seo":89,"stem":90,"url":91,"__hash__":92},"projects\u002Fprojects\u002Ftrestle.md","Trestle",{"type":9,"value":81,"toc":82},[],{"title":12,"searchDepth":13,"depth":13,"links":83},[],"A hobby functional programming language built in Rust, with a browser playground that runs the compiler as WebAssembly.",{},"\u002Fprojects\u002Ftrestle","https:\u002F\u002Fgithub.com\u002FPI-Gorbo\u002FTrestle","\u002Fprojects\u002Ftrestle.png",{"title":79,"description":84},"projects\u002Ftrestle","https:\u002F\u002Ftrestle.samstack.org","WKozwoPodK_jDiQF2pT6vHDF58khXM-lQFeFK_wJ3ag",1793537193418]