[{"data":1,"prerenderedAt":593},["ShallowReactive",2],{"projects":3},[4,38,65,87,111,132,156,180,204,227,249,270,290,310,332,353,373,395,419,441,462,484,504,526,548,569],{"id":5,"title":6,"archived":7,"body":8,"categories":19,"category":21,"description":14,"era":22,"extension":23,"featured":7,"languages":24,"meta":26,"name":27,"navigation":7,"order":28,"path":29,"period":30,"repo":31,"seo":32,"spiget":33,"stars":34,"stem":35,"url":36,"__hash__":37},"projects\u002Fprojects\u002Fmobchip.md","Mobchip",true,{"type":9,"value":10,"toc":15},"minimark",[11],[12,13,14],"p",{},"An Entity AI Library for SpigotMC that wraps Minecraft's native mob-AI internals behind a clean, fully documented public API across 17 versioned adapters. My most successful project by a wide margin, later adopted by another maintainer after I stepped back.",{"title":16,"searchDepth":17,"depth":17,"links":18},"",2,[],[20,21],"Library","Minecraft","2022","md",[25],"Java",{},"MobChip",1,"\u002Fprojects\u002Fmobchip","2022-2024","gmitch215\u002FMobChip",{"description":14},null,88,"projects\u002Fmobchip","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FMobChip","uEwQkxvM-y48if6ghc7nnVep0S1igIbqbAEJOnUQsVk",{"id":39,"title":40,"archived":41,"body":42,"categories":49,"category":50,"description":46,"era":53,"extension":23,"featured":7,"languages":54,"meta":57,"name":40,"navigation":7,"order":17,"path":58,"period":59,"repo":60,"seo":61,"spiget":33,"stars":28,"stem":62,"url":63,"__hash__":64},"projects\u002Fprojects\u002Fdrupflare.md","Drupflare",false,{"type":9,"value":43,"toc":47},[44],[12,45,46],{},"Drupal 11 running on Cloudflare Workers, with PHP compiled to WebAssembly inside a Durable Object and that object's own SQLite as the database. No VPS, no container, no origin server. The shipping bundle lands 241,603 bytes under the free-plan ceiling with no extensions dropped; a cached page costs 1 ms of Durable Object CPU.",{"title":16,"searchDepth":17,"depth":17,"links":48},[],[50,51,52],"Runtime","Infrastructure","Web","2026",[55,56],"TypeScript","PHP",{},"\u002Fprojects\u002Fdrupflare","2026-Present","drupflare\u002Fworker",{"description":46},"projects\u002Fdrupflare","https:\u002F\u002Fgithub.com\u002Fdrupflare\u002Fworker","Gv3aXBgnIMJJh4MEGMKzFBKei8210bwqhViXitf_eMA",{"id":66,"title":67,"archived":41,"body":68,"categories":75,"category":51,"description":72,"era":53,"extension":23,"featured":7,"languages":76,"meta":78,"name":79,"navigation":7,"order":80,"path":81,"period":59,"repo":82,"seo":83,"spiget":33,"stars":28,"stem":84,"url":85,"__hash__":86},"projects\u002Fprojects\u002Fphasm.md","Phasm",{"type":9,"value":69,"toc":73},[70],[12,71,72],{},"A statically linked PHP 8.5 interpreter compiled to WebAssembly for the workerd runtime. Every published php-wasm build uses dynamic linking, whose linker synthesizes trampolines at request time, which workerd forbids; that makes extensions unloadable and Drupal impossible. A static build was the precondition, so it got built.",{"title":16,"searchDepth":17,"depth":17,"links":74},[],[50,51],[77,55,56],"C",{},"phasm",3,"\u002Fprojects\u002Fphasm","drupflare\u002Fphasm",{"description":72},"projects\u002Fphasm","https:\u002F\u002Fgithub.com\u002Fdrupflare\u002Fphasm","cAJ9z4EIGI-7rVl6YbV1vO0m9RwI7sqNUhVn1iAbPog",{"id":88,"title":89,"archived":41,"body":90,"categories":97,"category":51,"description":94,"era":98,"extension":23,"featured":7,"languages":99,"meta":100,"name":101,"navigation":7,"order":102,"path":103,"period":104,"repo":105,"seo":106,"spiget":33,"stars":107,"stem":108,"url":109,"__hash__":110},"projects\u002Fprojects\u002Fcollegedb.md","Collegedb",{"type":9,"value":91,"toc":95},[92],[12,93,94],{},"A database-sharding router with Durable-Object-coordinated sharding across six backends, extracted from The Earth App and published to npm. My second-most-starred project.",{"title":16,"searchDepth":17,"depth":17,"links":96},[],[20,51],"2025",[55],{},"CollegeDB",4,"\u002Fprojects\u002Fcollegedb","2025-Present","earth-app\u002FCollegeDB",{"description":94},30,"projects\u002Fcollegedb","https:\u002F\u002Fgithub.com\u002Fearth-app\u002FCollegeDB","nxKrOS40d03YUfrgt_Ao78_0CHztqgsR3TPVybjpF9k",{"id":112,"title":113,"archived":41,"body":114,"categories":121,"category":51,"description":118,"era":53,"extension":23,"featured":7,"languages":122,"meta":123,"name":124,"navigation":7,"order":125,"path":126,"period":59,"repo":127,"seo":128,"spiget":33,"stars":80,"stem":129,"url":130,"__hash__":131},"projects\u002Fprojects\u002Fedgeport.md","Edgeport",{"type":9,"value":115,"toc":119},[116],[12,117,118],{},"A from-scratch TCP library for Cloudflare Workers with clients for SSH, SFTP, SMTP, IMAP, NATS, MQTT, STOMP, and more, tested against real Dockerized servers. Built because the platform advertised the capability and no maintained library wrapped it.",{"title":16,"searchDepth":17,"depth":17,"links":120},[],[20,51],[55],{},"edgeport",5,"\u002Fprojects\u002Fedgeport","gmitch215\u002Fedgeport",{"description":118},"projects\u002Fedgeport","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fedgeport","j2hVuj2RI8j1jhn4NNvI4j3_Q96H3RU8jiHctZvoIWc",{"id":133,"title":134,"archived":41,"body":135,"categories":142,"category":143,"description":139,"era":98,"extension":23,"featured":7,"languages":145,"meta":146,"name":147,"navigation":7,"order":148,"path":149,"period":104,"repo":150,"seo":151,"spiget":33,"stars":152,"stem":153,"url":154,"__hash__":155},"projects\u002Fprojects\u002Fcmdfx.md","Cmdfx",{"type":9,"value":136,"toc":140},[137],[12,138,139],{},"A game engine for the terminal, written from scratch in C with a full CMake, sanitizer, and CPack pipeline that ships installers for Windows, macOS, and Linux. Begun before Claude Code existed, which makes it the clearest proof of my hand-written low-level craft.",{"title":16,"searchDepth":17,"depth":17,"links":141},[],[143,20,144],"Engine","GameDev",[77],{},"cmdfx",6,"\u002Fprojects\u002Fcmdfx","gmitch215\u002Fcmdfx",{"description":139},16,"projects\u002Fcmdfx","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fcmdfx","MS8-RKhLKhNyGBf3Jf_zJQSNMV2SpJDSeJpTsUNlaHA",{"id":157,"title":158,"archived":41,"body":159,"categories":166,"category":167,"description":163,"era":53,"extension":23,"featured":7,"languages":169,"meta":171,"name":172,"navigation":7,"order":173,"path":174,"period":59,"repo":175,"seo":176,"spiget":33,"stars":28,"stem":177,"url":178,"__hash__":179},"projects\u002Fprojects\u002Frecess.md","Recess",{"type":9,"value":160,"toc":164},[161],[12,162,163],{},"\"Go Outside.\" A few small prompts a day, drawn from a catalog of 120 and filtered by clock, season, weather, and what you have already done. No server, no account, no competition, no social graph. An on-device CLIP model, sentence embedder, and Whisper check the nudges; nothing is uploaded, ever, and the points buy nothing because there is nothing to buy.",{"title":16,"searchDepth":17,"depth":17,"links":165},[],[167,168],"Product","AI",[55,170],"Vue",{},"recess",7,"\u002Fprojects\u002Frecess","earth-app\u002Frecess",{"description":163},"projects\u002Frecess","https:\u002F\u002Fgithub.com\u002Fearth-app\u002Frecess","MSzdE-OOfUxxLl5CHpgms1IKlqqP_BL5sCMF9WmfZJY",{"id":181,"title":182,"archived":7,"body":183,"categories":190,"category":21,"description":187,"era":191,"extension":23,"featured":7,"languages":192,"meta":193,"name":182,"navigation":7,"order":194,"path":195,"period":196,"repo":197,"seo":198,"spiget":199,"stars":200,"stem":201,"url":202,"__hash__":203},"projects\u002Fprojects\u002Fnovaconomy.md","Novaconomy",{"type":9,"value":184,"toc":188},[185],[12,186,187],{},"A Minecraft economy plugin that grew from a one-and-done side project into a seven-module library with a 25-version NMS abstraction layer. Features player-owned corporations, businesses, markets, and bounties.",{"title":16,"searchDepth":17,"depth":17,"links":189},[],[21,20],"2021",[25],{},8,"\u002Fprojects\u002Fnovaconomy","2021-2024","Team-Inceptus\u002FNovaconomy",{"description":187},100503,13,"projects\u002Fnovaconomy","https:\u002F\u002Fgithub.com\u002FTeam-Inceptus\u002FNovaconomy","RpC62jw71t7bT6IFmQDGL3IN3WGdazopimCEcm5mNKM",{"id":205,"title":206,"archived":7,"body":207,"categories":214,"category":21,"description":211,"era":215,"extension":23,"featured":7,"languages":216,"meta":217,"name":218,"navigation":7,"order":219,"path":220,"period":215,"repo":221,"seo":222,"spiget":33,"stars":223,"stem":224,"url":225,"__hash__":226},"projects\u002Fprojects\u002Fsocketmc.md","Socketmc",{"type":9,"value":208,"toc":212},[209],[12,210,211],{},"A server-to-client communication mod and library for Minecraft that pairs a server plugin with a client mod over a socket protocol, bridging the plugin and mod worlds that normally cannot talk. The technical capstone of my Minecraft years, and a direct ancestor of edgeport.",{"title":16,"searchDepth":17,"depth":17,"links":213},[],[21,20,51],"2024",[25],{},"SocketMC",9,"\u002Fprojects\u002Fsocketmc","gmitch215\u002FSocketMC",{"description":211},12,"projects\u002Fsocketmc","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FSocketMC","rc_bETX1FCoHvzQgpO-6x4WuAujzZymCpZG0UEv62d8",{"id":228,"title":229,"archived":41,"body":230,"categories":237,"category":168,"description":234,"era":98,"extension":23,"featured":41,"languages":239,"meta":240,"name":241,"navigation":7,"order":242,"path":243,"period":98,"repo":244,"seo":245,"spiget":33,"stars":173,"stem":246,"url":247,"__hash__":248},"projects\u002Fprojects\u002Fmymcp.md","Mymcp",{"type":9,"value":231,"toc":235},[232],[12,233,234],{},"Turns any OpenAPI specification into a Model Context Protocol server, so AI agents can call existing APIs in a standard way. Built with Hono and deployed on Cloudflare Workers.",{"title":16,"searchDepth":17,"depth":17,"links":236},[],[168,238],"Tooling",[55],{},"MyMCP",10,"\u002Fprojects\u002Fmymcp","gmitch215\u002FMyMCP",{"description":234},"projects\u002Fmymcp","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FMyMCP","vsXWwLqY0NCEHo_Vcb_okjkfizxhAejJecPDO3-XjF0",{"id":250,"title":251,"archived":41,"body":252,"categories":259,"category":167,"description":256,"era":53,"extension":23,"featured":41,"languages":260,"meta":261,"name":262,"navigation":7,"order":263,"path":264,"period":59,"repo":265,"seo":266,"spiget":33,"stars":28,"stem":267,"url":268,"__hash__":269},"projects\u002Fprojects\u002Fsmoke.md","Smoke",{"type":9,"value":253,"toc":257},[254],[12,255,256],{},"A self-hostable customer-support desk with envelope encryption, per-row wrapped keys, and HMAC lookups, so tickets stay readable to the operator and to nobody else. It imports edgeport for mail, which is why edgeport exists at all.",{"title":16,"searchDepth":17,"depth":17,"links":258},[],[167,51],[55,170],{},"smoke",11,"\u002Fprojects\u002Fsmoke","earth-app\u002Fsmoke",{"description":256},"projects\u002Fsmoke","https:\u002F\u002Fgithub.com\u002Fearth-app\u002Fsmoke","ADuD17IvtqcQOBK9bmo_jLru_dBFCGbpybDJmCwQwiE",{"id":271,"title":272,"archived":41,"body":273,"categories":280,"category":20,"description":277,"era":53,"extension":23,"featured":41,"languages":281,"meta":282,"name":283,"navigation":7,"order":223,"path":284,"period":59,"repo":285,"seo":286,"spiget":33,"stars":28,"stem":287,"url":288,"__hash__":289},"projects\u002Fprojects\u002Fdurabledb.md","Durabledb",{"type":9,"value":274,"toc":278},[275],[12,276,277],{},"A SQLite layer for Durable Objects, written because the platform's real limits are undocumented: 100 bound parameters where local PDO allows 32,766, a 50-byte ceiling on a LIKE pattern, and lossy integer reads above 2^53. Each one broke something real before it got written down.",{"title":16,"searchDepth":17,"depth":17,"links":279},[],[20,51],[55],{},"durabledb","\u002Fprojects\u002Fdurabledb","drupflare\u002Fdurabledb",{"description":277},"projects\u002Fdurabledb","https:\u002F\u002Fgithub.com\u002Fdrupflare\u002Fdurabledb","JY4_UFQhRPx6X770br9qUzPbbLoW91iMp7ru6to0YgE",{"id":291,"title":292,"archived":41,"body":293,"categories":300,"category":168,"description":297,"era":53,"extension":23,"featured":41,"languages":301,"meta":302,"name":303,"navigation":7,"order":200,"path":304,"period":59,"repo":305,"seo":306,"spiget":33,"stars":28,"stem":307,"url":308,"__hash__":309},"projects\u002Fprojects\u002Fmylora.md","Mylora",{"type":9,"value":294,"toc":298},[295],[12,296,297],{},"A full MLOps control plane that fine-tunes LoRA adapters on my own home RTX 4070, reached over an SSH tunnel and driven from a Cloudflare Workers UI.",{"title":16,"searchDepth":17,"depth":17,"links":299},[],[168,51],[55],{},"MyLoRA","\u002Fprojects\u002Fmylora","gmitch215\u002FMyLoRA",{"description":297},"projects\u002Fmylora","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FMyLoRA","yNy1oRlT_HJTBwVp_BYshsSj3ZFF3onFEGxmz1-tTWg",{"id":311,"title":312,"archived":41,"body":313,"categories":320,"category":168,"description":317,"era":98,"extension":23,"featured":41,"languages":321,"meta":323,"name":324,"navigation":7,"order":325,"path":326,"period":104,"repo":327,"seo":328,"spiget":33,"stars":102,"stem":329,"url":330,"__hash__":331},"projects\u002Fprojects\u002Fdoc2lora.md","Doc2lora",{"type":9,"value":314,"toc":318},[315],[12,316,317],{},"Converts documents into LoRA adapters, with device-precision-aware GPU training. Built in 2025; wired into The Earth App's support tooling (smoke) in 2026, alongside MyLoRA.",{"title":16,"searchDepth":17,"depth":17,"links":319},[],[168,238],[322],"Python",{},"doc2lora",14,"\u002Fprojects\u002Fdoc2lora","earth-app\u002Fdoc2lora",{"description":317},"projects\u002Fdoc2lora","https:\u002F\u002Fgithub.com\u002Fearth-app\u002Fdoc2lora","jXg9WJRYN5Zwv1HC7AzA64Quym443kn_XLUEu0UUAOQ",{"id":333,"title":334,"archived":41,"body":335,"categories":342,"category":238,"description":339,"era":53,"extension":23,"featured":41,"languages":343,"meta":344,"name":345,"navigation":7,"order":346,"path":347,"period":59,"repo":348,"seo":349,"spiget":33,"stars":28,"stem":350,"url":351,"__hash__":352},"projects\u002Fprojects\u002Fstrata.md","Strata",{"type":9,"value":336,"toc":340},[337],[12,338,339],{},"A Drupal 11 backup and instant-rollback suite over S3, and the second Drupal module written for The Earth App's own backend. 77 commits in three days.",{"title":16,"searchDepth":17,"depth":17,"links":341},[],[238,51],[56],{},"strata",15,"\u002Fprojects\u002Fstrata","earth-app\u002Fstrata",{"description":339},"projects\u002Fstrata","https:\u002F\u002Fgithub.com\u002Fearth-app\u002Fstrata","M1AdSDLzkHfL0uNt5L4peqdZAEPdeHCmZaBOo_w5_Ec",{"id":354,"title":355,"archived":41,"body":356,"categories":363,"category":52,"description":360,"era":98,"extension":23,"featured":41,"languages":364,"meta":365,"name":366,"navigation":7,"order":152,"path":367,"period":104,"repo":368,"seo":369,"spiget":33,"stars":102,"stem":370,"url":371,"__hash__":372},"projects\u002Fprojects\u002Fnuxtpress.md","Nuxtpress",{"type":9,"value":357,"toc":361},[358],[12,359,360],{},"Nuxt and Cloudflare Workers blogging software with a custom API over KV and D1 storage. Built because I did not feel like making a git commit for every blog post with Jekyll.",{"title":16,"searchDepth":17,"depth":17,"links":362},[],[52,238],[55],{},"nuxtpress","\u002Fprojects\u002Fnuxtpress","gmitch215\u002Fnuxtpress",{"description":360},"projects\u002Fnuxtpress","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fnuxtpress","RPiCquFGwHir8qoV-_cKPsIaOyHvHCbHPcHvNbFs5F8",{"id":374,"title":375,"archived":7,"body":376,"categories":383,"category":21,"description":380,"era":22,"extension":23,"featured":41,"languages":384,"meta":385,"name":386,"navigation":7,"order":387,"path":388,"period":30,"repo":389,"seo":390,"spiget":391,"stars":194,"stem":392,"url":393,"__hash__":394},"projects\u002Fprojects\u002Fstarcosmetics.md","Starcosmetics",{"type":9,"value":377,"toc":381},[378],[12,379,380],{},"A Minecraft cosmetics plugin engineered so that adding a new cosmetic meant adding one line to a list and letting the plugin generate the rest. My favorite of the Big 4 to build.",{"title":16,"searchDepth":17,"depth":17,"links":382},[],[21,20],[25],{},"StarCosmetics",17,"\u002Fprojects\u002Fstarcosmetics","gmitch215\u002FStarCosmetics",{"description":380},106805,"projects\u002Fstarcosmetics","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FStarCosmetics","kJgLnoddWe9maHiZKoC39AAao_TNNVQJ5tolbP0wtM0",{"id":396,"title":397,"archived":7,"body":398,"categories":405,"category":238,"description":402,"era":406,"extension":23,"featured":41,"languages":407,"meta":409,"name":410,"navigation":7,"order":411,"path":412,"period":413,"repo":414,"seo":415,"spiget":33,"stars":173,"stem":416,"url":417,"__hash__":418},"projects\u002Fprojects\u002Fkotlinmc.md","Kotlinmc",{"type":9,"value":399,"toc":403},[400],[12,401,402],{},"An automation pipeline that polls JetBrains hourly for new Kotlin releases, auto-bumps a Gradle plugin, and auto-publishes to Modrinth. I automated my own distribution.",{"title":16,"searchDepth":17,"depth":17,"links":404},[],[238],"2023",[408],"Kotlin",{},"KotlinMC",18,"\u002Fprojects\u002Fkotlinmc","2023-2024","gmitch215\u002FKotlinMC",{"description":402},"projects\u002Fkotlinmc","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FKotlinMC","SJ_-hVVULFhRVd29_HoH0OhSZGtxXMfl1guOmHMSyJA",{"id":420,"title":421,"archived":7,"body":422,"categories":429,"category":238,"description":426,"era":215,"extension":23,"featured":41,"languages":430,"meta":431,"name":432,"navigation":7,"order":433,"path":434,"period":435,"repo":436,"seo":437,"spiget":33,"stars":148,"stem":438,"url":439,"__hash__":440},"projects\u002Fprojects\u002Fbenchmarks.md","Benchmarks",{"type":9,"value":423,"toc":427},[424],[12,425,426],{},"A harness that compiles and runs the same algorithms across eleven languages, times them, and plots the results with Kandy. Proof of multi-language fluency you cannot fake.",{"title":16,"searchDepth":17,"depth":17,"links":428},[],[238],[408],{},"benchmarks",19,"\u002Fprojects\u002Fbenchmarks","2024-2025","gmitch215\u002Fbenchmarks",{"description":426},"projects\u002Fbenchmarks","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fbenchmarks","tnNaBbSuF3W36lHcwp7pVdpRIST2_Hz9hktVSbyP4hw",{"id":442,"title":443,"archived":7,"body":444,"categories":451,"category":238,"description":448,"era":406,"extension":23,"featured":41,"languages":452,"meta":453,"name":454,"navigation":7,"order":455,"path":456,"period":406,"repo":457,"seo":458,"spiget":33,"stars":125,"stem":459,"url":460,"__hash__":461},"projects\u002Fprojects\u002Finceptusnms.md","Inceptusnms",{"type":9,"value":445,"toc":449},[446],[12,447,448],{},"A documentation-generation engine written from scratch in Kotlin: it reads JSON schema files and produces a JDK-Javadoc-style browsable website, with its own schema validator and template generator. A tool to document other tools.",{"title":16,"searchDepth":17,"depth":17,"links":450},[],[238],[408],{},"InceptusNMS",20,"\u002Fprojects\u002Finceptusnms","Team-Inceptus\u002FInceptusNMS",{"description":448},"projects\u002Finceptusnms","https:\u002F\u002Fgithub.com\u002FTeam-Inceptus\u002FInceptusNMS","vO2knYUr7pLlPtzxdXkobqlSCZzs8QzV8-5J2H24dt4",{"id":463,"title":464,"archived":7,"body":465,"categories":472,"category":21,"description":469,"era":22,"extension":23,"featured":41,"languages":473,"meta":474,"name":475,"navigation":7,"order":476,"path":477,"period":30,"repo":478,"seo":479,"spiget":480,"stars":80,"stem":481,"url":482,"__hash__":483},"projects\u002Fprojects\u002Fbattlecards.md","Battlecards",{"type":9,"value":466,"toc":470},[467],[12,468,469],{},"A Clash-Royale-inspired card battler for Minecraft, my most idiomatic Kotlin, with clean domain modeling and WASD-rideable entities built by intercepting player-input packets. One of the first projects sold on the SpigotMC market.",{"title":16,"searchDepth":17,"depth":17,"links":471},[],[21,20],[408],{},"BattleCards",21,"\u002Fprojects\u002Fbattlecards","gmitch215\u002FBattleCards",{"description":469},113155,"projects\u002Fbattlecards","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FBattleCards","cs3f5f_ToMq8q2b7r5veNoW6lJRFqgtOkzxr-a5S_1w",{"id":485,"title":486,"archived":7,"body":487,"categories":494,"category":144,"description":491,"era":215,"extension":23,"featured":41,"languages":495,"meta":496,"name":486,"navigation":7,"order":497,"path":498,"period":215,"repo":499,"seo":500,"spiget":33,"stars":80,"stem":501,"url":502,"__hash__":503},"projects\u002Fprojects\u002Fkray.md","Kray",{"type":9,"value":488,"toc":492},[489],[12,490,491],{},"Kotlin bindings for the raylib game library, reached after trying and discarding allegro5 and SDL3. My highest-starred Calculus Games studio repo.",{"title":16,"searchDepth":17,"depth":17,"links":493},[],[144,20],[408],{},22,"\u002Fprojects\u002Fkray","CalculusGames\u002FKray",{"description":491},"projects\u002Fkray","https:\u002F\u002Fgithub.com\u002FCalculusGames\u002FKray","1O-riM-hS74SwZNuSB-Dzmgi9z9Q7fEIvaErt3Tm8Ng",{"id":505,"title":506,"archived":41,"body":507,"categories":514,"category":238,"description":511,"era":215,"extension":23,"featured":41,"languages":515,"meta":516,"name":517,"navigation":7,"order":518,"path":519,"period":520,"repo":521,"seo":522,"spiget":33,"stars":17,"stem":523,"url":524,"__hash__":525},"projects\u002Fprojects\u002Fgitle.md","Gitle",{"type":9,"value":508,"toc":512},[509],[12,510,511],{},"A Gradle plugin that pulls dependencies straight from git repositories, no artifact repository required. Built specifically so I would not have to pay for a hosted Nexus just to consume my own unpublished libraries.",{"title":16,"searchDepth":17,"depth":17,"links":513},[],[238],[408],{},"gitle",23,"\u002Fprojects\u002Fgitle","2024-Present","gmitch215\u002Fgitle",{"description":511},"projects\u002Fgitle","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fgitle","0NjrBIIhHxj8jGIruyYTKTNwacljYCBR0IpE1P9A9Vc",{"id":527,"title":528,"archived":7,"body":529,"categories":536,"category":20,"description":533,"era":215,"extension":23,"featured":41,"languages":537,"meta":538,"name":539,"navigation":7,"order":540,"path":541,"period":542,"repo":543,"seo":544,"spiget":33,"stars":17,"stem":545,"url":546,"__hash__":547},"projects\u002Fprojects\u002Ftabroomapi.md","Tabroomapi",{"type":9,"value":530,"toc":534},[531],[12,532,533],{},"A typed, cross-platform client for the Tabroom debate platform, built by reverse-engineering its gated HTML login flow. Kotlin Multiplatform, with per-platform HTTP engines and HTML parsing, for the tournaments I personally compete in.",{"title":16,"searchDepth":17,"depth":17,"links":535},[],[20],[408],{},"TabroomAPI",24,"\u002Fprojects\u002Ftabroomapi","2024-2026","gmitch215\u002FTabroomAPI",{"description":533},"projects\u002Ftabroomapi","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002FTabroomAPI","VTyqgfDzfeUwVzjjS31NJeWAXqi-Z9oyW2McISikNAw",{"id":549,"title":550,"archived":7,"body":551,"categories":558,"category":20,"description":555,"era":215,"extension":23,"featured":41,"languages":559,"meta":560,"name":561,"navigation":7,"order":562,"path":563,"period":542,"repo":564,"seo":565,"spiget":33,"stars":80,"stem":566,"url":567,"__hash__":568},"projects\u002Fprojects\u002Fkasciffy.md","Kasciffy",{"type":9,"value":552,"toc":556},[553],[12,554,555],{},"An ASCII-art engine written in Kotlin Multiplatform, available for CLI, desktop, web, and mobile. Converts images and video to ASCII art, and the project that nudged me back into C.",{"title":16,"searchDepth":17,"depth":17,"links":557},[],[20,238],[408],{},"kasciffy",25,"\u002Fprojects\u002Fkasciffy","gmitch215\u002Fkasciffy",{"description":555},"projects\u002Fkasciffy","https:\u002F\u002Fgithub.com\u002Fgmitch215\u002Fkasciffy","VsJy2uF724IbHL5G1sJTdHzDzP9jLHn04bo1wK_sOyQ",{"id":570,"title":571,"archived":7,"body":572,"categories":579,"category":580,"description":576,"era":215,"extension":23,"featured":41,"languages":581,"meta":584,"name":585,"navigation":7,"order":586,"path":587,"period":520,"repo":588,"seo":589,"spiget":33,"stars":28,"stem":590,"url":591,"__hash__":592},"projects\u002Fprojects\u002Flevelz.md","Levelz",{"type":9,"value":573,"toc":577},[574],[12,575,576],{},"A human-readable file format for describing game levels, backed with parsers and bindings in six languages plus an IntelliJ plugin, a VSCode extension, and a CLI. More completeness than most formats get from an entire company.",{"title":16,"searchDepth":17,"depth":17,"links":578},[],[580,20,238],"FileFormat",[25,408,582,77,583,322],"JavaScript","C++",{},"LevelZ",26,"\u002Fprojects\u002Flevelz","LevelZ-File",{"description":576},"projects\u002Flevelz","https:\u002F\u002Fgithub.com\u002FLevelZ-File","oeT6M8SoNtneXnMpdHln8uYFCcPVJUS1rkzj6DYhXHM",1787288238689]