[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"project-20379026":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":46,"post_text":48,"what":49,"said":78,"maker_in_thread":192,"shape":200,"grid":204,"attempts":313,"same_week":314,"maker_shows":212,"maker_hidden":341,"reader_version":342,"card":343},"20379026","Comntr","a widget that adds comments to your page","title","Show HN: Comntr – a widget that adds comments to your page","https:\u002F\u002Fcomntr.github.io\u002Fabout\u002F","comntr.github.io","comntr",1562546566,2019,84,49,574,2195,27,"notable","dev_tools","comment widget","library",[24,25,26,27,28],"comments widget","static site comments","self-hosted comments","spam filter","embeddable comments","mixed",-0.225,{"positive":32,"neutral":33,"mixed":34,"critical":35},4,9,0,10,23,{"execution":38,"docs":40,"idea":41,"design":44,"privacy":45},{"positive":39,"critical":39},1,{"positive":34,"critical":34},{"positive":42,"critical":43},3,7,{"positive":34,"critical":39},{"positive":34,"critical":39},[39,34,34,34,42,47,42,34,47,34,34,39,39,42,34,34,34,42,42,34,34,39,39,34,34,34,34,34,34,39,34,42,39,34,47,39,42,42,39,34],5,null,{"problem":50,"audience":48,"pricing":48,"motivation":48,"time_to_build":48,"stack":61,"openness":76,"stage":77,"team_size":77},{"value":51,"source":52,"evidence":53},"Adding comments to a static or any web page without running a full comment system","inferred",[54,57],{"id":55,"by":11,"text":56},"20379061","My first post about the web extension idea got some interest (and almost 150 stars on github!), so I've made the next logical step: an \u003Ciframe> that renders the comntr.github.io…",{"id":58,"by":59,"text":60},"20385033","mro_name","to just get a few comments (not quick, unmoderated discussions or in the thousands), a radical strip-down may suffice – neither server-code nor JavaScript, let alone a 3rd party:…",[62,69],{"value":63,"source":52,"evidence":64},"TypeScript",[65],{"id":66,"by":67,"text":68},"20379790","report212312421","was able to inject script via the username https:\u002F\u002Fgithub.com\u002Fcomntr\u002Fhttp-server\u002Fblob\u002Fmaster\u002Fsrc\u002Fhandlers\u002Fcomments.ts#L22",{"value":70,"source":71,"evidence":72},"npm \u002F Node.js server","maker",[73],{"id":74,"by":11,"text":75},"20379170","Also, it's already possible to have your own comntr server: you just need to git clone the comntr\u002Fhttp-server repo, npm install & npm start it, and tell the iframe to use your…","open_source","unknown",{"praise":79,"objections":95,"requests":136,"questions":144,"alternatives":156},[80],{"value":81,"source":82,"evidence":83},"Useful idea; a self-hostable comments server reduces work for small blogs","commenter",[84,88,91],{"id":85,"by":86,"text":87},"20379284","nexuist","This is really cool! One step closer to a decentralized Web.",{"id":89,"by":86,"text":90},"20380632","It is technically centralized but with the option to self host the comments server. Given that the source code is out there for a minimalist comments server, that saves a ton of…",{"id":92,"by":93,"text":94},"20380896","darekkay","This sounds interesting. I've added Comntr to my extensive blog post about static site comments [1]. [1] https:\u002F\u002Fdarekkay.com\u002Fblog\u002Fstatic-site-comments\u002F",[96,111,126,132],{"value":97,"source":82,"evidence":98},"Spam prevention is weak; simple captchas are easily bypassed",[99,103,107],{"id":100,"by":101,"text":102},"20379256","jeremyjh","The hard problem in this space is spam prevention. Its not immediately clear me to if this even addresses it? Other than giving ban\u002Ffilter controls to a human.",{"id":104,"by":105,"text":106},"20380356","smt88","It sounds like you may not have spent any time researching anti-spam techniques. Your initial \"puzzle\" can be solved with 8 characters of JS: eval(\"23+47\"). Your SVG picture can…",{"id":108,"by":109,"text":110},"20383388","super-serial","It's completely dependent on the traffic of the site if a spammer takes the time to break a custom captcha. I work on a site with 10 million monthly pageviews and spammers…",{"value":112,"source":82,"evidence":113},"Centralized hosting: comments and redirects go through the maker's server, raising privacy concerns",[114,118,122],{"id":115,"by":116,"text":117},"20379438","keithnz","so where's the data getting stored? in a database you are hosting?",{"id":119,"by":120,"text":121},"20379758","o-__-o","Except it redirects from OPs server. Meaning they capture your data. Themoreyouknow.jpg",{"id":123,"by":124,"text":125},"20380056","personjerry","All the comments would be hosted on this site; It's actually centralized.",{"value":127,"source":82,"evidence":128},"SVG captcha would block blind users",[129],{"id":130,"by":93,"text":131},"20380818","> Obviously, the puzzle is returned as an svg picture where the letters are \"rendered\" with little squares. This will make it impossible for blind people to post a comment. There…",{"value":133,"source":82,"evidence":134},"Script injection via username reported",[135],{"id":66,"by":67,"text":68},[137],{"value":138,"source":82,"evidence":139},"Add a content security policy",[140],{"id":141,"by":142,"text":143},"20379942","ivolimmen","You can also add a content security policy.",[145,149],{"value":146,"source":82,"evidence":147},"Where is comment data stored, and who hosts the database?",[148],{"id":115,"by":116,"text":117},{"value":150,"source":82,"evidence":151},"Can any URL be prefixed with the domain to load its comments?",[152],{"id":153,"by":154,"text":155},"20380412","pedro1976","Can i simply prefix any url with commentr.io to get to the comments section? Some time ago i did a scroing and visualization of reddit threads, maybe you find it useful, see…",[157,164,171,178,185],{"value":158,"source":82,"evidence":159},"Commento",[160],{"id":161,"by":162,"text":163},"20379458","unmole","Have you checked out Commento? It's open source and pretty lightweight: https:\u002F\u002Fcommento.io\u002F",{"value":165,"source":82,"evidence":166},"Disqus",[167],{"id":168,"by":169,"text":170},"20379317","eeeeeeeeeeeee","Curious about this too. I don’t like using Disqus (it’s so bloated) but the spam issue is pretty much non-existent even on several high-traffic sites.",{"value":172,"source":82,"evidence":173},"utterances (GitHub issues)",[174],{"id":175,"by":176,"text":177},"20381165","zimbatm","In the same space: https:\u002F\u002Futteranc.es\u002F A lightweight comments widget built on GitHub issues.",{"value":179,"source":82,"evidence":180},"Talkyard",[181],{"id":182,"by":183,"text":184},"20380925","KajMagnus","Talkyard deals with spam by 1) letting you configure manual review of the first N comments, say first 3 comments, by a new user. If someone posts 3 on-topic comments, then likely…",{"value":186,"source":82,"evidence":187},"schnack",[188],{"id":189,"by":190,"text":191},"20380450","llao","Or https:\u002F\u002Fgithub.com\u002Fschn4ck\u002Fschnack",{"comments":193,"answered":47,"key":194},15,[195,198,199],{"id":196,"text":197},"20380259","Yea, I missed the obvious one!",{"id":74,"text":75},{"id":55,"text":56},{"commenters":201,"max_depth":43,"maker_replies":193,"first_comment_mins":202,"lifespan_hours":203},31,8,28,[205,207,209,211,214,216,218,222,223,225,227,229,232,236,239,240,241,243,246,249,252,253,254,257,259,261,262,265,268,270,273,275,278,281,283,285,286,288,290,291,292,294,295,296,299,302,305,307,309],[66,34,39,206,67,34],"project\u002Fcritical\u002Fexecution",[196,34,34,208,11,39],"maker\u002Fneutral\u002Fexecution",[74,39,34,210,11,39],"project\u002Fneutral\u002Fdocs",[55,212,34,213,11,39],2,"project\u002Fneutral\u002Fidea",[141,212,42,215,142,34],"project\u002Fneutral\u002Fexecution",[217,212,34,208,11,39],"20380679",[219,42,47,220,221,34],"20379476","project\u002Fpositive\u002Fexecution","jteppinette",[153,32,42,210,154,34],[224,32,34,210,11,39],"20384566",[92,47,47,226,93,34],"project\u002Fpositive\u002Fidea",[228,47,34,213,11,39],"20381005",[230,47,34,231,93,34],"20382347","commenter\u002Fneutral\u002Fnone",[233,47,34,234,235,34],"20388063","other\u002Fneutral\u002Fnone","gitgud",[58,237,39,238,59,34],6,"project\u002Fcritical\u002Fidea",[100,43,39,238,101,34],[168,43,42,213,169,34],[161,43,42,242,162,34],"project\u002Fneutral\u002Fnone",[244,43,34,234,245,34],"20379546","cmroanirgo",[247,43,34,234,248,34],"20380583","strokirk",[250,43,34,251,245,34],"20380691","other\u002Fneutral\u002Fprivacy",[189,43,42,242,190,34],[182,43,34,234,183,34],[255,43,42,213,256,34],"20379342","deepsun",[258,43,34,213,11,39],"20380324",[260,43,34,213,11,39],"20380312",[104,43,39,238,105,34],[263,43,34,231,264,34],"20380467","ubercow13",[266,43,39,238,267,34],"20380701","atoav",[269,43,34,231,11,39],"20380755",[271,43,34,231,272,34],"20382234","vntok",[274,43,34,213,11,39],"20380746",[276,43,34,231,277,34],"20382301","georgyo",[279,43,34,231,280,34],"20382812","swiley",[282,43,34,215,11,39],"20388985",[284,43,34,215,11,39],"20384652",[108,43,39,238,109,34],[287,43,34,213,11,39],"20384621",[130,43,39,289,93,34],"project\u002Fcritical\u002Fdesign",[85,202,47,226,86,34],[123,202,39,238,124,34],[293,202,34,213,11,39],"20380301",[89,202,47,226,86,34],[175,33,42,242,176,34],[297,35,39,238,298,34],"20379851","mouzogu",[115,300,42,301,116,34],11,"project\u002Fneutral\u002Fprivacy",[303,300,42,301,304,34],"20379686","buzzerbetrayed",[119,300,39,306,120,34],"project\u002Fcritical\u002Fprivacy",[308,300,34,301,11,39],"20380330",[310,311,34,234,312,34],"20379514",12,"jugg1es",[],[315,320,324,328,333,337],{"id":316,"name":317,"points":318,"category":319},"20355477","Effortless",191,"productivity",{"id":321,"name":322,"points":323,"category":319},"20365436","Hoxly News",154,{"id":325,"name":326,"points":323,"category":327},"20376437","Bvckup 2","infrastructure",{"id":329,"name":330,"points":331,"category":332},"20373560","Old School Graphics Algorithms",126,"languages",{"id":334,"name":335,"points":331,"category":336},"20392342","GPT-2 MTG card generator","ai",{"id":338,"name":339,"points":340,"category":336},"20374800","python_autocomplete",109,false,"v2",{"id":344,"name":5,"line":6,"ai":341,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":345,"top":18,"kw":346,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":347,"url":9,"mix":348,"praise":81,"objection":97,"sub":21},20379026,-0.22,[24,25,26,27,28],"1000353050011300033001100000010310513310",[32,33,34,35],1794036578957]