[{"data":1,"prerenderedAt":269},["ShallowReactive",2],{"maker-franciscop":3},[4,33,57,76,97,118,138,160,176,197,213,230,249],{"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":15,"strip":24,"url":25,"mix":26,"praise":31,"objection":32,"sub":17},8315616,"Picnic.css","A lightweight Bootstrap alternative",false,"dev_tools",2014,247,143,"mixed",-0.34,3,[17,18,19,20],"css framework","bootstrap alternative","lightweight css","normalize css","franciscop","picnicss.com","notable","3300031321331213311111135152110010111551","http:\u002F\u002Fpicnicss.com\u002F",[27,28,29,30],8,19,7,30,"Fails gracefully without CSS, good for sites needing old browser support","Keyboard and screen reader accessibility poor",{"id":34,"name":35,"line":36,"ai":8,"cat":37,"year":38,"points":39,"comments":15,"rec":40,"s":41,"top":42,"kw":43,"maker":21,"domain":48,"tier":49,"attempts":50,"strip":51,"url":52,"mix":53,"praise":55,"objection":-1,"sub":56},8914508,"drive-db","A Google spreadsheet database","data",2015,25,"quiet",null,41,[44,45,46,47],"google spreadsheet","database","spreadsheet api","google drive","github.com","shown",0,"050","https:\u002F\u002Fgithub.com\u002FFranciscoP\u002Fdrive-db",[54,50,50,50],1,"Commenters call the project great and awesome","spreadsheet database",{"id":58,"name":59,"line":60,"ai":8,"cat":9,"year":61,"points":62,"comments":63,"rec":40,"s":41,"top":64,"kw":65,"maker":21,"domain":48,"tier":49,"attempts":50,"strip":70,"url":71,"mix":72,"praise":73,"objection":74,"sub":75},10850240,"ianal","A npm license checker",2016,2,5,99,[66,67,68,69],"npm license checker","open source licenses","dependency licenses","license compliance","10510","https:\u002F\u002Fgithub.com\u002Ffranciscop\u002Fianal",[54,50,50,62],"nice tiny tool","name seems awkward","license checker",{"id":77,"name":78,"line":79,"ai":8,"cat":9,"year":61,"points":80,"comments":81,"rec":82,"s":83,"top":84,"kw":85,"maker":21,"domain":48,"tier":23,"attempts":50,"strip":90,"url":91,"mix":92,"praise":95,"objection":96,"sub":87},12302639,"pagex","Simple express-like routing for front-end",58,27,"roasted",-0.38,29,[86,87,88,89],"front-end routing","client-side router","express-like routing","page.js alternative","503010011111130303010105010","https:\u002F\u002Fgithub.com\u002Ffranciscop\u002Fpagex",[62,93,50,94],4,10,"Ergonomic API; parameters passed to callbacks","Too similar to page.js",{"id":98,"name":99,"line":100,"ai":8,"cat":101,"year":61,"points":102,"comments":103,"rec":82,"s":104,"top":105,"kw":106,"maker":21,"domain":48,"tier":23,"attempts":50,"strip":111,"url":112,"mix":113,"praise":115,"objection":116,"sub":117},12450684,"cookies.js","cookies.js, making cookies a delight to work with on the front-end","languages",122,46,-0.28,13,[107,108,109,110],"javascript cookies","front-end cookies","cookie library","browser cookies","0000003105001000000101030330000001010003","https:\u002F\u002Fgithub.com\u002Ffranciscop\u002Fcookies.js",[54,93,54,114],6,"Simple, prefer the API over alternatives","Syntax is confusing, e.g. setting multiple cookies with different options","browser cookie library",{"id":119,"name":120,"line":121,"ai":8,"cat":101,"year":61,"points":122,"comments":114,"rec":123,"s":124,"top":125,"kw":126,"maker":21,"domain":131,"tier":49,"attempts":50,"strip":132,"url":133,"mix":134,"praise":135,"objection":136,"sub":137},12897784,"Super DOM","Super DOM, manipulate the DOM like it's 2016",26,"debated",0.24,47,[127,128,129,130],"dom manipulation","javascript library","jquery alternative","proxy","superdom.site","355115","https:\u002F\u002Fsuperdom.site\u002F",[15,50,54,62],"Beautiful, natural way to work with the DOM","Requires modern browsers because Proxy cannot be polyfilled","dom manipulation library",{"id":139,"name":140,"line":141,"ai":8,"cat":9,"year":61,"points":142,"comments":143,"rec":13,"s":144,"top":145,"kw":146,"maker":21,"domain":151,"tier":23,"attempts":50,"strip":152,"url":153,"mix":154,"praise":157,"objection":158,"sub":159},12898366,"comments","Embed HN comments in your website",137,74,-0.02,12,[147,148,149,150],"embed comments","hacker news comments","disqus alternative","comment widget","comments.network","3031030101035113053300013311005335000150","https:\u002F\u002Fcomments.network\u002F",[63,155,62,156],11,9,"Clean look and customizable styling","Commenting on HN is limited to items under two weeks old","embeddable comment widget",{"id":161,"name":162,"line":163,"ai":8,"cat":9,"year":61,"points":29,"comments":114,"rec":40,"s":41,"top":164,"kw":165,"maker":21,"domain":170,"tier":49,"attempts":50,"strip":171,"url":172,"mix":173,"praise":174,"objection":175,"sub":166},13178212,"Paperdocs","Paperdocs, better documentation for the web",90,[166,167,168,169],"documentation framework","static docs","responsive documentation","javascript docs","francisco.io","300105","http:\u002F\u002Ffrancisco.io\u002Fpaperdocs\u002F",[54,54,50,54],"Mobile nav is a good feature","Does not work without JavaScript",{"id":177,"name":178,"line":179,"ai":8,"cat":101,"year":180,"points":181,"comments":182,"rec":13,"s":83,"top":93,"kw":183,"maker":21,"domain":189,"tier":190,"attempts":50,"strip":191,"url":192,"mix":193,"praise":-1,"objection":195,"sub":196},15624206,"Server.js","A modern Express alternative",2017,295,117,[184,185,186,187,188],"express alternative","node.js framework","async await","socket.io","helmet","serverjs.io","legend","1000000000005000000353310001150110113130","https:\u002F\u002Fserverjs.io\u002F",[93,145,54,194],14,"Pulls in over 200 dependencies and 37MB","web framework",{"id":198,"name":199,"line":200,"ai":8,"cat":101,"year":201,"points":202,"comments":203,"rec":123,"s":144,"top":204,"kw":205,"maker":21,"domain":207,"tier":23,"attempts":62,"strip":208,"url":209,"mix":210,"praise":211,"objection":212,"sub":128},17793375,"Umbrella JS","A 2.5kb jQuery alternative",2018,132,75,15,[129,128,127,206],"lightweight javascript","umbrellajs.com","0350050303105000001300030000000033350131","https:\u002F\u002Fumbrellajs.com\u002F",[63,94,50,63],"Small size makes it attractive versus jQuery","jQuery is no longer needed given modern browser APIs",{"id":214,"name":215,"line":216,"ai":8,"cat":101,"year":217,"points":155,"comments":15,"rec":40,"s":41,"top":218,"kw":219,"maker":21,"domain":224,"tier":49,"attempts":50,"strip":225,"url":226,"mix":227,"praise":228,"objection":-1,"sub":229},21049969,"use-tensorflow","A React Hook to use Tensorflow.js easily",2019,77,[220,221,222,223],"react hook","tensorflow.js","machine learning","javascript","npmjs.com","300","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fuse-tensorflow",[50,54,50,50],"Impressed that this is possible","react hook library",{"id":231,"name":232,"line":233,"ai":8,"cat":9,"year":234,"points":235,"comments":29,"rec":40,"s":41,"top":236,"kw":237,"maker":21,"domain":242,"tier":49,"attempts":50,"strip":243,"url":244,"mix":245,"praise":246,"objection":247,"sub":248},32788010,"content-parser","Extract Markdown, HTML or text from content-heavy websites",2022,49,39,[238,239,240,241],"html to markdown","article extraction","readability","web scraping api","content-parser.com","1303100","https:\u002F\u002Fcontent-parser.com\u002F",[50,62,50,62],"Commenters like the stripped-down web reading idea","Readability misses content on some pages, so it is finicky","web content extraction api",{"id":250,"name":251,"line":252,"ai":8,"cat":253,"year":254,"points":194,"comments":93,"rec":40,"s":41,"top":255,"kw":256,"maker":21,"domain":262,"tier":49,"attempts":50,"strip":263,"url":264,"mix":265,"praise":266,"objection":267,"sub":268},48606396,"Stocks Reader","Stocks Porfolio in a URL and Favicon","finance_crypto",2026,57,[257,258,259,260,261],"stock portfolio","stock ticker","favicon","stock prices","portfolio tracker","stocksreader.com","3550","https:\u002F\u002Fstocksreader.com\u002F",[62,54,50,50],"Clean, simple UI for comparing assets quickly","Data distribution and licensing concerns around Yahoo data","stock portfolio tracker",1793991198433]