[{"data":1,"prerenderedAt":408},["ShallowReactive",2],{"project-18776496":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":46,"post_text":47,"what":48,"said":91,"maker_in_thread":230,"shape":240,"grid":244,"attempts":369,"same_week":374,"maker_shows":301,"maker_hidden":401,"reader_version":402,"card":403},"18776496","rrweb","Open source JavaScript library to record and replay the web","title","Show HN: Open source JavaScript library to record and replay the web","https:\u002F\u002Fwww.rrweb.io\u002F","rrweb.io","yz-yu",1546002424,2018,353,51,56,2155,3,"legend","dev_tools","session recording library","library",[24,25,26,27],"session replay","record web sessions","javascript recording","user session recording","debated",0.03,{"positive":31,"neutral":32,"mixed":33,"critical":34},11,13,0,9,33,{"idea":37,"docs":39,"execution":41,"privacy":42,"performance":45},{"positive":38,"critical":33},6,{"positive":33,"critical":40},2,{"positive":40,"critical":40},{"positive":43,"critical":44},1,5,{"positive":43,"critical":33},[33,44,44,18,33,33,18,44,43,18,43,33,33,33,43,33,44,44,44,18,18,44,33,18,44,43,18,33,18,43,18,43,33,44,43,33,44,33,33,43],null,{"problem":49,"audience":62,"pricing":47,"motivation":70,"time_to_build":47,"stack":80,"openness":89,"stage":90,"team_size":90},{"value":50,"source":51,"evidence":52},"Recording and replaying user sessions in the browser for debugging and UX review","inferred",[53,55,59],{"id":54},"post",{"id":56,"by":57,"text":58},"18776877","deforciant","Even though I do agree that the total recording of sessions is not nice, such tools can be extremely important during early stage testing with your web app's UX. Especially for…",{"id":60,"by":11,"text":61},"18777005","Great idea! As I said on the landing page, demonstrate is an interesting use case for rrweb and the annotation feature will make it even better.",{"value":63,"source":51,"evidence":64},"Web developers and product teams",[65,66],{"id":56,"by":57,"text":58},{"id":67,"by":68,"text":69},"18777599","jagracey","Great work yz-yu. Hope you've learned a lot- I've personally found the session replay space to be incredibly rewarding. However, as a session replay industry competitor and a…",{"value":71,"source":72,"evidence":73},"Explore the power of modern browsers and improve web privacy standards","maker",[74,77],{"id":75,"by":11,"text":76},"18777091","I know there is some MuationObserver(which rrweb used to observe DOM update) API's shim library, but not sure the impact on performance. BTW, rrweb is also a project to explore…",{"id":78,"by":11,"text":79},"18777686","Totally agreed with your consideration about privacy. Unfortunately, as I wrote in my blog post, some commercial products already shipped features like this. So another passion…",[81,85],{"value":82,"source":72,"evidence":83},"JavaScript",[84],{"id":54},{"value":86,"source":72,"evidence":87},"MutationObserver",[88],{"id":75,"by":11,"text":76},"open_source","unknown",{"praise":92,"objections":117,"requests":155,"questions":176,"alternatives":198},[93,101,109],{"value":94,"source":95,"evidence":96},"Impressive replay quality, hard to tell it is recording","commenter",[97],{"id":98,"by":99,"text":100},"18776609","sjroot","I played with the examples and I am extremely impressed. I couldn't tell at all that I was being recorded; I figured the examples would just be videos of people interacting with…",{"value":102,"source":95,"evidence":103},"Useful for UX testing and debugging",[104,105],{"id":56,"by":57,"text":58},{"id":106,"by":107,"text":108},"18777067","unao","really nice! Few years ago, I created something very similar when working for validately.com - user testing company. The solution was tailored for our needs and was quite unique…",{"value":110,"source":95,"evidence":111},"Making it open source is appreciated",[112,116],{"id":113,"by":114,"text":115},"18777611","junetic","This is so awesome that you made this open source. There's a bunch of companies that basically use this tech and making lots of $$. We're actually working on a user testing…",{"id":98,"by":99,"text":100},[118,133,144,148],{"value":119,"source":95,"evidence":120},"Privacy concerns about recording every mouse movement and keystroke",[121,125,129],{"id":122,"by":123,"text":124},"18776829","marksomnian","Looks really cool, but I find myself thinking about the privacy implications of using this, especially by default. Even if the user gives consent, it still implies recording…",{"id":126,"by":127,"text":128},"18777110","hjek","RMS has been writing about the issue of non-free session recording scripts in The JavaScript Trap[0]: > In addition to being nonfree, many of these programs are malware because…",{"id":130,"by":131,"text":132},"18777891","pierrefar","To add to the key point about privacy, this research from Princeton is really illuminating and scary:…",{"value":134,"source":95,"evidence":135},"No license file in the repo",[136,140],{"id":137,"by":138,"text":139},"18778838","Walkman","This is NOT Open Source in a way you think it is yet, because the repo doesn't have a LICENSE attached to it, so the owner own every right and you are not allowed to sell it or…",{"id":141,"by":142,"text":143},"18779783","insomniacity","Correct - does fair use cover even running software without a license? This wouldn't pass the first hurdle at my dayjob...",{"value":145,"source":95,"evidence":146},"Security risks of session replay as an attack vector",[147],{"id":67,"by":68,"text":69},{"value":149,"source":95,"evidence":150},"Does not support IE11",[151],{"id":152,"by":153,"text":154},"18776831","no1youknowz","Thanks for open sourcing your work. I had already built something similar to this and other commercial products, but in jQuery. Really interested to see how this compares. I did…",[156,162,169],{"value":157,"source":95,"evidence":158},"Add a license text",[159],{"id":160,"by":142,"text":161},"18780209","I'm not a lawyer, but three characters in package.json isn't sufficient. You need to include the license text - eg https:\u002F\u002Fgithub.com\u002Fnodejs\u002Fnode\u002Fblob\u002Fmaster\u002FLICENSE.",{"value":163,"source":95,"evidence":164},"Provide a JSFiddle record and replay example",[165],{"id":166,"by":167,"text":168},"18777340","eddyparkinson","A JSFiddle example would be handy. A record and replay example.",{"value":170,"source":95,"evidence":171},"Annotation feature",[172],{"id":173,"by":174,"text":175},"18776902","pklee","Very cool. So much better than loading youtube videos. Would be great if there is a way to annotate parts of it. Apologies if it is a feature creep :(",[177,184,191],{"value":178,"source":95,"evidence":179},"How does replay work and can it replay on other pages",[180],{"id":181,"by":182,"text":183},"18778786","pault","How does the replay work? Do you have to embed the player in the site being recorded or can you replay a recording on another page, like an analytics dashboard? Does it capture…",{"value":185,"source":95,"evidence":186},"Does it work with Angular, Vue and React",[187],{"id":188,"by":189,"text":190},"18778013","grezql","will this work with MVC frameworks like Angularjs, Vue and ReactJS? I checked the DOM of a angularjs app and when I enter something in the input field, its not appearing in the…",{"value":192,"source":95,"evidence":193},"What license is it under",[194],{"id":195,"by":196,"text":197},"18776985","sauravt","May I know what open source license is the project under?",[199,206,213,217,223],{"value":200,"source":95,"evidence":201},"FullStory",[202],{"id":203,"by":204,"text":205},"18777164","niffy","How does this compare against something like Full Story?",{"value":207,"source":95,"evidence":208},"Hotjar",[209],{"id":210,"by":211,"text":212},"18776592","js4ever","Interesting, seems like the core tech of smartlook \u002F hotjar",{"value":214,"source":95,"evidence":215},"Smartlook",[216],{"id":210,"by":211,"text":212},{"value":218,"source":72,"evidence":219},"LogRocket",[220],{"id":221,"by":11,"text":222},"18777805","Definitely learned a lot and enjoy the process and thanks for your really important suggestions. Quote from my introduction blog post: === Today we already have some commercial…",{"value":224,"source":95,"evidence":225},"Heap Identify",[226],{"id":227,"by":228,"text":229},"18800917","welder","This is similar to Heap's Identify [1]. Main difference is Heap focuses on metrics while this looks to be for debugging and UX. Any plans for a heatmap feature built-in or third…",{"comments":38,"answered":231,"key":232},4,[233,236,237],{"id":234,"text":235},"18776641","Hi, hackers, the author here. Since I've seen some people are talking about the open source idea and comparing rrweb to some commercial products, I'd like to share a blog post…",{"id":75,"text":76},{"id":238,"text":239},"18777055","MIT https:\u002F\u002Fgithub.com\u002Frrweb-io\u002Frrweb\u002Fblob\u002Fmaster\u002Fpackage.json#L30",{"commenters":241,"max_depth":44,"maker_replies":38,"first_comment_mins":242,"lifespan_hours":243},38,28,100,[245,247,250,252,254,256,257,259,260,262,263,265,269,270,274,276,279,282,285,289,291,292,294,298,299,303,305,307,308,310,312,316,319,322,324,327,330,333,334,338,340,341,345,348,349,351,355,358,360,363,365],[234,33,33,246,11,43],"maker\u002Fneutral\u002Fidea",[248,33,44,249,211,33],"18776791","project\u002Fpositive\u002Fidea",[152,33,44,251,153,33],"maker\u002Fpositive\u002Fnone",[75,33,33,253,11,43],"maker\u002Fneutral\u002Fexecution",[195,33,18,255,196,33],"project\u002Fneutral\u002Fdocs",[238,33,33,255,11,43],[160,33,33,258,142,33],"commenter\u002Fneutral\u002Fdocs",[166,33,18,255,167,33],[181,33,18,261,182,33],"project\u002Fneutral\u002Fexecution",[56,43,44,249,57,33],[122,40,43,264,123,33],"project\u002Fcritical\u002Fprivacy",[266,40,18,267,268,33],"18776862","project\u002Fneutral\u002Fprivacy","hardwaresofton",[126,40,43,264,127,33],[271,40,33,272,273,33],"18777233","commenter\u002Fneutral\u002Fprivacy","SquareWheel",[275,40,33,272,127,33],"18777390",[277,40,33,278,273,33],"18777474","commenter\u002Fneutral\u002Fnone",[280,40,33,272,281,33],"18778353","dceddia",[283,40,43,264,284,33],"18777301","eastendguy",[286,40,33,287,288,33],"18777307","commenter\u002Fneutral\u002Fidea","palerdot",[78,40,33,290,11,43],"maker\u002Fneutral\u002Fprivacy",[113,18,44,249,114,33],[98,231,44,293,99,33],"project\u002Fpositive\u002Fexecution",[295,44,18,296,297,33],"18779177","project\u002Fneutral\u002Fidea","echelon",[106,38,44,293,107,33],[300,301,18,267,302,33],"18779451",7,"sbr464",[203,304,18,296,204,33],8,[306,304,44,249,114,33],"18777629",[173,34,44,249,174,33],[60,34,33,309,11,43],"maker\u002Fpositive\u002Fidea",[227,311,18,296,228,33],10,[313,31,44,314,315,33],"18776654","project\u002Fpositive\u002Fperformance","skilled",[188,317,43,318,189,33],12,"project\u002Fcritical\u002Fexecution",[320,32,18,255,321,33],"18777568","yuchi",[210,323,18,296,211,33],14,[325,323,33,278,326,33],"18781140","ilrwbwrkhv",[328,323,18,296,329,33],"18792280","terrycody",[137,331,43,332,138,33],15,"project\u002Fcritical\u002Fdocs",[141,331,43,332,142,33],[335,336,18,255,337,33],"18776780",16,"hero76",[67,339,43,264,68,33],17,[221,339,33,246,11,43],[342,339,33,343,344,33],"18778509","other\u002Fneutral\u002Fnone","dang",[346,339,44,249,347,33],"18780303","superfrank",[130,339,43,264,131,33],[350,339,33,272,68,33],"18778010",[352,339,44,353,354,33],"18777917","project\u002Fpositive\u002Fprivacy","idbehold",[356,339,18,267,357,33],"18778152","tmikaeld",[359,339,33,278,68,33],"18778306",[361,339,33,278,362,33],"18779412","chrisweekly",[364,339,33,343,357,33],"18788482",[366,367,43,318,368,33],"18790192",18,"randex",[370,371],{"id":4,"t":12,"points":14,"comments":15},{"id":372,"t":373,"points":331,"comments":231},"27745083",1625555554,[375,379,384,388,393,397],{"id":376,"name":377,"points":378,"category":20},"18789268","Vector Logo Zone",275,{"id":380,"name":381,"points":382,"category":383},"18776589","Pg-extend-rs",244,"infrastructure",{"id":385,"name":386,"points":387,"category":20},"18787777","Bake",132,{"id":389,"name":390,"points":391,"category":392},"18798209","Snigl",87,"languages",{"id":394,"name":395,"points":396,"category":392},"18790255","LJS",77,{"id":398,"name":399,"points":400,"category":20},"18794928","Autumn",75,false,"v2",{"id":404,"name":5,"line":6,"ai":401,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":405,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":406,"url":9,"mix":407,"praise":94,"objection":119,"sub":21},18776496,[24,25,26,27],"0553003513100010555335035130313105105001",[31,32,33,34],1794036573077]