[{"data":1,"prerenderedAt":245},["ShallowReactive",2],{"project-13013434":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":39,"post_text":41,"what":42,"said":83,"maker_in_thread":154,"shape":162,"grid":167,"attempts":207,"same_week":208,"maker_shows":237,"maker_hidden":238,"reader_version":239,"card":240},"13013434","TalkTalkTalk","An easy-to-install small chat room, with chat history","title","Show HN: TalkTalkTalk – An easy-to-install small chat room, with chat history","https:\u002F\u002Fgithub.com\u002Fjosephernest\u002Ftalktalktalk","github.com","josephernest",1479815815,2016,49,19,740,2264,33,"shown","infrastructure","self-hosted chat server","web_app",[24,25,26,27],"self-hosted chat","small team chat","websocket chat","chat history","mixed",0,{"positive":31,"neutral":32,"mixed":33,"critical":32},2,3,1,9,{"idea":36,"execution":37,"performance":38},{"positive":31,"critical":29},{"positive":29,"critical":31},{"positive":29,"critical":33},[40,33,29,32,29,33,29,32,29,29,29,33,29,29,29,40,32,32,29],5,null,{"problem":43,"audience":54,"pricing":41,"motivation":59,"time_to_build":41,"stack":65,"openness":80,"stage":81,"team_size":82},{"value":44,"source":45,"evidence":46},"Lets a small team or group run its own chat room with history","inferred",[47,51],{"id":48,"by":49,"text":50},"13038845","pasbesoin","Thank you. Look forward to playing with \u002F using this. Reminds me of using Jabber years ago with a couple of friends. Not for the protocol, but for the clean interface and…",{"id":52,"by":11,"text":53},"13016209","This small chat is intented for a small team, not for global internet usage like I do here :) Usually in a small team there is no spammer, and if there is one, he's banned…",{"value":55,"source":56,"evidence":57},"Small teams","maker",[58],{"id":52,"by":11,"text":53},{"value":60,"source":56,"evidence":61},"Fun proof-of-concept project",[62],{"id":63,"by":11,"text":64},"13016728","Well the real cleaning \u002F sanitizing part has to be done on the server... I'll work on this in the next weeks, after some other more important projects... This is just a…",[66,73],{"value":67,"source":45,"evidence":68},"WebSocket",[69],{"id":70,"by":71,"text":72},"13016073","alexdumitru","You should add some antispam, at least. I was able to keep your server down by using only this: > setInterval( function () { for(i=0;i\u003C=9999; i++) { ws.send(JSON.stringify({…",{"value":74,"source":45,"evidence":75},"JavaScript",[76,77],{"id":70,"by":71,"text":72},{"id":78,"by":11,"text":79},"13036050","Yes. You can talk in this chat with JS : ws.send(...).","open_source","launched","unknown",{"praise":84,"objections":97,"requests":110,"questions":135,"alternatives":142},[85,93],{"value":86,"source":87,"evidence":88},"Good example of large value from very little code","commenter",[89],{"id":90,"by":91,"text":92},"13015413","rpdillon","This is a really good example of how you can obtain 80% of the value of huge, complex apps with 1% of the code. It feels like the open source\u002Fself-hosted\u002Fsimple app market it is…",{"value":94,"source":87,"evidence":95},"Clean interface, like having a private place",[96],{"id":48,"by":49,"text":50},[98],{"value":99,"source":87,"evidence":100},"Chat lacks abuse and spam protection; server was crashed by flood script",[101,105,106],{"id":102,"by":103,"text":104},"13015450","mentos","ha yea but also an example that the last 20% is 80% of the work the chat right now needs features to prevent abuse",{"id":70,"by":71,"text":72},{"id":107,"by":108,"text":109},"13015941","equasar","Someone crashed the server haha.",[111,120,124,128],{"value":112,"source":87,"evidence":113},"Add abuse and flood control",[114,115,119],{"id":102,"by":103,"text":104},{"id":116,"by":117,"text":118},"13015831","ausjke","add abuse control, log archive, image inserting then it will be golden",{"id":70,"by":71,"text":72},{"value":121,"source":87,"evidence":122},"Log archive",[123],{"id":116,"by":117,"text":118},{"value":125,"source":87,"evidence":126},"Image inserting",[127],{"id":116,"by":117,"text":118},{"value":129,"source":87,"evidence":130},"Escape message text before sending",[131],{"id":132,"by":133,"text":134},"13016700","vmorgulis","I like a log the design. https:\u002F\u002Fgithub.com\u002Fjosephernest\u002Ftalktalktalk\u002Fblob\u002Fmaster\u002Ftalktalktalk.html#L268 I think you could escape the text from #writing before sending it.…",[136],{"value":137,"source":87,"evidence":138},"Is it open for bots?",[139],{"id":140,"by":141,"text":137},"13022552","mrjustaine",[143,150],{"value":144,"source":87,"evidence":145},"ROBOT9000",[146],{"id":147,"by":148,"text":149},"13015669","saint_fiasco","What about ROBOT9000? https:\u002F\u002Fblog.xkcd.com\u002F2008\u002F01\u002F14\u002Frobot9000-and-xkcd-signal-attacking-noise-in-chat\u002F",{"value":151,"source":87,"evidence":152},"Jabber",[153],{"id":48,"by":49,"text":50},{"comments":155,"answered":33,"key":156},8,[157,160,161],{"id":158,"text":159},"13015529","totally true: abuse\u002Fflood control will be the next additions. ideas welcome about how do to it.",{"id":52,"text":53},{"id":63,"text":64},{"commenters":163,"max_depth":164,"maker_replies":155,"first_comment_mins":165,"lifespan_hours":166},12,4,287,79,[168,170,172,174,176,180,181,182,184,185,188,191,193,196,200,202,203,205,206],[90,29,40,169,91,29],"project\u002Fpositive\u002Fidea",[102,29,33,171,103,29],"project\u002Fcritical\u002Fexecution",[158,29,29,173,11,33],"maker\u002Fneutral\u002Fnone",[147,29,32,175,148,29],"project\u002Fneutral\u002Fidea",[177,29,29,178,179,29],"13028194","commenter\u002Fneutral\u002Fnone","flukus",[70,33,33,171,71,29],[52,33,29,173,11,33],[132,33,32,183,133,29],"project\u002Fneutral\u002Fexecution",[63,33,29,183,11,33],[186,33,29,187,11,33],"13036420","maker\u002Fpositive\u002Fexecution",[189,31,29,190,11,33],"13015294","project\u002Fneutral\u002Fnone",[107,31,33,192,108,29],"project\u002Fcritical\u002Fperformance",[194,31,29,195,11,33],"13016234","other\u002Fneutral\u002Fperformance",[197,31,29,198,199,29],"13022435","other\u002Fneutral\u002Fnone","fiatjaf",[201,31,29,198,11,33],"13036046",[48,32,40,169,49,29],[116,164,32,204,117,29],"project\u002Fmixed\u002Fexecution",[140,40,32,175,141,29],[78,40,29,183,11,33],[],[209,214,219,224,228,232],{"id":210,"name":211,"points":212,"category":213},"13013327","Spamnesty",405,"productivity",{"id":215,"name":216,"points":217,"category":218},"13018104","Upskill Courses",395,"learning_science",{"id":220,"name":221,"points":222,"category":223},"13005792","markdownsites",291,"web_saas",{"id":225,"name":226,"points":227,"category":213},"13022663","Zenkit",264,{"id":229,"name":230,"points":231,"category":213},"13003896","md2googleslides",246,{"id":233,"name":234,"points":235,"category":236},"13000120","StockDroids.com",245,"consumer_social",6,false,"v2",{"id":241,"name":5,"line":6,"ai":238,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":242,"maker":11,"domain":10,"tier":19,"attempts":29,"strip":243,"url":9,"mix":244,"praise":86,"objection":99,"sub":21},13013434,[24,25,26,27],"5103010300010005330",[31,32,33,32],1794036549779]