[{"data":1,"prerenderedAt":423},["ShallowReactive",2],{"project-5518565":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":44,"post_text":47,"what":48,"said":87,"maker_in_thread":214,"shape":221,"grid":226,"attempts":386,"same_week":387,"maker_shows":223,"maker_hidden":415,"reader_version":416,"card":417},"5518565","Firepad","An open source collaborative text editor","title","Show HN: Firepad, an open source collaborative text editor","http:\u002F\u002Fwww.firepad.io","firepad.io","mayop100",1365520067,2013,168,63,97,1739,6,"notable","dev_tools","collaborative editor","library",[21,24,25,26,27],"operational transformation","firebase","real-time editing","codemirror","curious",0.066,{"positive":31,"neutral":32,"mixed":33,"critical":34},13,23,1,8,45,{"design":37,"execution":39,"idea":40,"privacy":41,"performance":43},{"positive":33,"critical":38},2,{"positive":33,"critical":38},{"positive":18,"critical":33},{"positive":42,"critical":38},0,{"positive":33,"critical":33},[45,33,46,46,45,46,46,46,46,33,33,46,46,33,45,46,45,45,45,45,45,33,46,46,33,42,46,42,46,33,46,45,46,42,45,42,42,33,45,45],5,3,null,{"problem":49,"audience":47,"pricing":47,"motivation":47,"time_to_build":47,"stack":63,"openness":84,"stage":85,"team_size":86},{"value":50,"source":51,"evidence":52},"Lets apps offer real-time collaborative text editing without running your own server","maker",[53,57,60],{"id":54,"by":55,"text":56},"5519094","mikelehen","We built it as a Firebase app, but we're releasing it as open source and are looking forward to seeing what the community does with it. :-) All of the OT work happens…",{"id":58,"by":11,"text":59},"5519577","What features would you like to see implemented next in Firepad?",{"id":61,"by":11,"text":62},"5520472","The main reason you might want to use Firepad instead of Etherpad is if you don't want to run the server-side piece of Etherpad. For example, if you're stack is different than…",[64,69,75,79],{"value":65,"source":66,"evidence":67},"Firebase","commenter",[68],{"id":54,"by":55,"text":56},{"value":70,"source":66,"evidence":71},"CodeMirror",[72],{"id":73,"by":55,"text":74},"5520066","Yeah, sorry! Codemirror automatically keeps your cursor scrolled into view and with lots of people editing, your cursor keeps moving. I just tweaked it (again) so that we remove…",{"value":76,"source":66,"evidence":77},"ot.js",[78],{"id":54,"by":55,"text":56},{"value":80,"source":81,"evidence":82},"JavaScript","inferred",[83],{"id":54,"by":55,"text":56},"open_source","launched","team",{"praise":88,"objections":115,"requests":151,"questions":174,"alternatives":190},[89,104],{"value":90,"source":66,"evidence":91},"Fun and impressive real-time collaboration demo",[92,96,100],{"id":93,"by":94,"text":95},"5519510","jfaucett","okay, after working in this for a couple minutes I found it to be AWESOME!!! great job guys. Obviously, there's a ton of people on it right now, and the proverbial dicks just…",{"id":97,"by":98,"text":99},"5523980","colemorrison","Whoa. That's some FUN stuff! Great job!",{"id":101,"by":102,"text":103},"5521447","bestest","I'm happy to announce this as a find of the week. Boy there were some good laughs in the public mode. And yes, I'm quite sure private pads might be of use in certain situations.",{"value":105,"source":66,"evidence":106},"Firebase makes real-time features much faster to build",[107,111],{"id":108,"by":109,"text":110},"5518606","prayag","This looks amazing! I have been really impressed with Firebase. Before it building things like this or a chat engine would take weeks if not months.",{"id":112,"by":113,"text":114},"5520196","mccolin","This is fantastic. Looked up some more information about your Firebase offerings and like what's going on there, too :-) Keep up the great work!",[116,130,140],{"value":117,"source":66,"evidence":118},"Relies on proprietary Firebase backend, so not fully self-hostable",[119,123,127],{"id":120,"by":121,"text":122},"5523914","unhammer","Can you run it without it communicating with Firebase? (If not, how is that better than having it under your own control?)",{"id":124,"by":125,"text":126},"5520859","saurik","Only slightly, though; I mean, Firebase is built on a fully-proprietary platform (Firebase).",{"id":128,"by":125,"text":129},"5522235","I have looked at the code (and had looked at the code before leaving that comment). Please understand that the OT backend they are using is just something they got from someone…",{"value":131,"source":66,"evidence":132},"Client-side code can be manipulated by malicious users",[133,137],{"id":134,"by":135,"text":136},"5520537","marijn","Sure, now they'll need to do `cm = document.body.getElementsByClassName(\"CodeMirror\")[0].CodeMirror` first. (I.e. it's client-side, you can't prevent people from doing whatever…",{"id":138,"by":135,"text":139},"5527043","Browsers have debuggers, which allow users to set breakpoints and inject\u002Frun arbitrary code in the context of some function. (At least Chrome allows that, not sure about others.)",{"value":141,"source":66,"evidence":142},"Page scrolling jumps back to editor",[143,147],{"id":144,"by":145,"text":146},"5519946","BHSPitMonkey","Nitpick: It seems impossible to scroll down and read the stuff below the actual editor (at least in Chrome), since the editor keeps auto-scrolling me back up to itself whenever…",{"id":148,"by":149,"text":150},"5519208","stevejohnson","I am unable to scroll down on the page without it jumping back up to the animated demo thingy. Chrome 25 OSX.",[152,162,168],{"value":153,"source":66,"evidence":154},"HTML and rich-text copy\u002Fpaste support",[155,159],{"id":156,"by":157,"text":158},"5518998","dmbaggett","Does anyone know of an HTML-friendly equivalent of this? I.e., something similar that allows pasting\u002Fediting HTML?",{"id":160,"by":55,"text":161},"5519168","Firepad will eventually support rich-text copy\u002Fpaste and import\u002Fexport as HTML (export is actually already supported through the API, but not exposed through the existing UI), as…",{"value":163,"source":66,"evidence":164},"Integration with ShareJS and other editors",[165],{"id":166,"by":55,"text":167},"5522460","Well, adding rich-text support to ot.js and CodeMirror wasn't trivial, but both of these projects were certainly instrumental in building Firepad. And we'd love to see…",{"value":169,"source":66,"evidence":170},"Ability to use a custom backend",[171],{"id":172,"by":113,"text":173},"5518974","Haven't looked into the code\u002Fdocs deeply, yet, but would love to know if it can be customized to send data to one's own backend service for private implementations. Love the…",[175,186],{"value":176,"source":66,"evidence":177},"What does Firepad offer over Etherpad",[178,182],{"id":179,"by":180,"text":181},"5519564","Johnyma22","I think this is a really early stage Etherpad. Check out Etherpad's features if you can, you have your work cut out though http:\u002F\u002Fetherpad.org",{"id":183,"by":184,"text":185},"5520299","stephenhuey","That's a good question, and I don't have an answer for you. However, since I've heard how awesome Firebase is, I'm wondering what you offer over Etherpad. After Google acquired…",{"value":187,"source":66,"evidence":188},"Can it run without contacting Firebase",[189],{"id":120,"by":121,"text":122},[191,196,203,207],{"value":192,"source":66,"evidence":193},"Etherpad",[194,195],{"id":179,"by":180,"text":181},{"id":183,"by":184,"text":185},{"value":197,"source":66,"evidence":198},"Hackpad",[199],{"id":200,"by":201,"text":202},"5519604","davidedicillo","Seems a lot of people are forgetting about http:\u002F\u002Fhackpad.com",{"value":204,"source":66,"evidence":205},"ShareJS",[206],{"id":128,"by":125,"text":129},{"value":208,"source":66,"evidence":209},"Plunker",[210],{"id":211,"by":212,"text":213},"5519160","gbadman","Plunker is a collaborative html\u002Fcss\u002Fjs\u002Fcoffee-script\u002Ftypescript\u002Fless\u002Fetc... editor: http:\u002F\u002Fplnkr.co\u002Fedit\u002F?p=preview&s=YDQtgmV5y7I6EQfJ",{"comments":46,"answered":42,"key":215},[216,217,218],{"id":58,"text":59},{"id":61,"text":62},{"id":219,"text":220},"5519182","Everyone does have their own cursor state and can edit the document separately (even in offline mode). People are testing the limits of it right now though, so you're probably…",{"commenters":222,"max_depth":223,"maker_replies":46,"first_comment_mins":224,"lifespan_hours":225},42,7,4,30,[227,229,232,234,236,237,238,240,244,248,252,254,255,258,260,262,264,265,266,267,270,273,274,278,281,282,283,284,288,292,296,298,300,303,308,310,314,316,321,323,326,327,328,331,334,339,341,343,346,350,354,356,359,363,365,367,370,371,373,374,376,379,382],[93,42,45,228,94,42],"project\u002Fpositive\u002Fnone",[230,42,46,231,55,42],"5519521","project\u002Fneutral\u002Fnone",[144,42,33,233,145,42],"project\u002Fcritical\u002Fdesign",[73,42,46,235,55,42],"project\u002Fneutral\u002Fexecution",[172,33,46,231,113,42],[54,33,46,235,55,42],[112,33,45,239,113,42],"maker\u002Fpositive\u002Fnone",[241,38,46,242,243,42],"5519491","project\u002Fneutral\u002Fidea","nathanb",[245,46,42,246,247,42],"5519858","other\u002Fneutral\u002Fnone","Jonovono",[249,224,46,250,251,42],"5520121","project\u002Fneutral\u002Fprivacy","amasad",[253,224,46,250,55,42],"5520186",[134,224,46,250,135,42],[256,224,46,250,257,42],"5521378","jlogsdon",[259,224,46,250,55,42],"5521480",[138,224,33,261,135,42],"project\u002Fcritical\u002Fprivacy",[179,45,33,263,180,42],"project\u002Fcritical\u002Fidea",[58,45,42,242,11,33],[183,45,46,242,184,42],[61,45,42,231,11,33],[268,45,46,250,269,42],"5521526","kevinr",[271,45,46,250,272,42],"5522039","akkishore",[120,45,33,261,121,42],[275,45,45,276,277,42],"5523161","project\u002Fpositive\u002Fidea","ianstormtaylor",[279,18,46,235,280,42],"5519121","peapicker",[219,18,42,235,11,33],[101,223,45,228,102,42],[108,34,45,276,109,42],[285,286,42,246,287,42],"5520439",9,"shurcooL",[289,290,45,276,291,42],"5519749",10,"Vecrios",[293,294,46,242,295,42],"5518961",11,"mynmyn",[297,294,45,276,55,42],"5518996",[299,294,45,276,295,42],"5519080",[301,294,45,276,302,42],"5519845","Y_Not",[304,305,33,306,307,42],"5521193",12,"project\u002Fcritical\u002Fexecution","civilian",[309,305,46,235,55,42],"5521250",[311,31,46,312,313,42],"5521108","project\u002Fmixed\u002Fexecution","natorion",[315,31,46,235,55,42],"5521201",[317,318,33,319,320,42],"5524445",14,"project\u002Fcritical\u002Fperformance","mikegreen",[156,322,42,246,157,42],15,[324,322,42,246,325,42],"5519113","wfle",[211,322,42,246,212,42],[160,322,46,242,55,42],[329,322,42,246,330,42],"5519970","deliminator",[332,333,42,246,272,42],"5520001",16,[335,336,46,337,338,42],"5520964",17,"project\u002Fneutral\u002Fperformance","KaoruAoiShiho",[340,336,46,337,55,42],"5521192",[148,342,33,233,149,42],18,[344,342,46,345,55,42],"5519346","project\u002Fneutral\u002Fdesign",[347,342,45,348,349,42],"5519793","project\u002Fpositive\u002Fdesign","vramosp",[351,352,46,242,353,42],"5519558",19,"binarysoul",[355,352,46,242,55,42],"5519585",[357,352,42,358,353,42],"5520742","commenter\u002Fneutral\u002Fnone",[360,361,42,246,362,42],"5528323",20,"dossy",[97,364,45,228,98,42],21,[200,366,42,246,201,42],22,[368,366,42,358,369,42],"5519711","j_s",[124,366,42,358,125,42],[372,366,42,358,369,42],"5520924",[128,366,33,306,125,42],[166,366,45,375,55,42],"project\u002Fpositive\u002Fexecution",[377,32,42,246,378,42],"5518977","hydralist",[380,32,42,246,381,42],"5519064","benatkin",[383,32,45,384,385,42],"5519311","project\u002Fpositive\u002Fperformance","frou_dh",[],[388,393,398,403,408,412],{"id":389,"name":390,"points":391,"category":392},"5511417","Hide Secret Messages In Facebook Photos With My Chrome Extension",153,"security_privacy",{"id":394,"name":395,"points":396,"category":397},"5500352","Pinry",140,"infrastructure",{"id":399,"name":400,"points":401,"category":402},"5525941","Rappad",134,"creative",{"id":404,"name":405,"points":406,"category":407},"5492708","TheBigDB",133,"data",{"id":409,"name":410,"points":411,"category":407},"5498224","Quandl",93,{"id":413,"name":414,"points":411,"category":20},"5511280","CommitQ",false,"v2",{"id":418,"name":5,"line":6,"ai":415,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":419,"top":18,"kw":420,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":421,"url":9,"mix":422,"praise":90,"objection":117,"sub":21},5518565,0.07,[21,24,25,26,27],"5133533331133153555551331030313530500155",[31,32,33,34],1793990893102]