[{"data":1,"prerenderedAt":1914},["ShallowReactive",2],{"collection-comebacks":3},[4,34,61,88,113,138,164,187,212,234,255,270,292,311,330,352,373,396,417,437,459,481,501,522,545,568,589,610,631,650,669,688,707,727,747,769,786,806,824,845,865,885,904,923,944,962,981,1000,1020,1038,1057,1078,1098,1117,1135,1152,1171,1191,1208,1226,1244,1264,1283,1302,1319,1340,1357,1376,1395,1415,1434,1455,1472,1491,1508,1526,1545,1564,1584,1599,1619,1637,1655,1674,1694,1713,1730,1749,1767,1786,1804,1823,1840,1859,1878,1897],{"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":32,"objection":33,"sub":17},24696658,"TypeLit","A site where you practice typing by retyping entire novels",false,"productivity",2020,1589,378,"mixed",0.32,1,[17,18,19,20],"typing practice","typing tutor","retype books","touch typing","Octouroboros","typelit.io","legend",2,"3000444255553523434355224454433344442455","http:\u002F\u002Ftypelit.io",[28,29,30,31],94,79,11,30,"Engaging way to read and practise typing","Mistakes cannot be corrected and error handling breaks flow",{"id":35,"name":36,"line":37,"ai":8,"cat":38,"year":39,"points":40,"comments":41,"rec":42,"s":43,"top":15,"kw":44,"maker":49,"domain":50,"tier":23,"attempts":24,"strip":51,"url":52,"mix":53,"praise":58,"objection":59,"sub":60},35543668,"Phind","GPT-4-powered web searches for developers","ai",2023,1401,414,"debated",-0.09,[45,46,47,48],"developer search","gpt-4 search","ai code search","technical q&a","rushingcreek","phind.com","3440155413324253314323212214221153222313","https:\u002F\u002Fwww.phind.com",[54,55,56,57],58,66,16,82,"Good answers on recent libraries and niche technical questions","Hallucinated or outdated answers on some queries","ai search engine",{"id":62,"name":63,"line":64,"ai":8,"cat":65,"year":10,"points":66,"comments":67,"rec":13,"s":68,"top":15,"kw":69,"maker":75,"domain":76,"tier":23,"attempts":77,"strip":78,"url":79,"mix":80,"praise":85,"objection":86,"sub":87},24707407,"Buy For Life","A Rotten Tomatoes-style platform for durable products","web_saas",1392,398,-0.08,[70,71,72,73,74],"durable products","product reviews","buy for life","durability ratings","long lasting products","hubraumhugo","buyforlifeproducts.com",8,"4413312332204433111233144322243342223243","https:\u002F\u002Fwww.buyforlifeproducts.com\u002F",[81,82,83,84],44,90,15,63,"Good concept with a clear need for reliable durability reviews","Search does not work or returns nothing for non-matches","product review platform",{"id":89,"name":90,"line":91,"ai":8,"cat":65,"year":92,"points":93,"comments":94,"rec":13,"s":95,"top":15,"kw":96,"maker":101,"domain":102,"tier":23,"attempts":103,"strip":104,"url":105,"mix":106,"praise":111,"objection":112,"sub":97},32690410,"Openship","I'm building an open-source Amazon",2022,1335,301,-0.16,[97,98,99,100],"order management system","open source ecommerce","multichannel selling","dropshipping software","theturtletalks","openship.org",6,"3102252100011400500002120341133235212324","https:\u002F\u002Fopenship.org\u002F",[107,108,109,110],20,53,4,42,"Open-source approach fills a real need for sellers","Amazon's logistics and operational value is hard to replicate",{"id":114,"name":115,"line":116,"ai":8,"cat":117,"year":118,"points":119,"comments":120,"rec":121,"s":122,"top":15,"kw":123,"maker":128,"domain":129,"tier":23,"attempts":24,"strip":130,"url":131,"mix":132,"praise":135,"objection":136,"sub":137},10204018,"HomeMirror","Make a programmable mirror","hardware",2015,1172,136,"curious",0.2,[124,125,126,127],"smart mirror","android tablet","two-way mirror","raspberry pi","hannahmitt","github.com","5333353354451323333333134135553333354425","https:\u002F\u002Fgithub.com\u002FHannahMitt\u002FHomeMirror",[133,134,24,77],23,64,"Awesome idea that blends software into the physical environment","Removing the tablet for updates is inconvenient, adhesive mounting concerns","smart mirror display",{"id":139,"name":140,"line":141,"ai":8,"cat":142,"year":143,"points":144,"comments":145,"rec":13,"s":146,"top":15,"kw":147,"maker":152,"domain":153,"tier":23,"attempts":154,"strip":155,"url":156,"mix":157,"praise":161,"objection":162,"sub":163},40843867,"Pikimov","An After Effects alternative","creative",2024,1150,258,0.23,[148,149,150,151],"after effects alternative","motion graphics","video editor","browser video editing","clementpiki","pikimov.com",3,"2133543335043352554344541350300101233333","https:\u002F\u002Fpikimov.com\u002F",[158,159,24,160],33,51,21,"Impressive feature depth and UX for a solo developer","Only works in Chromium; Firefox and Safari not supported","motion graphics editor",{"id":165,"name":166,"line":167,"ai":8,"cat":168,"year":169,"points":170,"comments":171,"rec":13,"s":172,"top":15,"kw":173,"maker":179,"domain":129,"tier":23,"attempts":154,"strip":180,"url":181,"mix":182,"praise":184,"objection":185,"sub":186},27132334,"Permafrost Engine","My own RTS game engine in C","games",2021,1102,262,0.41,[174,175,176,177,178],"rts game engine","c game engine","opengl","real-time strategy","python scripting","epermyakov","5503000000505000501305034555545235355451","https:\u002F\u002Fgithub.com\u002Feduard-permyakov\u002Fpermafrost-engine",[183,31,154,77],37,"Clean, well-organized, readable code","Frame rate looks poor in the videos","game engine",{"id":188,"name":189,"line":190,"ai":8,"cat":191,"year":192,"points":193,"comments":194,"rec":13,"s":195,"top":15,"kw":196,"maker":202,"domain":203,"tier":23,"attempts":24,"strip":204,"url":205,"mix":206,"praise":209,"objection":210,"sub":211},16571827,"RoughJS","Create hand-drawn graphics using JavaScript","languages",2018,1087,92,0.35,[197,198,199,200,201],"hand-drawn graphics","javascript","canvas","svg","sketch style","shihn","roughjs.com","3553355513300035135550513350300555153055","http:\u002F\u002Froughjs.com\u002F",[207,208,15,103],25,22,"Fun and delightful hand-drawn look","Does not work in Firefox at the time","graphics library",{"id":213,"name":214,"line":215,"ai":8,"cat":216,"year":143,"points":217,"comments":218,"rec":13,"s":219,"top":15,"kw":220,"maker":226,"domain":214,"tier":23,"attempts":24,"strip":227,"url":228,"mix":229,"praise":231,"objection":232,"sub":233},40740021,"rahulilango.com","A puzzle game that gently introduces my favorite math mysteries","learning_science",1054,172,0.24,[221,222,223,224,225],"four color theorem","map coloring puzzle","zero knowledge proof","math game","graph coloring","MCSP","4232055032333533035342350211303255554555","https:\u002F\u002Fwww.rahulilango.com\u002Fcoloring\u002F",[158,230,103,56],36,"Fun and educational interactive way to learn the four color theorem","Zero-knowledge proof example confusing and not connected to the coloring game","interactive math puzzle game",{"id":235,"name":236,"line":236,"ai":8,"cat":142,"year":10,"points":237,"comments":238,"rec":121,"s":146,"top":15,"kw":239,"maker":244,"domain":245,"tier":23,"attempts":246,"strip":247,"url":248,"mix":249,"praise":252,"objection":253,"sub":254},22898653,"A basketball hoop to maximize shots that go in [video]",971,162,[240,241,242,243],"basketball backboard","monte carlo simulation","cnc machining","shot accuracy","swighton","youtube.com",1526,"5500005303335555433433535251333450155422","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vtN4tkvcBMA",[208,250,251,103],50,0,"Clever use of Monte Carlo simulation and video explanation","Only works for shots from the free throw line","basketball equipment",{"id":256,"name":257,"line":258,"ai":8,"cat":65,"year":39,"points":259,"comments":15,"rec":260,"s":261,"top":15,"kw":262,"maker":266,"domain":257,"tier":23,"attempts":154,"strip":267,"url":268,"mix":269,"praise":-1,"objection":-1,"sub":265},36860953,"pycareer.io","A Python Job Board for Python Developers",945,"quiet",null,[263,264,265],"python jobs","python developer jobs","job board","TreeIsAlive","000","https:\u002F\u002Fwww.pycareer.io",[251,251,251,251],{"id":271,"name":272,"line":273,"ai":8,"cat":142,"year":274,"points":275,"comments":276,"rec":121,"s":277,"top":15,"kw":278,"maker":283,"domain":284,"tier":23,"attempts":24,"strip":285,"url":286,"mix":287,"praise":289,"objection":290,"sub":291},44719222,"Draw a fish","Draw a fish and watch it swim with the others",2025,935,234,0.03,[279,280,281,282],"fish drawing game","neural network","drawing canvas","vibe coding","hallak","drawafish.com","5224215131222003224522444343334431441355","https:\u002F\u002Fdrawafish.com",[158,288,103,183],76,"Fun, whimsical and wholesome","Bugs: fish not appearing, model not loaded errors","interactive drawing toy",{"id":293,"name":294,"line":295,"ai":8,"cat":296,"year":274,"points":297,"comments":238,"rec":121,"s":298,"top":15,"kw":299,"maker":304,"domain":305,"tier":23,"attempts":24,"strip":306,"url":307,"mix":308,"praise":309,"objection":310,"sub":300},43690289,"Unsure Calculator","back-of-a-napkin probabilistic calculator","dev_tools",930,0.16,[300,301,302,303],"probabilistic calculator","monte carlo","uncertainty ranges","fermi estimation","filiph","filiph.github.io","3000035440300524433111515541534335513335","https:\u002F\u002Ffiliph.github.io\u002Funsure\u002F",[208,81,109,30],"Useful tool for building statistical intuition","Negative results from positive inputs and wide ranges for division by zero-spanning ranges",{"id":312,"name":313,"line":314,"ai":8,"cat":296,"year":274,"points":315,"comments":218,"rec":42,"s":316,"top":15,"kw":317,"maker":322,"domain":129,"tier":23,"attempts":24,"strip":323,"url":324,"mix":325,"praise":327,"objection":328,"sub":329},43739456,"Tutorial-Codebase-Knowledge","An AI that turns GitHub codebases into easy tutorials",923,0.12,[318,319,320,321],"codebase documentation","code tutorial generator","gemini llm","onboarding docs","zh2408","3000031552042530511440221555432435343321","https:\u002F\u002Fgithub.com\u002FThe-Pocket\u002FTutorial-Codebase-Knowledge",[158,31,24,326],26,"Useful for understanding unfamiliar codebases and onboarding","Output tone is overly simplistic or overexcited","documentation generator",{"id":331,"name":332,"line":333,"ai":8,"cat":9,"year":143,"points":334,"comments":335,"rec":13,"s":219,"top":15,"kw":336,"maker":342,"domain":343,"tier":23,"attempts":24,"strip":344,"url":345,"mix":346,"praise":349,"objection":350,"sub":351},42289690,"Markwhen","Markdown for Timelines",912,98,[337,338,339,340,341],"markdown timeline","timeline visualization","gantt chart","obsidian plugin","plain text planning","koch","markwhen.com","5335355031500031333053303011155553543533","https:\u002F\u002Fmarkwhen.com",[160,347,24,348],29,10,"Looks excellent and elegant as a Markdown-style timeline tool","Date range syntax with slashes and dashes is unintuitive","timelines and planning",{"id":353,"name":354,"line":355,"ai":8,"cat":142,"year":169,"points":356,"comments":357,"rec":13,"s":358,"top":15,"kw":359,"maker":364,"domain":365,"tier":23,"attempts":24,"strip":366,"url":367,"mix":368,"praise":370,"objection":371,"sub":372},27606099,"iPod.js","An online iPod that connects to Spotify and Apple Music",866,157,0.28,[360,361,362,363],"ipod web","clickwheel","spotify player","apple music web","tonyhawkins","tannerv.com","5000003351543525011113335405145545444555","https:\u002F\u002Ftannerv.com\u002Fipod",[230,369,24,56],39,"Feels like the original iPod click wheel and nostalgic","Spotify sign-in fails on some browsers and mobile","music player",{"id":374,"name":375,"line":376,"ai":8,"cat":142,"year":377,"points":378,"comments":379,"rec":380,"s":381,"top":15,"kw":382,"maker":387,"domain":388,"tier":23,"attempts":24,"strip":389,"url":390,"mix":391,"praise":394,"objection":395,"sub":385},49823738,"Bastardica","Make cursed fonts like Times New Bastard",2026,862,126,"loved",0.45,[383,384,385,386],"font mixer","opentype ligatures","font generator","typography","MitPitt","bastardica.mitpit.com","5113335553355320355503555414555555552555","https:\u002F\u002Fbastardica.mitpit.com",[392,393,24,77],46,40,"Funny and fun; font names like Temu Sans and Royal Ransom get laughs","Readme is wall of text with few examples, so the related tool got less interest",{"id":397,"name":398,"line":399,"ai":8,"cat":400,"year":143,"points":401,"comments":276,"rec":121,"s":402,"top":15,"kw":403,"maker":409,"domain":410,"tier":23,"attempts":24,"strip":411,"url":412,"mix":413,"praise":414,"objection":415,"sub":416},41635592,"OpenFreeMap","Open-Source Map Hosting","infrastructure",848,0.19,[404,405,406,407,408],"map tiles","openstreetmap","vector tiles","self-hosted maps","btrfs","hyperknot","openfreemap.org","3020000053333253322135505333453451345334","https:\u002F\u002Fopenfreemap.org\u002F",[160,250,154,30],"Free tiles with no API keys or limits","Risk of abuse or heavy traffic from embedded sites","map tile hosting",{"id":418,"name":419,"line":420,"ai":8,"cat":9,"year":143,"points":421,"comments":422,"rec":13,"s":316,"top":15,"kw":423,"maker":428,"domain":429,"tier":23,"attempts":430,"strip":431,"url":432,"mix":433,"praise":435,"objection":436,"sub":426},42254156,"Intenty","App that asks ‘why?’ every time you unlock your phone",817,381,[424,425,426,427],"phone addiction","screen time","digital wellbeing","phone unlock","jarko27","play.google.com",1198,"3533431300053005354551302125135322235005","https:\u002F\u002Fplay.google.com\u002Fstore\u002Fapps\u002Fdetails?id=com.actureunlock&hl=en_US",[183,81,348,434],27,"Useful for breaking phone pickup habits","Subscription pricing; users want a one-time purchase",{"id":438,"name":439,"line":440,"ai":8,"cat":142,"year":274,"points":441,"comments":442,"rec":380,"s":443,"top":15,"kw":444,"maker":450,"domain":451,"tier":23,"attempts":24,"strip":452,"url":453,"mix":454,"praise":456,"objection":457,"sub":458},45777810,"Strange Attractors","I went down the rabbit hole on a side project and ended up building this: Strange…",804,78,0.55,[445,446,447,448,449],"strange attractors","three.js","chaos theory","lorenz attractor","3d visualization","shashanktomar","blog.shashanktomar.com","5000000000005330550035555555555351553535","https:\u002F\u002Fblog.shashanktomar.com\u002Fposts\u002Fstrange-attractors",[207,455,251,24],12,"Visually beautiful and mesmerizing","Parameter description in docs is mathematically inaccurate about the butterfly effect","math art visualization",{"id":460,"name":461,"line":462,"ai":8,"cat":463,"year":39,"points":464,"comments":465,"rec":42,"s":277,"top":15,"kw":466,"maker":470,"domain":471,"tier":23,"attempts":472,"strip":473,"url":474,"mix":475,"praise":478,"objection":479,"sub":480},36849502,"ProjectionLab","I spent 2 years building a personal finance simulator","finance_crypto",766,288,[467,468,469,241],"personal finance planner","retirement planning","financial independence","scubakid","projectionlab.com",5,"4321123552313313451342534455133512151441","https:\u002F\u002Fprojectionlab.com\u002F",[369,476,477,393],55,9,"Useful and well-designed planning tool","Paddle free trial charges after trial ends, confusing checkout","personal finance planning",{"id":482,"name":483,"line":484,"ai":8,"cat":296,"year":92,"points":485,"comments":486,"rec":121,"s":487,"top":15,"kw":488,"maker":493,"domain":494,"tier":23,"attempts":24,"strip":495,"url":496,"mix":497,"praise":499,"objection":500,"sub":490},33287137,"Restfox","Open source lightweight alternative to Postman",758,182,0.01,[489,490,491,492],"postman alternative","api client","rest client","open source api testing","kermire","restfox.dev","5300033230500043123125000000503000000031","https:\u002F\u002Frestfox.dev",[77,133,109,498],7,"Open source alternative to Postman is valuable","Fails on many requests with errors (e.g. Google, news.ycombinator.com)",{"id":502,"name":503,"line":504,"ai":8,"cat":38,"year":39,"points":505,"comments":506,"rec":13,"s":68,"top":15,"kw":507,"maker":512,"domain":513,"tier":23,"attempts":154,"strip":514,"url":515,"mix":516,"praise":519,"objection":520,"sub":521},34635352,"Maroofy","I trained an AI model on 120M+ songs from iTunes",753,427,[508,509,510,511],"music recommendation","audio embeddings","similar songs","vector search","subtech","maroofy.com","5355513113342443451422341232342213131422","https:\u002F\u002Fmaroofy.com\u002F?hn=v3",[517,518,158,335],67,97,"Finds similar-sounding tracks and surfaces new music","Matches often superficial, e.g. drum or tempo only","music similarity search",{"id":523,"name":524,"line":525,"ai":8,"cat":526,"year":527,"points":528,"comments":465,"rec":13,"s":529,"top":15,"kw":530,"maker":535,"domain":536,"tier":23,"attempts":24,"strip":537,"url":538,"mix":539,"praise":542,"objection":543,"sub":544},5640336,"eatthismuch","Automatic weekly meal planner, also plans your leftovers","consumer_social",2013,747,0.43,[531,532,533,534],"meal planner","diet generator","weekly meal plan","nutrition","papa_bear","eatthismuch.com","5535534555434112353543445435445455554454","http:\u002F\u002Fwww.eatthismuch.com",[518,540,541,208],62,17,"Clean, well-executed interface that anticipates user needs","Meal combinations and recipes can be odd or unrealistic","meal planning",{"id":546,"name":547,"line":548,"ai":8,"cat":9,"year":143,"points":549,"comments":550,"rec":42,"s":551,"top":15,"kw":552,"maker":557,"domain":558,"tier":23,"attempts":24,"strip":559,"url":560,"mix":561,"praise":565,"objection":566,"sub":567},40528045,"Shade Map","Every mountain, building and tree shadow mapped for any date and time",685,183,-0.02,[553,554,555,556],"shadow map","sun position","shade map","solar exposure","tppiotrowski","shademap.app","3034142000000322313053431222441432214244","https:\u002F\u002Fshademap.app",[562,563,77,564],32,45,38,"Useful for solar, house hunting and photography planning","Trees are often missing or wrong in many areas","solar and shade mapping",{"id":569,"name":570,"line":571,"ai":8,"cat":572,"year":377,"points":573,"comments":574,"rec":13,"s":575,"top":15,"kw":576,"maker":581,"domain":129,"tier":23,"attempts":24,"strip":582,"url":583,"mix":584,"praise":586,"objection":587,"sub":588},46706528,"ChartGPU","WebGPU-powered charting library (1M points at 60fps)","data",670,214,-0.23,[577,578,579,580],"webgpu charting","javascript chart library","large dataset visualization","gpu charts","huntergemmer","1333311355111203211314441112133512243101","https:\u002F\u002Fgithub.com\u002FChartGPU\u002FChartGPU",[160,81,154,585],47,"Very smooth performance with large datasets","Browser support is limited, no Firefox or Safari support","charting library",{"id":590,"name":591,"line":592,"ai":8,"cat":216,"year":10,"points":593,"comments":594,"rec":13,"s":595,"top":15,"kw":596,"maker":601,"domain":602,"tier":23,"attempts":24,"strip":603,"url":604,"mix":605,"praise":607,"objection":608,"sub":609},24323589,"WebRTC for the Curious","Learn how WebRTC actually works. A book on the protocols, not just APIs",667,72,0.29,[597,598,599,600],"webrtc","ice dtls srtp","real-time communication","webrtc protocols","Sean-Der","webrtcforthecurious.com","0113535500000005035500151030000003505505","https:\u002F\u002Fwebrtcforthecurious.com\u002F",[606,77,15,472],13,"Useful resource for learning WebRTC, which was hard to find learning material for","Excessive exclamation marks make the writing tiring","technical book",{"id":611,"name":612,"line":613,"ai":8,"cat":526,"year":39,"points":614,"comments":615,"rec":42,"s":616,"top":15,"kw":617,"maker":622,"domain":623,"tier":23,"attempts":154,"strip":624,"url":625,"mix":626,"praise":628,"objection":629,"sub":630},34534615,"Lungy","I'm a doctor and made a responsive breathing app for stress and anxiety",666,215,-0.01,[618,619,620,621],"breathing exercises","stress relief","anxiety app","breathwork","lukko","lungy.app","3330000004354315531311104252435235242231","https:\u002F\u002Fwww.lungy.app\u002F",[347,627,77,31],48,"Beautiful design and visuals","Breathing too fast; caused hyperventilation for some users","breathing wellness app",{"id":632,"name":633,"line":634,"ai":8,"cat":168,"year":92,"points":635,"comments":550,"rec":380,"s":381,"top":24,"kw":636,"maker":642,"domain":643,"tier":23,"attempts":24,"strip":644,"url":645,"mix":646,"praise":648,"objection":649,"sub":637},33217395,"America","Road Trip Simulator",663,[637,638,639,640,641],"road trip simulator","browser game","real-time apis","webrtc walkie talkie","us highways","0x389","4m3ric4.com","4455553500050553033553443534434455542555","https:\u002F\u002F4m3ric4.com",[647,564,472,498],52,"Radio feature and real-time local stations are a highlight","Static noise and audio issues",{"id":651,"name":652,"line":653,"ai":8,"cat":296,"year":192,"points":654,"comments":655,"rec":13,"s":122,"top":15,"kw":656,"maker":202,"domain":662,"tier":23,"attempts":24,"strip":663,"url":664,"mix":665,"praise":666,"objection":667,"sub":668},17146451,"Wired-elements","UI web components with a hand drawn, sketchy look",650,120,[657,658,659,660,661],"web components","sketchy ui","wireframe","hand drawn ui","lit-element","wiredjs.com","5315333135355013135355533535511555551313","https:\u002F\u002Fwiredjs.com\u002F",[326,160,24,606],"Fun, charming sketchy look","Sliders broken on mobile and some browsers","ui component library",{"id":670,"name":671,"line":672,"ai":8,"cat":191,"year":192,"points":673,"comments":674,"rec":380,"s":675,"top":15,"kw":676,"maker":680,"domain":681,"tier":23,"attempts":24,"strip":682,"url":683,"mix":684,"praise":685,"objection":686,"sub":687},17716542,"Pts.js","A library for visualization and creative coding",611,71,0.53,[198,677,678,679,199],"visualization","creative coding","geometry","wmnn","ptsjs.org","5533000000300555555055553003153531500555","https:\u002F\u002Fptsjs.org\u002F",[133,83,15,154],"Well-designed API and documentation","Requires understanding TypeScript or build setup to build from source","javascript graphics library",{"id":689,"name":690,"line":691,"ai":8,"cat":296,"year":10,"points":692,"comments":693,"rec":13,"s":694,"top":15,"kw":695,"maker":700,"domain":129,"tier":23,"attempts":24,"strip":701,"url":702,"mix":703,"praise":705,"objection":706,"sub":696},23126458,"Lite","A small, fast text editor",607,256,0.06,[696,697,698,699],"text editor","lua editor","lightweight editor","sdl","rxi","1110020151245344330153005222233435100054","https:\u002F\u002Fgithub.com\u002Frxi\u002Flite",[160,627,477,704],19,"Fast and snappy, performs well on large logs","Font rendering looks blurry or not crisp on some platforms",{"id":708,"name":709,"line":710,"ai":8,"cat":526,"year":169,"points":711,"comments":712,"rec":13,"s":402,"top":24,"kw":713,"maker":718,"domain":719,"tier":23,"attempts":154,"strip":720,"url":721,"mix":722,"praise":725,"objection":726,"sub":714},28704873,"Haxplore","Hacker News client with a twist",603,243,[714,715,716,717],"hacker news client","keyboard navigation","hn reader","vim keybindings","pabue","haxplore.pabue.co","3513354552531244331255355434553310445352","https:\u002F\u002Fhaxplore.pabue.co",[647,723,326,724],35,28,"Smooth animations and fast response time","Low information density compared with HN",{"id":728,"name":729,"line":730,"ai":8,"cat":9,"year":274,"points":731,"comments":732,"rec":121,"s":68,"top":24,"kw":733,"maker":739,"domain":740,"tier":23,"attempts":24,"strip":741,"url":742,"mix":743,"praise":744,"objection":745,"sub":746},44118023,"Desktop Docs","I rewrote my Mac Electron app in Rust",597,443,[734,735,736,737,738],"local photo search","clip embeddings","tauri","rust","macos","katrinarodri","desktopdocs.com","3010000000033244441224333234332000005321","https:\u002F\u002Fdesktopdocs.com\u002F?v=2025",[208,335,472,31],"Tauri gives much smaller binaries than Electron","Mac-only support; no Windows or Linux yet","local media search",{"id":748,"name":749,"line":750,"ai":8,"cat":9,"year":751,"points":752,"comments":753,"rec":42,"s":754,"top":15,"kw":755,"maker":760,"domain":761,"tier":23,"attempts":24,"strip":762,"url":763,"mix":764,"praise":766,"objection":767,"sub":768},19572514,"SourcedFact","A platform for journalists to “open source” their fact checking",2019,593,298,0.05,[756,757,758,759],"fact checking","journalism","primary sources","transparency","YazIAm","sourcedfact.com","3110000031000530535031331502234244441255","https:\u002F\u002Fsourcedfact.com",[158,183,109,765],31,"Useful approach to combat fake news and show sources","Fact checking is hard to scale; reputation and abuse concerns","fact checking platform",{"id":770,"name":771,"line":772,"ai":8,"cat":296,"year":143,"points":773,"comments":774,"rec":121,"s":616,"top":24,"kw":775,"maker":780,"domain":129,"tier":23,"attempts":154,"strip":781,"url":782,"mix":783,"praise":784,"objection":785,"sub":776},39643136,"Hatchet","Open-source distributed task queue",578,189,[776,777,778,779],"task queue","postgres queue","distributed workers","workflow orchestration","abelanger","3003001333013313353423445334333233310133","https:\u002F\u002Fgithub.com\u002Fhatchet-dev\u002Fhatchet",[606,159,15,606],"Interest in Postgres-based queueing and River comparison","RabbitMQ dependency is confusing for a Postgres-based queue",{"id":787,"name":788,"line":789,"ai":8,"cat":216,"year":377,"points":790,"comments":791,"rec":13,"s":792,"top":15,"kw":793,"maker":799,"domain":800,"tier":23,"attempts":24,"strip":801,"url":802,"mix":803,"praise":804,"objection":805,"sub":794},46556210,"Lend Me Your Ears","A memory game to teach you to play piano by ear",565,171,0.14,[794,795,796,797,798],"ear training","piano","play by ear","music practice","midi","vunderba","lend-me-your-ears.specr.net","3423331110335353355145533341243315051155","https:\u002F\u002Flend-me-your-ears.specr.net",[724,347,498,107],"Good tool for ear training, feels like a musician's practice aid","Melodies grow too long and turn into a memory test",{"id":807,"name":808,"line":809,"ai":8,"cat":9,"year":92,"points":810,"comments":811,"rec":13,"s":195,"top":24,"kw":812,"maker":817,"domain":818,"tier":23,"attempts":24,"strip":819,"url":820,"mix":821,"praise":822,"objection":823,"sub":813},29851834,"BookStack","An open source wiki platform and alternative to Confluence",562,198,[813,814,815,816],"wiki","confluence alternative","self-hosted wiki","documentation platform","ssddanbrown","bookstackapp.com","3553300013555345155434553105413555335510","https:\u002F\u002Fwww.bookstackapp.com\u002F",[393,31,154,348],"Fast, simple and easy to use","No real-time multi-user editing",{"id":825,"name":826,"line":827,"ai":8,"cat":526,"year":92,"points":828,"comments":829,"rec":42,"s":551,"top":24,"kw":830,"maker":836,"domain":837,"tier":23,"attempts":24,"strip":838,"url":839,"mix":840,"praise":842,"objection":843,"sub":844},29795482,"OnlyRecipe.app","Remove clutter from recipe sites",560,345,[831,832,833,834,835],"recipe scraper","recipe clutter","recipe extractor","schema.org recipe","cooking app","AwkwardPanda","showcase.onlyrecipe.app","4130011305450321103003310335333235233430","https:\u002F\u002Fshowcase.onlyrecipe.app\u002F",[107,562,24,841],24,"Removing recipe-site clutter is useful.","Copies content that earns ad revenue from recipe sites.","recipe reader",{"id":846,"name":847,"line":848,"ai":8,"cat":216,"year":39,"points":849,"comments":850,"rec":13,"s":851,"top":24,"kw":852,"maker":857,"domain":858,"tier":23,"attempts":24,"strip":859,"url":860,"mix":861,"praise":862,"objection":863,"sub":864},35665142,"Lost at SQL","A SQL game to help people learn \u002F challenge their skills",547,117,-0.22,[853,854,855,856],"sql","sql practice","sql game","learn sql","robinLord","lost-at-sql.therobinlord.com","3100050000131350113133315111151311111543","https:\u002F\u002Flost-at-sql.therobinlord.com\u002F",[30,348,348,133],"Creative, polished production and artwork","Spec and wording mismatches such as weight vs weight_kg and impostor typo","sql learning game",{"id":866,"name":867,"line":868,"ai":8,"cat":216,"year":869,"points":870,"comments":871,"rec":13,"s":872,"top":15,"kw":873,"maker":878,"domain":129,"tier":23,"attempts":24,"strip":879,"url":880,"mix":881,"praise":882,"objection":883,"sub":884},14865043,"The JavaScript Way","A book for learning modern JavaScript from scratch",2017,545,110,0.17,[198,874,875,876,877],"learn javascript","modern javascript","es2015","beginner programming","bpesquet","3335333313130310333301050353000033500055","https:\u002F\u002Fgithub.com\u002Fbpesquet\u002Fthejsway\u002F#",[30,107,103,103],"Clean, friendly tone and good pacing for beginners","Setup and environment instructions are missing or too thin for true beginners","programming book",{"id":886,"name":887,"line":888,"ai":8,"cat":142,"year":92,"points":889,"comments":890,"rec":13,"s":172,"top":24,"kw":891,"maker":897,"domain":898,"tier":23,"attempts":24,"strip":899,"url":900,"mix":901,"praise":902,"objection":903,"sub":892},32688646,"Wavvy","web-based audio editor (Audacity port)",530,111,[892,893,894,895,896],"audio editor","web audio","audacity","wasm","browser audio editing","ahilss","wavvy.app","3030001001050055531505523054555500000000","https:\u002F\u002Fwavvy.app\u002F",[160,348,109,103],"Impressive technical work and fast loading","Not accessible to screen reader users",{"id":905,"name":906,"line":907,"ai":8,"cat":65,"year":10,"points":908,"comments":909,"rec":42,"s":551,"top":24,"kw":910,"maker":915,"domain":916,"tier":23,"attempts":24,"strip":917,"url":918,"mix":919,"praise":920,"objection":921,"sub":922},22441289,"Profit Hunt","Get inspired by profitable online projects",528,95,[911,912,913,914],"profitable projects","revenue examples","indie hackers","bootstrapped startups","andrewash","profithunt.co","1000300130000005000000000140110353500500","http:\u002F\u002Fprofithunt.co",[498,77,251,77],"Simple, clean design and useful inspiration","Mobile layout makes list items hard to tell apart","startup inspiration directory",{"id":924,"name":925,"line":926,"ai":8,"cat":38,"year":377,"points":927,"comments":928,"rec":13,"s":929,"top":24,"kw":930,"maker":936,"domain":937,"tier":23,"attempts":24,"strip":938,"url":939,"mix":940,"praise":941,"objection":942,"sub":943},46567400,"trails","I used Claude Code to discover connections between 100 books",524,146,-0.15,[931,932,933,934,935],"syntopic reading","book connections","llm","claude code","embeddings","pmaze","trails.pieterma.es","0013001121521130011300233135451333155111","https:\u002F\u002Ftrails.pieterma.es\u002F",[541,107,15,158],"Design and interface praised as inspiring","Connections are superficial or spurious","llm book exploration",{"id":945,"name":946,"line":947,"ai":8,"cat":526,"year":10,"points":948,"comments":949,"rec":121,"s":950,"top":24,"kw":951,"maker":956,"domain":946,"tier":23,"attempts":24,"strip":957,"url":958,"mix":959,"praise":960,"objection":961,"sub":952},22687086,"bingetogether.com","To fight quarantine boredom I build a site to watch movies with friends",515,203,0.02,[952,953,954,955],"watch party","watch movies together","netflix party alternative","remote movie night","l1am0","3033325000033005011352313015533134335150","https:\u002F\u002Fbingetogether.com\u002F",[83,563,251,56],"Nostalgia for Netflix's old Xbox party watching.","Playback is not synced; only start time is synchronized.",{"id":963,"name":964,"line":965,"ai":8,"cat":117,"year":143,"points":966,"comments":967,"rec":121,"s":968,"top":24,"kw":969,"maker":974,"domain":964,"tier":23,"attempts":24,"strip":975,"url":976,"mix":977,"praise":978,"objection":979,"sub":980},39501073,"usoldering.com","Reverse-Engineering a Switch Lite with 1,917 wires",513,114,0.09,[970,971,972,973],"boardview","pcb reverse engineering","netlist","boardscan","uSoldering","3000000000045335453303333350000015331033","https:\u002F\u002Fusoldering.com\u002Fswitch-lite\u002F",[30,434,251,103],"Impressive, well-executed project and a great hack.","Soldering 1,900+ wires does not scale; commercial RE services and flying probes are cheaper.","reverse engineering pcb boardview",{"id":982,"name":983,"line":984,"ai":8,"cat":168,"year":274,"points":985,"comments":986,"rec":42,"s":487,"top":24,"kw":987,"maker":992,"domain":993,"tier":23,"attempts":24,"strip":994,"url":995,"mix":996,"praise":997,"objection":998,"sub":999},43347306,"Time Portal","Get dropped into history, guess where you landed",497,213,[988,989,990,991],"history game","geoguessr alternative","ai video","historical events quiz","samplank2","eggnog.ai","2012132222313514143332524545333455241111","https:\u002F\u002Fwww.eggnog.ai\u002Fentertimeportal",[564,83,133,563],"Fun, original GeoGuessr-like concept","AI images are anachronistic and historically inaccurate","history guessing game",{"id":1001,"name":1002,"line":1003,"ai":8,"cat":65,"year":39,"points":1004,"comments":1005,"rec":42,"s":616,"top":24,"kw":1006,"maker":1011,"domain":1012,"tier":23,"attempts":24,"strip":1013,"url":1014,"mix":1015,"praise":1017,"objection":1018,"sub":1019},37782513,"store","An app store just for installable web apps",484,228,[1007,1008,1009,1010],"progressive web apps","installable web apps","web app store","pwa directory","presson","store.app","1110051321155403342133234133541442341551","https:\u002F\u002Fstore.app",[158,1016,30,369],34,"Good concept and support for the open web and PWA distribution","Terms of service wrongly prohibited deep linking; maker removed it","app store marketplace",{"id":1021,"name":1022,"line":1023,"ai":8,"cat":463,"year":169,"points":1024,"comments":1025,"rec":13,"s":1026,"top":24,"kw":1027,"maker":470,"domain":1030,"tier":23,"attempts":154,"strip":1031,"url":1032,"mix":1033,"praise":1035,"objection":1036,"sub":1037},26969173,"ProjectiFi","A simulator for personal finance",479,255,-0.2,[469,1028,480,1029],"retirement simulator","net worth projection","projectifi.io","1124511205323111021133113322551221133421","https:\u002F\u002Fprojectifi.io\u002F",[434,250,30,1034],60,"Fast, intuitive interface and useful dashboard","Requires hosted server and privacy policy raises concerns about handling financial data","personal finance simulator",{"id":1039,"name":1040,"line":1041,"ai":8,"cat":296,"year":92,"points":1024,"comments":1042,"rec":13,"s":694,"top":154,"kw":1043,"maker":1049,"domain":1050,"tier":23,"attempts":24,"strip":1051,"url":1052,"mix":1053,"praise":1054,"objection":1055,"sub":1056},31364081,"Aspect","A Visual IDE for React",134,[1044,1045,1046,1047,1048],"react","visual editor","ui builder","react components","low code","tscepo","dev.aspect.app","5333235313353541534332034431401333053131","https:\u002F\u002Fdev.aspect.app",[704,1016,477,56],"Impressive product and polished design","Hard to use interaction, unclear how to add elements","visual ui builder",{"id":1058,"name":1059,"line":1060,"ai":8,"cat":168,"year":751,"points":1061,"comments":1062,"rec":13,"s":1063,"top":24,"kw":1064,"maker":1069,"domain":1070,"tier":23,"attempts":24,"strip":1071,"url":1072,"mix":1073,"praise":1075,"objection":1076,"sub":1077},21719575,"si78c","Space Invaders in C",478,105,0.22,[1065,1066,1067,1068],"space invaders","8080 emulator","retro game source code","c game","loadzero","blog.loadzero.com","3353300000030000003330555553055311531013","http:\u002F\u002Fblog.loadzero.com\u002Fblog\u002Fsi78c\u002F",[455,1074,15,103],14,"Clean, readable C code and detailed recreation","Build instructions and includes were initially broken on Ubuntu","arcade game recreation",{"id":1079,"name":1080,"line":1081,"ai":8,"cat":9,"year":10,"points":1061,"comments":1082,"rec":13,"s":1083,"top":24,"kw":1084,"maker":1090,"domain":1091,"tier":23,"attempts":154,"strip":1092,"url":1093,"mix":1094,"praise":1095,"objection":1096,"sub":1097},23101869,"HPI","Interface for all digital aspects of my life",93,0.36,[1085,1086,1087,1088,1089],"personal data","quantified self","data export","sqlite","python","karlicoss","beepb00p.xyz","5000530010505000005503305505335531551105","https:\u002F\u002Fbeepb00p.xyz\u002Fhpi.html",[56,348,24,109],"Thought-provoking and useful approach to personal data","Privacy concerns about aggregating personal data","personal data archive",{"id":1099,"name":1100,"line":1101,"ai":8,"cat":9,"year":869,"points":1102,"comments":949,"rec":13,"s":1103,"top":24,"kw":1104,"maker":1109,"domain":1110,"tier":23,"attempts":24,"strip":1111,"url":1112,"mix":1113,"praise":1114,"objection":1115,"sub":1116},15596304,"Airborn","Private Google Docs Alternative",469,-0.14,[1105,1106,1107,1108],"encrypted documents","google docs alternative","private document editor","client-side encryption","twiss","airbornos.com","1312532111410522215535552112411113321200","https:\u002F\u002Fwww.airbornos.com\u002F",[133,1016,109,392],"Interface available in Esperanto and RTL support","Service Worker trust model means the server must still be trusted","online document editor",{"id":1118,"name":1119,"line":1120,"ai":8,"cat":572,"year":143,"points":1121,"comments":1122,"rec":121,"s":694,"top":154,"kw":1123,"maker":1128,"domain":129,"tier":23,"attempts":24,"strip":1129,"url":1130,"mix":1131,"praise":1132,"objection":1133,"sub":1134},40456236,"Dataherald","We open sourced our entire text-to-SQL product",464,144,[1124,1125,1126,1127],"text-to-sql","natural language database","llm sql agent","open source","aazo11","3033553233041515300433433543210134134333","https:\u002F\u002Fgithub.com\u002FDataherald\u002Fdataherald",[83,647,15,348],"Useful for non-technical users and analysts who want first-draft SQL","Accuracy and correctness are not guaranteed, risking wrong business numbers","text-to-sql engine",{"id":1136,"name":1137,"line":1138,"ai":8,"cat":296,"year":274,"points":1139,"comments":850,"rec":121,"s":277,"top":154,"kw":1140,"maker":1145,"domain":1137,"tier":23,"attempts":109,"strip":1146,"url":1147,"mix":1148,"praise":1149,"objection":1150,"sub":1151},43816419,"screenrecorder.me","A web-based, free alternative to Screen Studio",462,[1141,1142,1143,1144],"screen recorder","browser screen recording","screen studio alternative","product demo video","johnwheeler","5300351321310333303350510013513351554400","https:\u002F\u002Fwww.screenrecorder.me",[455,724,472,30],"Looks useful and a welcome alternative to Screen Studio","Output quality and rendering artifacts","screen recording",{"id":1153,"name":1154,"line":1155,"ai":8,"cat":38,"year":143,"points":1156,"comments":1157,"rec":13,"s":146,"top":154,"kw":1158,"maker":1163,"domain":1164,"tier":23,"attempts":154,"strip":1165,"url":1166,"mix":1167,"praise":1168,"objection":1169,"sub":1170},40300126,"GrafyChat","A non-linear UI for ChatGPT",459,130,[1159,1160,1161,1162],"chatgpt interface","node based chat","ai canvas","byok llm client","setnone","grafychat.com","1503010311113343553535355134353533552500","https:\u002F\u002Fwww.grafychat.com",[724,208,103,56],"Bring-your-own-key approach and no subscription model","Closed source, so no way to verify privacy or telemetry","chat interface",{"id":1172,"name":1173,"line":1174,"ai":8,"cat":38,"year":143,"points":1175,"comments":1176,"rec":121,"s":1177,"top":154,"kw":1178,"maker":1184,"domain":129,"tier":23,"attempts":24,"strip":1185,"url":1186,"mix":1187,"praise":1188,"objection":1189,"sub":1190},42174829,"FastGraphRAG","Better RAG using good old PageRank",457,119,-0.11,[1179,1180,1181,1182,1183],"graphrag","rag","knowledge graph","pagerank","retrieval","liukidar","0305000050350301013230003353333433050011","https:\u002F\u002Fgithub.com\u002Fcirclemind-ai\u002Ffast-graphrag",[498,765,15,103],"Useful idea applying PageRank to graph retrieval","Documentation in README is thin on how it works","retrieval augmented generation",{"id":1192,"name":1193,"line":1194,"ai":8,"cat":296,"year":869,"points":1195,"comments":615,"rec":121,"s":487,"top":24,"kw":1196,"maker":1201,"domain":129,"tier":23,"attempts":154,"strip":1202,"url":1203,"mix":1204,"praise":1205,"objection":1206,"sub":1207},15429390,"fd","A simple, fast and user-friendly alternative to find, written in Rust",456,[1197,737,1198,1199,1200],"find alternative","file search","gitignore","command line","sharkdp","5233313005450000111420004344154033035103","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Ffd",[56,230,15,606],"Simple, sensible defaults that are easy to learn","Not a drop-in replacement for find; lacks -exec, -delete, -mtime","file search cli",{"id":1209,"name":1210,"line":1211,"ai":8,"cat":38,"year":192,"points":1195,"comments":335,"rec":121,"s":1212,"top":24,"kw":1213,"maker":1218,"domain":1219,"tier":23,"attempts":24,"strip":1220,"url":1221,"mix":1222,"praise":1223,"objection":1224,"sub":1225},16535358,"Mathpix","Convert screenshots of equations to LaTeX",0.08,[1214,1215,1216,1217],"latex ocr","equation recognition","handwriting to latex","math ocr","slbenfica","mathpix.com","3010003303523333531453305113433353510100","https:\u002F\u002Fmathpix.com\u002F",[455,183,109,30],"Impressive accuracy on printed and simple handwritten equations.","Fails on complex handwriting, multiline equations and some symbols.","ocr for math",{"id":1227,"name":1228,"line":1228,"ai":8,"cat":168,"year":274,"points":1229,"comments":1230,"rec":380,"s":675,"top":154,"kw":1231,"maker":1237,"domain":129,"tier":23,"attempts":24,"strip":1238,"url":1239,"mix":1240,"praise":1241,"objection":1242,"sub":1243},42644168,"Factorio Blueprint Visualizer",450,104,[1232,1233,1234,1235,1236],"factorio","blueprint","visualizer","factorio 2.0","space age","piebro","5503355000050000000000000000005400000553","https:\u002F\u002Fgithub.com\u002Fpiebro\u002Ffactorio-blueprint-visualizer",[606,109,251,24],"Artistic, colourful take on factories","Does not show production rates or bottlenecks yet","game companion tool",{"id":1245,"name":1246,"line":1247,"ai":8,"cat":296,"year":143,"points":1248,"comments":369,"rec":13,"s":1249,"top":154,"kw":1250,"maker":1256,"domain":1257,"tier":23,"attempts":24,"strip":1258,"url":1259,"mix":1260,"praise":1261,"objection":1262,"sub":1263},40869877,"Xcapture-BPF","like Linux top, but with Xray vision",447,0.31,[1251,1252,1253,1254,1255],"ebpf","linux performance","bcc","process monitoring","tracing","tanelpoder","0x.tools","000000050000305500000000000000300000000","https:\u002F\u002F0x.tools\u002F",[154,15,15,251],"BCC tools helped debug real production issues.","BCC is clunky and has kernel header compatibility issues on some distros.","performance profiling",{"id":1265,"name":1266,"line":1267,"ai":8,"cat":296,"year":377,"points":1268,"comments":1269,"rec":121,"s":950,"top":24,"kw":1270,"maker":1275,"domain":129,"tier":23,"attempts":154,"strip":1276,"url":1277,"mix":1278,"praise":1280,"objection":1281,"sub":1282},48169874,"Semble","Code search for agents that uses 98% fewer tokens than grep",445,151,[1271,1272,1273,1274,934],"code search","mcp server","semantic code search","bm25","Bibabomas","1301530003103334553505413133311433331344","https:\u002F\u002Fgithub.com\u002FMinishLab\u002Fsemble",[56,1279,154,1074],43,"Fast indexing and queries, good retrieval quality versus existing tools","Token savings may not translate to lower cost or faster end-to-end agent work","code search for agents",{"id":1284,"name":1285,"line":1286,"ai":8,"cat":191,"year":1287,"points":1288,"comments":1289,"rec":13,"s":1290,"top":24,"kw":1291,"maker":1296,"domain":129,"tier":23,"attempts":24,"strip":1297,"url":1298,"mix":1299,"praise":1300,"objection":1301,"sub":211},11019922,"3D Vector Graphics","The texturing just helps your eye \"fill in the gaps.\" As far as difficulty, I just don't know of a general…",2016,441,56,0.33,[1292,1293,200,1294,1295],"3d vector graphics","go","hidden line removal","cairo","fogleman","3030300300035030033100305305553055333305","https:\u002F\u002Fgithub.com\u002Ffogleman\u002Fln",[606,83,251,154],"Impressive and fun 3D geometry work","Name 'ln' collides with the Unix ln command, hurting search",{"id":1303,"name":1304,"line":1304,"ai":8,"cat":65,"year":10,"points":1288,"comments":1305,"rec":121,"s":487,"top":154,"kw":1306,"maker":1311,"domain":1312,"tier":23,"attempts":24,"strip":1313,"url":1314,"mix":1315,"praise":1316,"objection":1317,"sub":1318},24309237,"Healthcare Is Dumb",283,[1307,1308,1309,1310],"student health insurance","cheap health insurance","university health plan","health insurance hack","antcas","healthcareisdumb.com","0000000000003300000000000033142005335222","https:\u002F\u002Fhealthcareisdumb.com\u002F",[103,107,15,498],"Clever loophole that exposes healthcare costs","Students must stay enrolled; coverage ends when they leave school","health insurance comparison",{"id":1320,"name":1321,"line":1322,"ai":8,"cat":142,"year":39,"points":1323,"comments":1324,"rec":13,"s":1325,"top":154,"kw":1326,"maker":1332,"domain":1333,"tier":23,"attempts":24,"strip":1334,"url":1335,"mix":1336,"praise":1337,"objection":1338,"sub":1339},38506166,"Plantarium","Simulate 3D plants in the browser",439,49,0.38,[1327,1328,1329,1330,1331],"procedural generation","3d plants","node graph editor","webgl","obj export","jimfx","plant.max-richter.dev","5050101355030303030003505030500155555355","https:\u002F\u002Fplant.max-richter.dev",[1074,348,15,154],"Node graph editor is well done","Calling it a simulation is misleading; it is a procedural model","procedural 3d plant generator",{"id":1341,"name":1342,"line":1343,"ai":8,"cat":38,"year":377,"points":1344,"comments":1345,"rec":380,"s":595,"top":24,"kw":1346,"maker":1351,"domain":129,"tier":23,"attempts":154,"strip":1352,"url":1353,"mix":1354,"praise":1355,"objection":1356,"sub":1347},47503617,"sentrysearch","Gemini can now natively embed video, so I built sub-second video search",438,108,[1347,1348,1349,1350,511],"video search","semantic search","gemini embedding","dashcam footage","sohamrj","3350033005055553333455333535353333000005","https:\u002F\u002Fgithub.com\u002Fssrajadh\u002Fsentrysearch",[83,723,15,251],"Native video embedding is impressive and useful for dashcam and home security footage","Surveillance and privacy concerns about AI indexing camera feeds",{"id":1358,"name":1359,"line":1360,"ai":8,"cat":296,"year":192,"points":1361,"comments":674,"rec":42,"s":1362,"top":24,"kw":1363,"maker":1368,"domain":1369,"tier":23,"attempts":154,"strip":1370,"url":1371,"mix":1372,"praise":1373,"objection":1374,"sub":1375},17618059,"Layoutit","An interactive CSS Grid generator",437,0.07,[1364,1365,1366,1367],"css grid","grid generator","css layout","visual css editor","rofko","layoutit.com","0010300000000003313350015513515330033015","http:\u002F\u002Flayoutit.com\u002Fgrid",[477,477,24,77],"Visual click interactions for defining grid areas are good","Buggy when editing and reshaping nested grids","css grid generator",{"id":1377,"name":1378,"line":1379,"ai":8,"cat":400,"year":169,"points":1380,"comments":1381,"rec":13,"s":316,"top":154,"kw":1382,"maker":1388,"domain":129,"tier":23,"attempts":24,"strip":1389,"url":1390,"mix":1391,"praise":1392,"objection":1393,"sub":1394},29513547,"federalist","Decentralized, Mutable, Serverless Torrent Swarm Websites",433,186,[1383,1384,1385,1386,1387],"bittorrent","decentralized websites","handshake domains","webtorrent","serverless hosting","publiush","5010000001015533543243035000043331505221","https:\u002F\u002Fgithub.com\u002Fpubliusfederalist\u002Ffederalist",[541,562,154,1074],"Clever combination of existing decentralization technologies","Censorship resistance claims overstated; blocking and filtering still possible","peer-to-peer website hosting",{"id":1396,"name":1397,"line":1398,"ai":8,"cat":526,"year":143,"points":506,"comments":1399,"rec":121,"s":1400,"top":154,"kw":1401,"maker":1407,"domain":1408,"tier":23,"attempts":24,"strip":1409,"url":1410,"mix":1411,"praise":1412,"objection":1413,"sub":1414},40273470,"GetAnyPlant","A free site to explore and discover 6k plants",132,0.25,[1402,1403,1404,1405,1406],"plant database","houseplant care","buy plants online","plant wishlist","plant search","ryebread777","getanyplant.com","1003555334333515533353133553553551313303","https:\u002F\u002Fwww.getanyplant.com\u002Fplants",[841,110,154,477],"Clean design and UI","Search is weak, misses common names and quoted names","plant shopping and discovery",{"id":1416,"name":1417,"line":1418,"ai":8,"cat":296,"year":377,"points":1419,"comments":1420,"rec":42,"s":1421,"top":24,"kw":1422,"maker":1427,"domain":129,"tier":23,"attempts":24,"strip":1428,"url":1429,"mix":1430,"praise":1431,"objection":1432,"sub":1433},50018817,"big-arrow-on-the-screen","Let your AI agents paint big arrows, boxes and text on your screen",421,194,-0.06,[1423,1424,738,1425,1426],"ai agents","screen overlay","screen annotation","agent skill","franze","4430001003310000013542033055523222223125","https:\u002F\u002Fgithub.com\u002Ffranzenzenhofer\u002Fbig-arrow-on-the-screen",[347,107,15,724],"Useful for tutorials, remote help and elderly users","Pointing overlay solves a problem that doesn't need an agent","agent screen annotation overlay",{"id":1435,"name":1436,"line":1437,"ai":8,"cat":216,"year":39,"points":1438,"comments":1439,"rec":13,"s":1440,"top":154,"kw":1441,"maker":1447,"domain":1448,"tier":23,"attempts":103,"strip":1449,"url":1450,"mix":1451,"praise":1452,"objection":1453,"sub":1454},38365638,"Pickcode","New visual language for teaching kids to code",420,170,-0.05,[1442,1443,1444,1445,1446],"kids coding","learn programming","visual programming","python for kids","structured editor","csmeyer","pickcode.io","3010120000005510513231300032354410100013","https:\u002F\u002Fpickcode.io",[30,704,15,56],"Polished design and attention to detail","Editing expressions is clumsy and syntax errors are still possible","programming education for kids",{"id":1456,"name":1457,"line":1458,"ai":8,"cat":168,"year":143,"points":1438,"comments":1459,"rec":121,"s":277,"top":154,"kw":1460,"maker":1465,"domain":129,"tier":23,"attempts":24,"strip":1466,"url":1467,"mix":1468,"praise":1469,"objection":1470,"sub":1471},41915958,"Counter-Strike Football","Open-source Counter-Strike-like game",168,[1461,1462,1463,1464,446],"open source game","counter-strike","php game server","electron game","solcloud","5033333000331133335100500000434122335323","https:\u002F\u002Fgithub.com\u002Fsolcloud\u002FCounter-Strike",[30,765,251,30],"Impressive that a shooter is built on PHP and Electron","No license file for much of the discussion, so not truly open source","multiplayer fps game",{"id":1473,"name":1474,"line":1475,"ai":8,"cat":296,"year":869,"points":1476,"comments":1269,"rec":13,"s":1477,"top":24,"kw":1478,"maker":1484,"domain":1485,"tier":23,"attempts":24,"strip":1486,"url":1487,"mix":1488,"praise":1489,"objection":1490,"sub":1479},14254357,"Cone","My first native iOS app – Cone, a real time color picker",418,0.26,[1479,1480,1481,1482,1483],"color picker","color names","camera color picker","colorblind","hex color","_kush","coneapp.io","5235535453053350113351141331343535451345","https:\u002F\u002Fconeapp.io",[369,230,15,704],"Beautiful, simple design","App size of about 30MB is too large",{"id":1492,"name":1493,"line":1494,"ai":8,"cat":142,"year":169,"points":1476,"comments":1495,"rec":13,"s":792,"top":154,"kw":1496,"maker":1501,"domain":1502,"tier":23,"attempts":24,"strip":1503,"url":1504,"mix":1505,"praise":1506,"objection":1507,"sub":1498},28329444,"metameme","A meme creator that makes around $4k a month",217,[1497,1498,1499,1500],"meme generator","meme maker","gif meme","image editor","par","metameme.app","4345244530133123550255021335212513500555","https:\u002F\u002Fmetameme.app\u002F",[723,250,154,160],"Well-designed editor with anchored labels","Subscriptions for a meme generator seem unjustified",{"id":1509,"name":1510,"line":1511,"ai":8,"cat":296,"year":274,"points":1512,"comments":1513,"rec":13,"s":1514,"top":154,"kw":1515,"maker":1518,"domain":129,"tier":23,"attempts":24,"strip":1519,"url":1520,"mix":1521,"praise":1523,"objection":1524,"sub":1525},44127653,"Onlook","Open-source, visual-first Cursor for designers",408,81,-0.1,[1045,1044,1516,1127,1517],"tailwind","design to code","hoakiet98","5531135131033535001533131131013511113102","https:\u002F\u002Fgithub.com\u002Fonlook-dev\u002Fonlook",[348,208,15,1522],18,"Visual layer on top of real code is a strong fit for designers who also code.","Beta often fails to generate or apply code; rate limits from CodeSandbox blocked sessions.","visual code editor",{"id":1527,"name":1528,"line":1529,"ai":8,"cat":168,"year":39,"points":1530,"comments":1531,"rec":121,"s":402,"top":154,"kw":1532,"maker":1537,"domain":1538,"tier":23,"attempts":24,"strip":1539,"url":1540,"mix":1541,"praise":1542,"objection":1543,"sub":1544},37704760,"overflow","RISC-V assembly tabletop board game (hack your opponent)",400,54,[1533,1534,1535,1536],"risc-v assembly","buffer overflow","board game","assembly programming","jackdoe","punkx.org","5000000000500050010300303003553030533300","https:\u002F\u002Fpunkx.org\u002Foverflow\u002F",[498,348,251,24],"Fun and original way to learn assembly","Gender and age assumptions about the daughter's interest","tabletop board game",{"id":1546,"name":1547,"line":1548,"ai":8,"cat":142,"year":169,"points":1549,"comments":1550,"rec":13,"s":1551,"top":109,"kw":1552,"maker":1557,"domain":129,"tier":23,"attempts":24,"strip":1558,"url":1559,"mix":1560,"praise":1561,"objection":1562,"sub":1563},28221904,"DIY-ai-art","An AI art installation at home generating new pieces on the fly",399,153,0.18,[1553,1554,1555,1556],"generative art","stylegan","ai art installation","jetson xavier","mfi","0533333435552023535555353252503233545321","https:\u002F\u002Fgithub.com\u002Fmaxvfischer\u002FDIY-ai-art",[434,183,24,1074],"Detailed build guide and documentation","Artwork quality is underwhelming","generative art installation",{"id":1565,"name":1566,"line":1567,"ai":8,"cat":38,"year":751,"points":1568,"comments":1569,"rec":13,"s":1570,"top":154,"kw":1571,"maker":1576,"domain":1577,"tier":23,"attempts":154,"strip":1578,"url":1579,"mix":1580,"praise":1581,"objection":1582,"sub":1583},20624140,"Zecoda","I trained a deep learning model to build sites for me",397,124,-0.13,[1572,1573,1574,1575],"sketch to code","design to html","front end automation","deep learning","johndamaia","zecoda.com","1333105535131010150315135133144531153111","https:\u002F\u002Fzecoda.com\u002F",[1074,765,24,208],"Interesting approach to a hard problem","Meetings and ambiguous designs not solved by automation","design to code generation",{"id":1585,"name":1586,"line":1587,"ai":8,"cat":572,"year":274,"points":1568,"comments":1588,"rec":13,"s":1589,"top":109,"kw":1590,"maker":1592,"domain":1586,"tier":23,"attempts":24,"strip":1593,"url":1594,"mix":1595,"praise":1596,"objection":1597,"sub":1598},46442245,"exopriors.com","Use Claude Code to Query 600 GB Indexes over Hacker News, ArXiv, etc.",142,0.13,[511,1124,1348,935,1591],"hacker news search","Xyra","5535310531105105335312555333000000000011","https:\u002F\u002Fexopriors.com\u002Fscry",[83,208,251,30],"Generating SQL rather than a black-box chatbot is a good research approach","Security risk from network egress and pasted embedded API key","public corpus search with vector embeddings",{"id":1600,"name":1601,"line":1602,"ai":8,"cat":65,"year":1287,"points":1603,"comments":1604,"rec":121,"s":95,"top":24,"kw":1605,"maker":1611,"domain":1612,"tier":23,"attempts":154,"strip":1613,"url":1614,"mix":1615,"praise":1616,"objection":1617,"sub":1618},12404871,"Duet","A self-hosted alternative to Trello, Basecamp, and Freshbooks",396,154,[1606,1607,1608,1609,1610],"self-hosted","project management","invoicing","client portal","trello alternative","23andwalnut","duetapp.com","3353003523312301123031331251123333531031","https:\u002F\u002Fduetapp.com",[30,1279,109,841],"Polished, clean UI and design","Self-hosting raises privacy and backup concerns versus cloud","project management and invoicing",{"id":1620,"name":1621,"line":1622,"ai":8,"cat":9,"year":92,"points":1623,"comments":442,"rec":13,"s":298,"top":109,"kw":1624,"maker":1629,"domain":1630,"tier":23,"attempts":24,"strip":1631,"url":1632,"mix":1633,"praise":1634,"objection":1635,"sub":1636},32637996,"KTool","A tool to help you read Hacker News on Kindle",393,[1625,1626,1627,1628],"hacker news kindle","send to kindle","read later","epub download","longnguyen","ktool.io","0035000005000031330000335335153053515333","https:\u002F\u002Fktool.io\u002Fhacker-news-to-kindle",[455,30,24,472],"Useful, slick setup process and a good alternative to Amazon's send-to-Kindle","Subscription price is too high for occasional use","reading tool",{"id":1638,"name":1639,"line":1640,"ai":8,"cat":296,"year":377,"points":1623,"comments":1641,"rec":121,"s":487,"top":154,"kw":1642,"maker":1648,"domain":129,"tier":23,"attempts":24,"strip":1649,"url":1650,"mix":1651,"praise":1652,"objection":1653,"sub":1654},47920787,"dirac","OSS Agent I built topped the TerminalBench on Gemini-3-flash-preview",148,[1643,1644,1645,1646,1647],"coding agent","terminal bench","hash-anchored edits","tree-sitter","ai harness","GodelNumbering","3000024020333000025330153131533353315333","https:\u002F\u002Fgithub.com\u002Fdirac-run\u002Fdirac",[498,81,109,77],"Hash-anchored edits and harness design praised as well done.","Telemetry endpoint is opt-out and raised privacy concerns.","ai coding agent",{"id":1656,"name":1657,"line":1658,"ai":8,"cat":117,"year":143,"points":1659,"comments":55,"rec":380,"s":1477,"top":109,"kw":1660,"maker":1666,"domain":1667,"tier":23,"attempts":24,"strip":1668,"url":1669,"mix":1670,"praise":1671,"objection":1672,"sub":1673},41603865,"AnySkin","Put this touch sensor on a robot and learn super precise tasks",390,[1661,1662,1663,1664,1665],"tactile sensor","robotics","magnetometer","touch sensing","robot skin","raunaqmb","any-skin.github.io","3305305351533300503555033335330003333533","https:\u002F\u002Fany-skin.github.io",[348,347,154,15],"Replaceable skin design makes manufacturing and maintenance practical","Access to the magnetizing machine makes fabrication hard","robotic touch sensor",{"id":1675,"name":1676,"line":1677,"ai":8,"cat":400,"year":377,"points":1659,"comments":1678,"rec":13,"s":551,"top":154,"kw":1679,"maker":1685,"domain":1686,"tier":23,"attempts":24,"strip":1687,"url":1688,"mix":1689,"praise":1691,"objection":1692,"sub":1693},48223362,"Freenet","A peer-to-peer platform for decentralized apps",271,[1680,1681,1682,1683,1684],"peer-to-peer","decentralized apps","webassembly","group chat","crdt","sanity","freenet.org","2011301113003300111013131134445515523325","https:\u002F\u002Ffreenet.org\u002F",[107,1690,15,31],41,"Commenters engage with the CRDT-style merge design","Name reuse from the original Freenet (Hyphanet) is controversial","peer-to-peer network platform",{"id":1695,"name":1696,"line":1697,"ai":8,"cat":296,"year":751,"points":1698,"comments":1699,"rec":121,"s":694,"top":154,"kw":1700,"maker":1706,"domain":129,"tier":23,"attempts":24,"strip":1707,"url":1708,"mix":1709,"praise":1710,"objection":1711,"sub":1712},20182141,"Slim","Build and run tiny VMs from Dockerfiles",389,139,[1701,1702,1703,1704,1705],"dockerfile to vm","micro vm","unikernel","rootfs","kernel image","chrisparnin","3330000000000515330000333251433352130205","https:\u002F\u002Fgithub.com\u002Fottomatica\u002Fslim",[455,347,15,455],"Useful for CI, local cluster testing and PXE\u002Fdatacenter images","Confusion about why Docker is needed to build a VM and how it differs from containers","vm image builder",{"id":1714,"name":1715,"line":1716,"ai":8,"cat":296,"year":1287,"points":1717,"comments":540,"rec":13,"s":1718,"top":24,"kw":1719,"maker":1723,"domain":129,"tier":23,"attempts":24,"strip":1724,"url":1725,"mix":1726,"praise":1727,"objection":1728,"sub":1729},12097856,"m-cli","Swiss Army Knife for Mac OS X",388,-0.27,[1720,1200,1721,1722],"mac os x","shell scripts","macos administration","rgcr","5303003055000031101100000300011100000130","https:\u002F\u002Fgithub.com\u002Frgcr\u002Fm-cli",[154,348,251,77],"Focused on Mac-specific tasks rather than cross-platform commands","Install method piped curl to shell and needs root for \u002Fusr\u002Flocal","command line utility",{"id":1731,"name":1732,"line":1733,"ai":8,"cat":142,"year":751,"points":1734,"comments":434,"rec":13,"s":1735,"top":154,"kw":1736,"maker":1741,"domain":1742,"tier":23,"attempts":24,"strip":1743,"url":1744,"mix":1745,"praise":1746,"objection":1747,"sub":1748},21887848,"Eschersket.ch","a symmetry drawing app to design custom wrapping paper",386,0.37,[1737,1738,1739,1740],"symmetry drawing","wrapping paper design","tessellation","pattern design","alevskaya","eschersket.ch","313110350055551355551555555","https:\u002F\u002Feschersket.ch",[83,24,24,472],"Fluid, fun and well executed drawing tool","Zazzle printing is very expensive","symmetry drawing tool",{"id":1750,"name":1751,"line":1752,"ai":8,"cat":38,"year":39,"points":1753,"comments":1176,"rec":121,"s":277,"top":154,"kw":1754,"maker":1760,"domain":129,"tier":23,"attempts":154,"strip":1761,"url":1762,"mix":1763,"praise":1764,"objection":1765,"sub":1766},38487199,"Unsloth","80% faster, 50% less memory, 0% loss of accuracy Llama finetuning",385,[1755,1756,1757,1758,1759],"llama finetuning","qlora","lora training","triton kernels","gpu memory","danielhanchen","3003133313303333303351353115033003300500","https:\u002F\u002Fgithub.com\u002Funslothai\u002Funsloth",[109,160,251,472],"Interesting results and excitement to try it.","Multi-GPU benchmarks look slower than single GPU, questioning the test.","llm finetuning",{"id":1768,"name":1769,"line":1770,"ai":8,"cat":216,"year":192,"points":1771,"comments":1772,"rec":121,"s":872,"top":154,"kw":1773,"maker":1778,"domain":1779,"tier":23,"attempts":24,"strip":1780,"url":1781,"mix":1782,"praise":1783,"objection":1784,"sub":1785},17286770,"Ancient Earth","Plot modern addresses on Earth 240M years ago",384,59,[1774,1775,1776,1777],"plate tectonics","paleogeography","ancient earth","gplates","typpo","dinosaurpictures.org","0330335330505335100331051353331305553503","http:\u002F\u002Fdinosaurpictures.org\u002Fancient-earth",[455,107,154,472],"Fun and educational way to see ancient continents","Mediterranean appears at 20M years, which conflicts with the Zanclean flood theory","geology visualization",{"id":1787,"name":1788,"line":1789,"ai":8,"cat":216,"year":143,"points":1771,"comments":194,"rec":13,"s":1790,"top":109,"kw":1791,"maker":1796,"domain":1797,"tier":23,"attempts":154,"strip":1798,"url":1799,"mix":1800,"praise":1801,"objection":1802,"sub":1803},39113879,"teachyourselfmath","I wished for a site with a growing list of math problems, I built it",0.21,[1792,1793,1794,1795],"math problems","math practice","latex","math pdf extraction","viveknathani_","teachyourselfmath.app","5003150331101101535003553553515533533513","https:\u002F\u002Fteachyourselfmath.app\u002F",[83,1522,24,348],"Clean UI and useful resource for practising problems","Problems are sometimes incomplete or missing information","math practice problems",{"id":1805,"name":1806,"line":1807,"ai":8,"cat":38,"year":39,"points":1808,"comments":1809,"rec":13,"s":1177,"top":154,"kw":1810,"maker":1815,"domain":1816,"tier":23,"attempts":24,"strip":1817,"url":1818,"mix":1819,"praise":1820,"objection":1821,"sub":1822},36064639,"Pixian","Image background removal without annoying subscriptions",383,115,[1811,1812,1813,1814],"background removal","image background remover","remove background api","pay as you go","jacobn","pixian.ai","1011353511313023225533131131453333315352","https:\u002F\u002Fpixian.ai\u002Fremove-image-backgrounds",[56,208,103,208],"Results are accurate and fast, especially for hair and portraits.","Free while in beta makes businesses wary of relying on it.","image background removal",{"id":1824,"name":1825,"line":1826,"ai":8,"cat":296,"year":274,"points":422,"comments":1827,"rec":380,"s":1828,"top":109,"kw":1829,"maker":1834,"domain":129,"tier":23,"attempts":24,"strip":1835,"url":1836,"mix":1837,"praise":1838,"objection":1839,"sub":1830},45590949,"Halloy","Modern IRC client",101,0.46,[1830,737,1831,1832,1833],"irc client","iced gui","libera chat","cross platform","culinary-robot","1330340050000000000053355355000015555554","https:\u002F\u002Fgithub.com\u002Fsquidowl\u002Fhalloy",[208,348,109,109],"Fast, smooth and highly configurable via TOML config","No accessibility support for screen readers yet",{"id":1841,"name":1842,"line":1843,"ai":8,"cat":191,"year":143,"points":1844,"comments":1845,"rec":13,"s":1846,"top":109,"kw":1847,"maker":1852,"domain":129,"tier":23,"attempts":498,"strip":1853,"url":1854,"mix":1855,"praise":1856,"objection":1857,"sub":1858},41284703,"PgQueuer","Transform PostgreSQL into a Job Queue",376,122,-0.07,[1848,1849,1850,1851],"postgresql job queue","python task queue","listen notify","skip locked","jeeybee","1133010530015053100500300000031000150100","https:\u002F\u002Fgithub.com\u002Fjanbjorge\u002FPgQueuer",[103,606,251,477],"Simplicity and fewer moving parts than a separate broker","Postgres used for everything is risky at high throughput (bloat, planner issues)","job queue library",{"id":1860,"name":1861,"line":1862,"ai":8,"cat":216,"year":39,"points":1863,"comments":442,"rec":13,"s":1735,"top":109,"kw":1864,"maker":1870,"domain":1871,"tier":23,"attempts":24,"strip":1872,"url":1873,"mix":1874,"praise":1875,"objection":1876,"sub":1877},34289581,"Futurecoder","A free interactive Python course for coding beginners",371,[1865,1866,1867,1868,1869],"python course","learn python","interactive python","python beginners","pyodide","alexmojaki","futurecoder.io","5555003500051513315100535500055531000000","https:\u002F\u002Ffuturecoder.io\u002F",[541,109,24,472],"Free, well-designed course with no account required","Browser compatibility issue with Edge Enhanced Security","coding course",{"id":1879,"name":1880,"line":1881,"ai":8,"cat":9,"year":192,"points":1882,"comments":1883,"rec":42,"s":1362,"top":154,"kw":1884,"maker":1890,"domain":1891,"tier":23,"attempts":24,"strip":1892,"url":1893,"mix":1894,"praise":1895,"objection":1896,"sub":1886},18599200,"Dark Reader extension","Dark mode for every website",369,175,[1885,1886,1887,1888,1889],"dark mode","browser extension","night mode","contrast","eye strain","alexanderby","darkreader.org","0220310030000053201131053541155531411141","http:\u002F\u002Fdarkreader.org\u002F",[704,160,348,160],"Fixes contrast well and is easy on the eyes","Uses a lot of CPU and slows page loads, especially in Firefox",{"id":1898,"name":1899,"line":1900,"ai":8,"cat":168,"year":92,"points":1901,"comments":1569,"rec":42,"s":950,"top":109,"kw":1902,"maker":1906,"domain":1907,"tier":23,"attempts":24,"strip":1908,"url":1909,"mix":1910,"praise":1911,"objection":1912,"sub":1913},30956775,"Eight Colors","A puzzle game in HTML5",368,[1903,638,1904,1905],"sliding puzzle","html5 game","rubik's cube puzzle","shubhamjain","eightcolors.net","3333150055321113321353241235424233155155","https:\u002F\u002Feightcolors.net",[434,326,83,347],"Fun and addictive; feels like a 2D Rubik's cube","Controls are confusing; shift key for sliding is unintuitive","puzzle game",1793991329621]