[{"data":1,"prerenderedAt":427},["ShallowReactive",2],{"project-14202456":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":35,"aspects":36,"strip":48,"post_text":49,"what":50,"said":96,"maker_in_thread":200,"shape":211,"grid":215,"attempts":385,"same_week":390,"maker_shows":34,"maker_hidden":419,"reader_version":420,"card":421},"14202456","Commento","Lightweight, open source, tracking-free alternative to Disqus","title","Show HN: Commento: Lightweight, open source, tracking-free alternative to Disqus","https:\u002F\u002Fgithub.com\u002Fadtac\u002Fcommento","github.com","adtac",1493210683,2017,233,63,116,2242,6,"notable","web_saas","commenting system","web_app",[24,25,26,27],"disqus alternative","self-hosted comments","open source comments","tracking-free comments","curious",-0.141,{"positive":31,"neutral":32,"mixed":33,"critical":34},5,17,0,8,30,{"design":37,"performance":39,"idea":40,"pricing":43,"privacy":44,"execution":46,"docs":47},{"positive":33,"critical":38},1,{"positive":38,"critical":38},{"positive":41,"critical":42},4,3,{"positive":33,"critical":33},{"positive":33,"critical":45},2,{"positive":33,"critical":38},{"positive":33,"critical":33},[38,31,33,38,42,38,42,31,38,31,31,42,33,33,33,33,33,33,33,42,31,33,38,42,42,42,42,33,33,33,38,38,33,42,42,42,42,38,42,42],null,{"problem":51,"audience":57,"pricing":49,"motivation":69,"time_to_build":49,"stack":73,"openness":93,"stage":94,"team_size":95},{"value":52,"source":53,"evidence":54},"Comment sections for websites without tracking or third-party services like Disqus","maker",[55],{"id":56},"post",{"value":58,"source":59,"evidence":60},"Static site and blog owners who want a comment system","inferred",[61,65],{"id":62,"by":63,"text":64},"14203922","mzzter","Half the value of Disqus is that it hosts the server API for you. Any viable alternative to disqus or other commenting engine needs to provide hosting too. Otherwise, it's not…",{"id":66,"by":67,"text":68},"14204477","jgaa","The other half value of Disqus is to provide comments to static sites. Back in the days, most sites used dynamic content, and had comments as part of the CMS system they used.…",{"value":70,"source":59,"evidence":71},"Offer a lightweight, tracking-free replacement for Disqus",[72],{"id":56},[74,83],{"value":75,"source":53,"evidence":76},"Go",[77,80],{"id":78,"by":11,"text":79},"14205706",">but how it deals with multiple concurrent writes? I'm afraid I'm not very familiar with how go-sqlite3 handles that. I just started learning golang a month ago, so it's all…",{"id":81,"by":11,"text":82},"14205449","Whoa, this blew up! Here's a working demo that I just hacked together: https:\u002F\u002Fadtac.github.io\u002Fcommento\u002Fcomment.html Edit: sorry, I had to purge the comment list because of an…",{"value":84,"source":53,"evidence":85},"SQLite",[86,89],{"id":87,"by":11,"text":88},"14205565","There's no way atm. Can we export all Disqus comments into JSON? If so, I can probably write a script to convert that into a sequence of SQL statements and generate a…",{"id":90,"by":91,"text":92},"14204358","_cereal","Nice, but how it deals with multiple concurrent writes? I see you are using transactions but, as far as I know, sqlite3 supports database-level locking, so one writing instance,…","open_source","launched","unknown",{"praise":97,"objections":113,"requests":136,"questions":156,"alternatives":165},[98,106],{"value":99,"source":100,"evidence":101},"Fast loading demo","commenter",[102],{"id":103,"by":104,"text":105},"14205897","gizzlon","Nice, that demo loaded pretty fast even with a lot of comments :)",{"value":107,"source":100,"evidence":108},"Clean, nice-looking design",[109],{"id":110,"by":111,"text":112},"14206121","JangoSteve","This looks really nice and clean. I'd been using Juvia a lot over the year's, built by the people at Phusion. It's worked really well, but seems to be unmaintained now. The…",[114,121,132],{"value":115,"source":100,"evidence":116},"Self-hosting install is too much friction",[117],{"id":118,"by":119,"text":120},"14203661","metalmanac","You should have put up a demo site where users can try out the comment engine. Requiring the installation on a user's laptop\u002Fdesktop is just too much friction, not to mention…",{"value":122,"source":100,"evidence":123},"No spam protection or captcha yet",[124,128],{"id":125,"by":126,"text":127},"14204971","lol768","Does it include a CAPTCHA? Comment sections seem very susceptible to spam from experience.",{"id":129,"by":130,"text":131},"14205595","Xoros","How do you prevent comments flood ? Imagine someone write a script calling your server with valid headers, what will happens ? Serious question I asked myself a month ago on a…",{"value":133,"source":100,"evidence":134},"Hosting backend needed for static sites",[135],{"id":62,"by":63,"text":64},[137,142,149],{"value":138,"source":100,"evidence":139},"Add captcha or spam filtering",[140,141],{"id":125,"by":126,"text":127},{"id":110,"by":111,"text":112},{"value":143,"source":100,"evidence":144},"Import existing Disqus comments",[145],{"id":146,"by":147,"text":148},"14204725","timbowhite","What's the best way to import existing comment data from Disqus into Commento?",{"value":150,"source":100,"evidence":151},"Locally hosted JavaScript instead of rawgit",[152],{"id":153,"by":154,"text":155},"14204332","aw3c2","Please use a locally hosted js in your example code. rawgit does not even have a privacy policy.",[157,161],{"value":158,"source":100,"evidence":159},"How does it handle concurrent writes with SQLite?",[160],{"id":90,"by":91,"text":92},{"value":162,"source":100,"evidence":163},"How is comment flooding prevented?",[164],{"id":129,"by":130,"text":131},[166,173,181,189,196],{"value":167,"source":100,"evidence":168},"Isso",[169],{"id":170,"by":171,"text":172},"14205865","j_s","Related discussion: Replacing Disqus with GitHub Comments | https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=14170041 Recommended alternatives to Commento (Golang): ·…",{"value":174,"source":100,"evidence":175},"Staticman",[176,177],{"id":170,"by":171,"text":172},{"id":178,"by":179,"text":180},"14205313","pomfpomfpomf3","https:\u002F\u002Fstaticman.net\u002F",{"value":182,"source":100,"evidence":183},"lambda-comments",[184,185],{"id":170,"by":171,"text":172},{"id":186,"by":187,"text":188},"14203852","brango","I'd been thinking about doing something like this with AWS API Gateway, Lambda and DynamoDB. Chalice (https:\u002F\u002Fgithub.com\u002Fawslabs\u002Fchalice) should make it relatively simple to make…",{"value":190,"source":100,"evidence":191},"Remarkbox",[192],{"id":193,"by":194,"text":195},"14206793","foxhop","I'm bootstrapping an alternative to Disqus called Remarkbox (https:\u002F\u002Fwww.remarkbox.com) Are you planning on also offering a paid hosted version?",{"value":197,"source":100,"evidence":198},"Juvia",[199],{"id":110,"by":111,"text":112},{"comments":201,"answered":202,"key":203},12,7,[204,205,208],{"id":81,"text":82},{"id":206,"text":207},"14206035","And I'm only using now.sh's free tier for the backend.",{"id":209,"text":210},"14209100","That is because there are over 7000 comments right now. Clearing it. Try again, it should be snappy.",{"commenters":212,"max_depth":18,"maker_replies":201,"first_comment_mins":213,"lifespan_hours":214},46,153,27,[216,218,220,222,224,228,229,233,237,239,243,246,250,254,255,256,259,261,264,265,269,273,276,279,282,285,287,290,292,295,297,301,302,305,307,310,313,316,317,320,322,324,327,330,333,336,339,341,343,347,352,354,356,358,363,366,368,370,373,376,377,379,383],[118,33,38,217,119,33],"project\u002Fcritical\u002Fdesign",[81,33,33,219,11,38],"maker\u002Fneutral\u002Fnone",[103,33,31,221,104,33],"project\u002Fpositive\u002Fperformance",[206,33,33,223,11,38],"maker\u002Fneutral\u002Fperformance",[225,33,38,226,227,33],"14207162","project\u002Fcritical\u002Fperformance","reddit_clone",[209,33,33,223,11,38],[230,33,42,231,232,33],"14208273","project\u002Fneutral\u002Fnone","kerneldeveloper",[234,33,33,235,236,33],"14208372","commenter\u002Fneutral\u002Fnone","grzm",[170,38,38,238,171,33],"project\u002Fcritical\u002Fidea",[240,38,42,241,242,33],"14208591","project\u002Fneutral\u002Fidea","tyingq",[244,38,33,235,245,33],"14210017","stevekemp",[247,45,31,248,249,33],"14206218","project\u002Fpositive\u002Fidea","stewsnooze",[251,45,33,252,253,33],"14208932","other\u002Fneutral\u002Fnone","na85",[62,42,38,238,63,33],[66,42,31,248,67,33],[257,42,31,248,258,33],"14204963","mxuribe",[260,42,33,235,67,33],"14205202",[262,42,42,241,263,33],"14204994","detaro",[178,42,33,235,179,33],[266,42,33,267,268,33],"14208762","other\u002Fneutral\u002Fidea","drdaeman",[270,42,33,271,272,33],"14205759","commenter\u002Fneutral\u002Fperformance","Karunamon",[274,42,33,271,275,33],"14208150","shakna",[277,41,33,252,278,33],"14206350","Sir_Cmpwn",[280,41,33,252,281,33],"14206396","pryelluw",[283,41,33,252,284,33],"14206788","dawnerd",[286,41,33,252,278,33],"14206831",[288,41,33,252,289,33],"14207673","ue_",[193,31,33,291,194,33],"commenter\u002Fneutral\u002Fpricing",[293,31,33,294,11,38],"14206903","maker\u002Fneutral\u002Fpricing",[296,31,33,291,194,33],"14208575",[298,31,42,299,300,33],"14212246","project\u002Fneutral\u002Fpricing","0x6c6f6c",[186,18,31,248,187,33],[303,18,33,235,304,33],"14204962","mwnivek",[306,18,33,235,187,33],"14205088",[308,202,42,241,309,33],"14203730","prophesi",[311,34,38,238,312,33],"14204977","TheAceOfHearts",[90,314,42,315,91,33],9,"project\u002Fneutral\u002Fperformance",[78,314,33,219,11,38],[318,314,42,241,319,33],"14208871","Sanddancer",[321,314,42,315,242,33],"14209258",[110,323,42,231,111,33],10,[325,326,42,241,258,33],"14204461",11,[328,326,33,252,329,33],"14205383","bshimmin",[331,326,33,252,332,33],"14205478","losteric",[334,326,33,252,335,33],"14205713","reitanqild",[337,326,33,252,338,33],"14206611","zeveb",[340,326,33,219,11,38],"14206194",[153,201,38,342,154,33],"project\u002Fcritical\u002Fprivacy",[344,201,42,345,346,33],"14205218","project\u002Fneutral\u002Fprivacy","jacobmischka",[348,349,38,350,351,33],"14208155",13,"project\u002Fcritical\u002Fexecution","kevingrahl",[353,349,33,219,11,38],"14209131",[125,355,42,231,126,33],14,[357,355,33,219,11,38],"14205515",[359,360,42,361,362,33],"14206261",15,"project\u002Fneutral\u002Fdesign","bramakris",[364,360,33,365,11,38],"14206911","maker\u002Fneutral\u002Fdesign",[129,367,42,231,130,33],16,[369,367,33,219,11,38],"14205613",[371,367,42,231,372,33],"14206464","aembleton",[374,367,38,342,375,33],"14207051","newsat13",[146,32,42,231,147,33],[87,32,33,378,11,38],"project\u002Fneutral\u002Fdocs",[380,381,42,378,382,33],"14204400",18,"brilliantcode",[384,381,33,378,11,38],"14205557",[386,389],{"id":387,"t":388,"points":323,"comments":31},"14187769",1493064559,{"id":4,"t":12,"points":14,"comments":15},[391,396,401,405,410,414],{"id":392,"name":393,"points":394,"category":395},"14180673","Timestrap",264,"productivity",{"id":397,"name":398,"points":399,"category":400},"14183597","nescat.gcubed.co",196,"games",{"id":402,"name":403,"points":404,"category":395},"14204759","Kobble",179,{"id":406,"name":407,"points":408,"category":409},"14167466","WrapAPI v2",166,"dev_tools",{"id":411,"name":412,"points":413,"category":400},"14202124","BreakLock",139,{"id":415,"name":416,"points":417,"category":418},"14166467","Recursive DNS Server Fingerprint",120,"security_privacy",false,"v2",{"id":422,"name":5,"line":6,"ai":419,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":423,"top":18,"kw":424,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":425,"url":9,"mix":426,"praise":99,"objection":115,"sub":21},14202456,-0.14,[24,25,26,27],"1501313515530000000350133330001103333133",[31,32,33,34],1794036554766]