[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"maker-chr15m":3},[4,32,52,68,85,107,125,142,164,184,197,216,237,258,278,297,312],{"id":5,"name":6,"line":7,"ai":8,"cat":9,"year":10,"points":11,"comments":12,"rec":13,"s":14,"top":15,"kw":16,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":25,"url":26,"mix":27,"praise":-1,"objection":30,"sub":31},10620394,"Gitnonymous","Contribute anonymously to Git repositories over Tor",false,"security_privacy",2015,46,5,"quiet",null,25,[17,18,19,20],"git","tor","anonymous contributions","pseudonym","chr15m","github.com","shown",0,"13330","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fgitnonymous",[24,28,24,29],3,1,"Not truly anonymous: timezone, commit times and SSH client version leak information","anonymous git contributions",{"id":33,"name":34,"line":35,"ai":8,"cat":36,"year":37,"points":38,"comments":39,"rec":13,"s":14,"top":40,"kw":41,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":46,"url":47,"mix":48,"praise":-1,"objection":50,"sub":51},14537114,"dreamtime","Peer-to-peer for shell scripts","dev_tools",2017,14,4,66,[42,43,44,45],"peer-to-peer","shell scripts","bittorrent dht","p2p networking","3030","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fdreamtime",[24,49,24,24],2,"Unclear how the library is used; needs a practical example","shell scripting networking",{"id":53,"name":54,"line":55,"ai":8,"cat":56,"year":37,"points":57,"comments":49,"rec":13,"s":14,"top":58,"kw":59,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":64,"url":65,"mix":66,"praise":-1,"objection":-1,"sub":67},15632927,"speedy-spa","Material SPA in Lisp with 500ms TTI and 11k gzipped","web_saas",12,72,[60,61,62,63],"single page app","lisp","material design","clojurescript","30","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fspeedy-spa?re",[24,29,24,24],"single page app framework",{"id":69,"name":70,"line":71,"ai":8,"cat":72,"year":73,"points":57,"comments":29,"rec":13,"s":14,"top":74,"kw":75,"maker":21,"domain":79,"tier":23,"attempts":24,"strip":80,"url":81,"mix":82,"praise":83,"objection":-1,"sub":84},17407200,"Frock","Clojure-flavoured PHP","languages",2018,73,[76,77,61,78],"clojure","php","transpiler","chr15m.github.io","5","https:\u002F\u002Fchr15m.github.io\u002Ffrock-clojure-flavoured-php.html",[29,24,24,24],"Useful for learning Clojure coming from PHP or vice versa","programming language",{"id":86,"name":87,"line":88,"ai":8,"cat":89,"year":73,"points":90,"comments":91,"rec":92,"s":93,"top":94,"kw":95,"maker":21,"domain":79,"tier":23,"attempts":24,"strip":101,"url":102,"mix":103,"praise":104,"objection":105,"sub":106},17773180,"dirc","P2p IRC-inspired browser chat on WebTorrent","consumer_social",44,16,"roasted",-0.37,39,[96,97,98,99,100],"p2p chat","webtorrent","webrtc","irc","browser chat","3001103010000000","https:\u002F\u002Fchr15m.github.io\u002Fdirc\u002F#hn",[24,49,24,28],"Interesting project and good for trying out p2p chat","Connection setup is slow and fails behind restrictive firewalls","peer-to-peer chat",{"id":108,"name":109,"line":110,"ai":8,"cat":111,"year":73,"points":15,"comments":112,"rec":113,"s":114,"top":115,"kw":116,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":119,"url":120,"mix":121,"praise":122,"objection":123,"sub":124},17916222,"Bugout","Run servers out of browser tabs over WebRTC","infrastructure",8,"mixed",0.44,50,[98,117,42,118],"browser","serverless","50555015","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fbugout",[12,24,24,29],"Cool and promising idea with potential for many applications","Did not work in Firefox 62 on macOS for one tester; server log stalled at zero connections","peer-to-peer server hosting",{"id":126,"name":109,"line":127,"ai":8,"cat":128,"year":129,"points":130,"comments":12,"rec":13,"s":14,"top":131,"kw":132,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":136,"url":137,"mix":138,"praise":139,"objection":140,"sub":141},19441262,"Build a decentralized web chat in 15 minutes","learning_science",2019,11,77,[98,133,134,100,135],"decentralized chat","peer to peer","gossip protocol","10005","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fbuild-decentralized-web-app",[29,24,24,29],"Enjoyed the article","Peer-to-peer connection is not truly decentralized, lacks rooms or gossip protocol","tutorial",{"id":143,"name":144,"line":144,"ai":8,"cat":145,"year":129,"points":146,"comments":147,"rec":148,"s":149,"top":150,"kw":151,"maker":21,"domain":156,"tier":157,"attempts":24,"strip":158,"url":159,"mix":160,"praise":162,"objection":163,"sub":155},20723366,"ClojureScript pixel game engine with Blender live-reloading","games",285,30,"loved",0.5,6,[63,152,153,154,155],"pixel game engine","blender","live reloading","game engine","mccormick.cx","legend","300000000053535015500000535505","https:\u002F\u002Fmccormick.cx\u002Fnews\u002Fentries\u002Fclojurescript-pixel-game-engine-with-blender-live-reloading",[161,39,24,29],9,"Impressive integration of Clojure, live reloading and Blender","No open source license in the repo",{"id":165,"name":166,"line":167,"ai":8,"cat":36,"year":168,"points":131,"comments":130,"rec":169,"s":170,"top":171,"kw":172,"maker":21,"domain":176,"tier":177,"attempts":24,"strip":178,"url":179,"mix":180,"praise":181,"objection":182,"sub":183},23611505,"Slingcode","Slingcode live-reloading web IDE to make, run, and share web apps P2P",2020,"debated",0.11,27,[173,134,174,175,98],"web ide","live reload","browser apps","slingcode.net","notable","53010533510","https:\u002F\u002Fslingcode.net\u002F",[28,28,24,49],"Simple, well-explained video; reminiscent of QBasic","Peer-to-peer claim questioned; mostly static HTML like GitHub Pages","browser ide",{"id":185,"name":186,"line":187,"ai":8,"cat":36,"year":168,"points":38,"comments":29,"rec":13,"s":14,"top":188,"kw":189,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":80,"url":194,"mix":195,"praise":196,"objection":-1,"sub":190},25396806,"motionless","Generate static sites in Node with plain JavaScript and HTML",67,[190,191,192,193],"static site generator","node","javascript","html templating","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fmotionless",[29,24,24,24],"Useful idea: static site generation with plain JavaScript instead of Ruby tooling like Jekyll",{"id":198,"name":199,"line":200,"ai":8,"cat":36,"year":201,"points":202,"comments":203,"rec":113,"s":204,"top":205,"kw":206,"maker":21,"domain":79,"tier":177,"attempts":24,"strip":211,"url":212,"mix":213,"praise":214,"objection":215,"sub":207},29551465,"DoodleCSS","A simple hand drawn HTML\u002FCSS theme",2021,188,35,0.2,10,[207,208,209,210],"css theme","hand drawn css","html css framework","sketch style css","31330300000015555553313133513553500","https:\u002F\u002Fchr15m.github.io\u002FDoodleCSS\u002F",[205,12,150,12],"Looks nice and fun","Safari rendering bugs with checkboxes, radios and selects",{"id":217,"name":218,"line":219,"ai":8,"cat":220,"year":221,"points":222,"comments":223,"rec":92,"s":224,"top":225,"kw":226,"maker":21,"domain":231,"tier":177,"attempts":24,"strip":232,"url":233,"mix":234,"praise":235,"objection":236,"sub":227},30188681,"TweetFeast","Download Twitter data without API keys","data",2022,57,43,-0.6,36,[227,228,229,230],"twitter data export","twitter analytics","download tweets","twitter followers csv","tweetfeast.com","1301001000303010103010101010000301111000","https:\u002F\u002Ftweetfeast.com\u002F",[24,12,24,38],"Nice user interface for non-coders","Violates Twitter terms; reselling API access",{"id":238,"name":239,"line":240,"ai":8,"cat":145,"year":241,"points":242,"comments":243,"rec":113,"s":244,"top":12,"kw":245,"maker":21,"domain":250,"tier":157,"attempts":24,"strip":251,"url":252,"mix":253,"praise":256,"objection":257,"sub":246},42085036,"Asterogue","Asterogue is a \"juicy\" graphical coffeebreak roguelike I made that is pretty much directly inspired by the…",2024,331,95,0.14,[246,247,248,249],"roguelike","browser game","sci-fi roguelike","rogue-like web game","asterogue.com","3500345103500000331311333015151131355555","https:\u002F\u002Fasterogue.com",[254,255,205,205],17,19,"Nice aesthetic and atmosphere.","Crashes when descending past level 16; maker says fixed in new build.",{"id":259,"name":260,"line":261,"ai":8,"cat":262,"year":263,"points":264,"comments":150,"rec":13,"s":14,"top":265,"kw":266,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":272,"url":273,"mix":274,"praise":275,"objection":276,"sub":277},44734791,"print-weather","Print the daily weather forecast on a thermal receipt printer","hardware",2025,21,52,[267,268,269,270,271],"thermal printer","weather forecast","escpos","receipt printer","cron","100035","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Fprint-weather",[29,29,24,29],"Practical and artistic bridge from digital to physical","Thermal paper may contain BPA or BPS, a health risk","thermal printer weather display",{"id":279,"name":280,"line":281,"ai":8,"cat":282,"year":263,"points":283,"comments":284,"rec":148,"s":285,"top":161,"kw":286,"maker":21,"domain":291,"tier":177,"attempts":24,"strip":292,"url":293,"mix":294,"praise":295,"objection":296,"sub":287},45220069,"Beat Maker","A generative online drum machine with ClojureScript","creative",202,55,0.27,[287,288,289,290,63],"drum machine","beat maker","generative beats","web audio","dopeloop.ai","3033300300305530005015330030353050503535","https:\u002F\u002Fdopeloop.ai\u002Fbeat-maker\u002F",[205,91,29,29],"Fun and responsive drum machine","Generated beats feel too similar",{"id":298,"name":299,"line":300,"ai":8,"cat":72,"year":263,"points":57,"comments":28,"rec":13,"s":14,"top":301,"kw":302,"maker":21,"domain":79,"tier":23,"attempts":24,"strip":307,"url":308,"mix":309,"praise":310,"objection":-1,"sub":311},45590740,"Eucalypt","I LLM-coded a 10kb version of my favorite ClojureScript React wrapper",68,[63,303,304,305,306],"reagent","react wrapper","single html build","squint","030","https:\u002F\u002Fchr15m.github.io\u002Feucalypt\u002F",[24,29,24,24],"Fun to use a LISP to compile a self-contained tiny web app","ui library",{"id":313,"name":314,"line":315,"ai":8,"cat":36,"year":263,"points":316,"comments":317,"rec":148,"s":285,"top":318,"kw":319,"maker":21,"domain":22,"tier":177,"attempts":24,"strip":325,"url":326,"mix":327,"praise":328,"objection":329,"sub":330},46069556,"Runprompt","run .prompt files from the command line",134,49,15,[320,321,322,323,324],"llm cli","dotprompt","prompt templates","structured output","unix pipes","5030355030300305353030300033030155030035","https:\u002F\u002Fgithub.com\u002Fchr15m\u002Frunprompt",[112,91,24,29],"Pipe-friendly, lightweight alternative to agent frameworks","Invalid LLM output passes silently down the chain","command line prompt runner",1793991211162]