[{"data":1,"prerenderedAt":277},["ShallowReactive",2],{"project-36088359":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":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":41,"post_text":43,"what":44,"said":74,"maker_in_thread":161,"shape":169,"grid":173,"attempts":237,"same_week":242,"maker_shows":37,"maker_hidden":270,"reader_version":271,"card":272},"36088359","Logicboard","An in-browser code editor with code replay and REPL","title","Show HN: I made an in-browser code editor with code replay and REPL","https:\u002F\u002Flogicboard.com\u002Fdemo","logicboard.com","logicboard",1685128019,2023,87,28,736,3109,24,"notable","dev_tools","online code editor","web_app",[21,24,25,26],"code replay","collaborative coding","in-browser repl","curious",-0.13,{"positive":30,"neutral":31,"mixed":30,"critical":32},1,6,4,12,{"privacy":35,"idea":38,"execution":39,"performance":40},{"positive":36,"critical":37},0,3,{"positive":36,"critical":30},{"positive":36,"critical":36},{"positive":30,"critical":36},[30,36,30,36,37,37,30,36,36,36,36,36,36,37,36,30,36,37,37,36,42,36,37,36,37,36,36,36],5,"I made a Logicboard.com — A collaborative code editor with code-replay feature.\n\nCode-replay lets you run the coding session like a movie, I wrote a blog post on how I implemented this: https:\u002F\u002Flogicboard.com\u002Fblog\u002Fcode-replay\n\nYou can try out the demo here: https:\u002F\u002Flogicboard.com\u002Fdemo\u002F:replay\n\nAnd play around with the code editor here: https:\u002F\u002Flogicboard.com\u002Fdemo\u002F\n\nLogicboard also has an REPL shell, just type \"start()\" and hit enter in the output area.",{"problem":45,"audience":51,"pricing":51,"motivation":51,"time_to_build":51,"stack":52,"openness":73,"stage":73,"team_size":73},{"value":46,"source":47,"evidence":48},"Collaborative coding in the browser with session replay","maker",[49],{"id":50},"post",null,[53,59,63,69],{"value":54,"source":47,"evidence":55},"Codemirror",[56],{"id":57,"by":11,"text":58},"36091070","Yep, Codemirror + Firepad",{"value":60,"source":47,"evidence":61},"Firepad",[62],{"id":57,"by":11,"text":58},{"value":64,"source":47,"evidence":65},"Phoenix",[66],{"id":67,"by":11,"text":68},"36091097","Thanks! It doesn't use Liveview but the execution backend is Phoenix + Erlang.",{"value":70,"source":47,"evidence":71},"Erlang",[72],{"id":67,"by":11,"text":68},"unknown",{"praise":75,"objections":91,"requests":111,"questions":119,"alternatives":134},[76,84],{"value":77,"source":78,"evidence":79},"Smooth and fast, executes Rust faster than the official playground","commenter",[80],{"id":81,"by":82,"text":83},"36090935","pcthrowaway","Nice use of phoenix liveview (I'm assuming). The app is really smooth, and executes rust faster than the official rust playground",{"value":85,"source":78,"evidence":86},"Usable and polished on mobile",[87],{"id":88,"by":89,"text":90},"36092154","brazzledazzle","Just to add to the other voices: executing untrusted code can be extremely dangerous. There’s so many ways to shoot yourself in the foot. I’m not sure if container boundaries are…",[92,103],{"value":93,"source":78,"evidence":94},"Code execution on an open EC2 instance is a serious abuse and security risk",[95,99],{"id":96,"by":97,"text":98},"36089820","nacs","This allows outbound network access, allows program execution (within the container) and more. You might want to restrict some of these things before Amazon shuts your account…",{"id":100,"by":101,"text":102},"36091339","andrewstuart","As nacs said, this is a really bad idea - you should take it offline or prevent network access ASAP. I just ran a couple of Python scripts that grabbed the ec2 instance metadata…",{"value":104,"source":78,"evidence":105},"Untrusted code execution needs stronger isolation than Docker",[106,110],{"id":107,"by":108,"text":109},"36088700","camdenreslink","Docker containers probably aren’t enough isolation. But throw some firecrackervm in the pot and you’ve got a stew going.",{"id":88,"by":89,"text":90},[112],{"value":113,"source":78,"evidence":114},"Offer code execution as a separate service with an SLA",[115],{"id":116,"by":117,"text":118},"36089726","vikp","This would be interesting to me. There are a few options now, like Judge0, but the language versions are pretty out of date. Self-hosting is not a good time investment at the…",[120,127],{"value":121,"source":78,"evidence":122},"Where is the code executed?",[123],{"id":124,"by":125,"text":126},"36090187","Takennickname","Where is the code being executed?",{"value":128,"source":78,"evidence":129},"Were alternatives like Monaco evaluated?",[130],{"id":131,"by":132,"text":133},"36092424","no_butterscotch","I'm creating a product with an editor. I'm interested to know whether you evaluated alternatives such as Monaco by Microsoft\u002FVSCode? From my research it seems to be the one…",[135,146,150,154],{"value":136,"source":78,"evidence":137},"Repl.it",[138,142],{"id":139,"by":140,"text":141},"36089158","rohitpaulk","Repl.it uses Docker containers too, only recently started work on moving to better isolation mechanisms like VMs",{"id":143,"by":144,"text":145},"36090706","rmorey","Nope, every repl is running in a docker container on a GCP vm, with various other security measures. See: https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=19215175 I believe the very first…",{"value":147,"source":78,"evidence":148},"Judge0",[149],{"id":116,"by":117,"text":118},{"value":151,"source":78,"evidence":152},"Monaco editor",[153],{"id":131,"by":132,"text":133},{"value":155,"source":78,"evidence":156},"Jamsocket",[157],{"id":158,"by":159,"text":160},"36089807","paulgb","We serve production code execution use cases (mainly Python) with Jamsocket: https:\u002F\u002Fjamsocket.com\u002F We've been running it for over a year and would be willing to talk about an…",{"comments":37,"answered":162,"key":163},2,[164,167,168],{"id":165,"text":166},"36091113","It's executed in a Docker container inside an EC2 Instance.",{"id":67,"text":68},{"id":57,"text":58},{"commenters":170,"max_depth":31,"maker_replies":37,"first_comment_mins":171,"lifespan_hours":172},22,27,51,[174,176,180,181,184,186,190,191,192,195,197,200,201,203,204,205,209,213,215,218,220,222,223,226,227,229,232,234],[96,36,30,175,97,36],"project\u002Fcritical\u002Fprivacy",[177,36,36,178,179,36],"36093415","commenter\u002Fneutral\u002Fnone","santiagobasulto",[100,30,30,175,101,36],[182,162,36,178,183,36],"36093886","z3t4",[88,37,37,185,89,36],"project\u002Fmixed\u002Fprivacy",[187,32,37,188,189,36],"36088613","project\u002Fneutral\u002Fidea","ceepee",[107,32,30,175,108,36],[139,32,36,178,140,36],[193,32,36,178,194,36],"36089588","wahnfrieden",[196,32,36,178,144,36],"36090682",[198,32,36,178,199,36],"36088754","LoganDark",[143,32,36,178,144,36],[202,32,36,178,199,36],"36095978",[116,32,37,188,117,36],[158,32,36,178,159,36],[206,32,30,207,208,36],"36091558","project\u002Fcritical\u002Fidea","AdieuToLogic",[210,32,36,211,212,36],"36092030","other\u002Fneutral\u002Fnone","sullivanmatt",[124,42,37,214,125,36],"project\u002Fneutral\u002Fexecution",[216,42,37,214,217,36],"36090932","arjvik",[165,42,36,219,11,30],"maker\u002Fneutral\u002Fexecution",[81,31,42,221,82,36],"project\u002Fpositive\u002Fperformance",[67,31,36,219,11,30],[224,225,37,219,101,36],"36090113",7,[57,225,36,219,11,30],[131,225,37,228,132,36],"maker\u002Fneutral\u002Fnone",[230,225,36,178,231,36],"36097901","dchest",[233,225,36,178,132,36],"36105741",[235,225,36,178,236,36],"36108048","mathhulk",[238,241],{"id":239,"t":240,"points":30,"comments":30},"26715978",1617735978,{"id":4,"t":12,"points":14,"comments":15},[243,247,252,256,261,265],{"id":244,"name":245,"points":246,"category":20},"36128082","QR designer",711,{"id":248,"name":249,"points":250,"category":251},"36070090","LLM University",303,"learning_science",{"id":253,"name":254,"points":255,"category":251},"36084503","FretboardFly",258,{"id":257,"name":258,"points":259,"category":260},"36082551","Hacker News UX",153,"consumer_social",{"id":262,"name":263,"points":264,"category":260},"36071183","HN Follow",133,{"id":266,"name":267,"points":268,"category":269},"36117037","Tiny",100,"games",false,"v2",{"id":273,"name":5,"line":6,"ai":270,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":274,"maker":11,"domain":10,"tier":19,"attempts":162,"strip":275,"url":9,"mix":276,"praise":77,"objection":93,"sub":21},36088359,[21,24,25,26],"1010331000000301033050303000",[30,31,30,32],1794036636171]