[{"data":1,"prerenderedAt":241},["ShallowReactive",2],{"project-5965682":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":40,"post_text":41,"what":42,"said":68,"maker_in_thread":149,"shape":159,"grid":164,"attempts":201,"same_week":202,"maker_shows":37,"maker_hidden":233,"reader_version":234,"card":235},"5965682","Freader","An open source RSS Reader built with Node.js and Angular","title","Show HN: Freader, an open source RSS Reader built with Node.js and Angular","http:\u002F\u002Fgeekuillaume.github.io\u002FFreader\u002F","geekuillaume.github.io","geekuillaume",1372598513,2013,45,17,563,1739,33,"shown","productivity","rss reader","web_app",[21,24,25,26,27],"feed reader","node.js","angular","open source","roasted",-0.545,{"positive":31,"neutral":32,"mixed":32,"critical":33},0,1,7,9,{"design":36,"privacy":38,"execution":39},{"positive":31,"critical":37},3,{"positive":31,"critical":32},{"positive":31,"critical":37},[37,31,32,31,31,32,31,32,37,31,32,32,31,32,31,32,31],null,{"problem":43,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":49,"openness":65,"stage":66,"team_size":67},{"value":44,"source":45,"evidence":46},"Reading and following RSS feeds in one place","inferred",[47],{"id":48},"post",[50,55,59],{"value":51,"source":52,"evidence":53},"Node.js","maker",[54],{"id":48},{"value":56,"source":52,"evidence":57},"Angular",[58],{"id":48},{"value":60,"source":52,"evidence":61},"MongoDB",[62],{"id":63,"by":11,"text":64},"5966158","MongoDB runs everywhere and in a very short time and there is a lot of service providing free databases for it. For example, the demo App is using MogoLab free offer and it's…","open_source","beta","unknown",{"praise":69,"objections":82,"requests":123,"questions":136,"alternatives":148},[70,78],{"value":71,"source":72,"evidence":73},"Built with Angular, useful for learning auth patterns","commenter",[74],{"id":75,"by":76,"text":77},"5966573","tharshan09","I like that it is built using angular so I can get some tips on how authentication is done. However I think the UI needs work, for example expanding a feed button is all the way…",{"value":79,"source":72,"evidence":80},"Nice work overall",[81],{"id":75,"by":76,"text":77},[83,90,97,108,115],{"value":84,"source":72,"evidence":85},"Feeds are fetched on the fly, so items can be missed",[86],{"id":87,"by":88,"text":89},"5967200","eertami","The issue with this is that, say a feed contains 10 items, and that between checking the feed more than 10 items are posted, you will miss items.",{"value":91,"source":72,"evidence":92},"Passwords stored in plaintext",[93],{"id":94,"by":95,"text":96},"5966920","onestone","Looking at the source (userDB.js) it seems that passwords are stored as plaintext. A major disappointment.",{"value":98,"source":72,"evidence":99},"Fails on Atom feeds and some RSS feeds",[100,104],{"id":101,"by":102,"text":103},"5966149","marijn","It crashes on any Atom feed. It seems the code in scrapper.js only handles RSS, and even there makes some assumptions that might not hold for all feeds.",{"id":105,"by":106,"text":107},"5965874","petrel","It is not working and says invalid feed even though the address is correct and works with all other readers.",{"value":109,"source":72,"evidence":110},"Requires MongoDB for a small app",[111],{"id":112,"by":113,"text":114},"5966135","susi22","I wish it didn't have the MongoDB requirement. IMO something with a few thousand messages can easily be done w\u002Fo a full blown database.",{"value":116,"source":72,"evidence":117},"UI bugs and green background",[118,119],{"id":75,"by":76,"text":77},{"id":120,"by":121,"text":122},"5965914","kbar13","the green background is gonna get annoying, fast :(",[124,128,132],{"value":125,"source":72,"evidence":126},"Support Atom feeds",[127],{"id":101,"by":102,"text":103},{"value":129,"source":72,"evidence":130},"Better UI layout and feed expansion",[131],{"id":75,"by":76,"text":77},{"value":133,"source":72,"evidence":134},"Hash passwords",[135],{"id":94,"by":95,"text":96},[137,141],{"value":138,"source":72,"evidence":139},"Why use a database for so little data",[140],{"id":112,"by":113,"text":114},{"value":142,"source":72,"evidence":143},"Whether feeds are fetched by cron jobs",[144],{"id":145,"by":146,"text":147},"5965871","skarmklart","Are you using NodeJs for the cron jobs too? (I am assuming you have cron jobs running to fetch feeds periodically). Edit: I looked and it seems you are fetching the feeds…",[],{"comments":33,"answered":150,"key":151},2,[152,155,156],{"id":153,"text":154},"5967075","Yes, I aggre, it still need some work to be good, any help is welcome !",{"id":63,"text":64},{"id":157,"text":158},"5967071","Yep, I still need to hash it before saving it. I found some libs doing that but I wanted to write an hashing function with salt without having to rely on a lib. Need some work !",{"commenters":160,"max_depth":161,"maker_replies":33,"first_comment_mins":162,"lifespan_hours":163},11,4,61,8,[165,167,169,171,173,177,179,181,185,187,189,190,192,194,195,197,199],[75,31,37,166,76,31],"project\u002Fmixed\u002Fdesign",[153,31,31,168,11,32],"maker\u002Fneutral\u002Fexecution",[112,32,32,170,113,31],"project\u002Fcritical\u002Fdesign",[63,32,31,172,11,32],"maker\u002Fneutral\u002Fdesign",[174,32,31,175,176,31],"5967366","commenter\u002Fneutral\u002Fdesign","lucian1900",[94,150,32,178,95,31],"project\u002Fcritical\u002Fprivacy",[157,150,31,180,11,32],"maker\u002Fneutral\u002Fprivacy",[182,37,32,183,184,31],"5966708","project\u002Fcritical\u002Fexecution","beauxespirits",[145,161,37,186,146,31],"project\u002Fneutral\u002Fdesign",[188,161,31,186,11,32],"5966064",[87,161,32,170,88,31],[105,191,32,183,106,31],5,[193,191,31,168,11,32],"5966066",[101,191,32,183,102,31],[196,191,31,168,11,32],"5966202",[120,198,32,170,121,31],6,[200,198,31,172,11,32],"5966075",[],[203,208,213,218,223,228],{"id":204,"name":205,"points":206,"category":207},"5981446","Streak Secure Gmail",170,"security_privacy",{"id":209,"name":210,"points":211,"category":212},"5985793","HN Jobs",149,"web_saas",{"id":214,"name":215,"points":216,"category":217},"5969535","Chicken chicken chicken",147,"languages",{"id":219,"name":220,"points":221,"category":222},"5973595","Glass Tesla",96,"consumer_social",{"id":224,"name":225,"points":226,"category":227},"5965673","Kite",95,"dev_tools",{"id":229,"name":230,"points":231,"category":232},"5986176","Bitcoins with Friends",67,"finance_crypto",false,"v2",{"id":236,"name":5,"line":6,"ai":233,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":237,"top":18,"kw":238,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":239,"url":9,"mix":240,"praise":71,"objection":84,"sub":21},5965682,-0.55,[21,24,25,26,27],"30100101301101010",[31,32,32,33],1794036507853]