[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"project-31891608":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":45,"what":46,"said":70,"maker_in_thread":135,"shape":146,"grid":150,"attempts":229,"same_week":230,"maker_shows":33,"maker_hidden":260,"reader_version":261,"card":262},"31891608","Yboard","Yboard is a multiplayer desktop-like workspace based on CRDT","title","Show HN: Yboard is a multiplayer desktop-like workspace based on CRDT","https:\u002F\u002Fgithub.com\u002Ffelipeleivav\u002Fyboard","github.com","selknam",1656315191,2022,165,28,367,2570,15,"notable","productivity","collaborative workspace","web_app",[24,25,26,21,27],"crdt","yjs","multiplayer","real-time sync","mixed",-0.069,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,4,1,5,13,{"performance":37,"execution":39,"idea":40,"docs":42,"design":43},{"positive":38,"critical":33},0,{"positive":38,"critical":31},{"positive":41,"critical":38},2,{"positive":38,"critical":38},{"positive":38,"critical":33},[38,38,38,38,38,38,38,38,38,38,31,31,34,33,33,38,31,38,33,33,33,31,38,31,38,34,38,34],"I've always been curious about real-time multiplayer user interfaces.\n\nWhen I found out about CRDTs and Yjs[1] I thought they could serve as a solid base for a project like that.\n\nSo I built this pretty simple desktop-like UI (heavily inspired by lifeat.io) and used Yjs to replicate the whole UI state among multiple peers, creating the experience of a unique interface.\n\nTry online: https:\u002F\u002Fyboard.lol\n\n[1]: https:\u002F\u002Fgithub.com\u002Fyjs\u002Fyjs",{"problem":47,"audience":47,"pricing":47,"motivation":48,"time_to_build":47,"stack":54,"openness":67,"stage":68,"team_size":69},null,{"value":49,"source":50,"evidence":51},"Curiosity about real-time multiplayer user interfaces","maker",[52],{"id":53},"post",[55,59],{"value":56,"source":50,"evidence":57},"Yjs",[58],{"id":53},{"value":60,"source":61,"evidence":62},"WebSocket provider","commenter",[63],{"id":64,"by":65,"text":66},"31892802","aar9","Haven't tried with this specific project, but Yjs has a WebrtcProvider [0] which could be used where the project now uses WebsocketProvider [1]. Yjs is built to allow you to…","open_source","launched","unknown",{"praise":71,"objections":86,"requests":102,"questions":121,"alternatives":130},[72,79],{"value":73,"source":61,"evidence":74},"Fun modern take on Google Wave",[75],{"id":76,"by":77,"text":78},"31891940","learndeeply","This looks really fun, modern incarnation of Google Wave. Made a test room here: https:\u002F\u002Fyboard.lol\u002Flobby?join=hackernews",{"value":80,"source":61,"evidence":81},"Cool SVG canvas use",[82],{"id":83,"by":84,"text":85},"31891927","verdverm","neat use of SVG as a drawing canvas, would be cool if it supported touch too",[87],{"value":88,"source":61,"evidence":89},"Demo unavailable due to server overload and login failures",[90,94,98],{"id":91,"by":92,"text":93},"31892599","mhaberl","\"Couldn't connect to the room server. Error joining room\" Show something cool on HN and get hugged to death :)",{"id":95,"by":96,"text":97},"31892458","jansan","Hmm, something seems to have broken. Login does not work for me.",{"id":99,"by":100,"text":101},"31892663","seclorum_wien","error joining room.",[103,107,114],{"value":104,"source":61,"evidence":105},"Touch support",[106],{"id":83,"by":84,"text":85},{"value":108,"source":61,"evidence":109},"Offline editing support",[110],{"id":111,"by":112,"text":113},"31894498","woodrowbarlow","since this is based on CRDTs, does that mean one of the collaborators can go offline, continue working, and re-synchronize with the rest of the collaborators when they come back…",{"value":115,"source":61,"evidence":116},"WebRTC instead of WebSocket server",[117],{"id":118,"by":119,"text":120},"31892060","diroussel","Could WebRTC be used instead of websockets? Then you wouldn’t need a server (apart from a public STUN\u002FTURN endpoint)",[122,126],{"value":123,"source":61,"evidence":124},"Does it support offline editing and resync?",[125],{"id":111,"by":112,"text":113},{"value":127,"source":61,"evidence":128},"Could WebRTC replace websockets?",[129],{"id":118,"by":119,"text":120},[131],{"value":132,"source":61,"evidence":133},"Google Wave",[134],{"id":76,"by":77,"text":78},{"comments":34,"answered":33,"key":136},[137,140,143],{"id":138,"text":139},"31896004","Good point. I think this is because it's interesting how CRDT being a solution for conflict merging it's inherently capable of allowing real time applications, even when it's not…",{"id":141,"text":142},"31894872","Exactly this. Websocket server went down but already fixed that. Thanks for testing.",{"id":144,"text":145},"31897817","Thanks, I've just added MIT licence :)",{"commenters":147,"max_depth":31,"maker_replies":34,"first_comment_mins":148,"lifespan_hours":149},21,54,14,[151,155,159,161,164,166,169,172,174,175,178,180,182,184,186,188,189,193,195,197,200,205,208,211,213,217,222,225],[152,38,38,153,154,38],"31892570","other\u002Fneutral\u002Fnone","smcameron",[156,33,38,157,158,38],"31892585","other\u002Fneutral\u002Fidea","LAC-Tech",[160,33,38,157,100,38],"31892649",[162,33,38,157,163,38],"31892650","samwillis",[165,33,38,157,100,38],"31892668",[167,33,38,157,168,38],"31893208","rkangel",[170,33,38,157,171,38],"31895577","phailhaus",[173,33,38,157,158,38],"31900530",[138,33,38,157,11,33],[176,33,38,157,177,38],"31896966","pmontra",[118,41,31,179,119,38],"project\u002Fneutral\u002Fperformance",[64,41,31,181,65,38],"project\u002Fneutral\u002Fexecution",[76,31,34,183,77,38],"project\u002Fpositive\u002Fidea",[99,31,33,185,100,38],"project\u002Fcritical\u002Fexecution",[91,32,33,187,92,38],"project\u002Fcritical\u002Fperformance",[141,32,38,179,11,33],[190,34,31,191,192,38],"31897257","project\u002Fneutral\u002Fdocs","bound008",[144,34,38,194,11,33],"maker\u002Fpositive\u002Fdocs",[95,196,33,185,96,38],6,[198,196,33,185,199,38],"31892509","macmac",[201,202,33,203,204,38],"31898045",7,"project\u002Fcritical\u002Fdesign","anigbrowl",[83,206,31,207,84,38],8,"project\u002Fmixed\u002Fdesign",[209,206,38,210,11,33],"31896390","maker\u002Fneutral\u002Fdesign",[111,212,31,179,112,38],9,[214,212,38,215,216,38],"31900960","other\u002Fneutral\u002Fdocs","aaaaaaaaata",[218,219,34,220,221,38],"31892141",10,"project\u002Fpositive\u002Fnone","fullstackwife",[223,219,38,224,11,33],"31896311","maker\u002Fpositive\u002Fnone",[226,227,34,183,228,38],"31900410",11,"anon115",[],[231,236,241,246,250,255],{"id":232,"name":233,"points":234,"category":235},"31903076","min-dalle",663,"ai",{"id":237,"name":238,"points":239,"category":240},"31925871","TAXSIM.app",497,"finance_crypto",{"id":242,"name":243,"points":244,"category":245},"31897430","PRQL 0.2",378,"languages",{"id":247,"name":248,"points":249,"category":20},"31910622","Legible News",320,{"id":251,"name":252,"points":253,"category":254},"31921830","Brevity 500",193,"learning_science",{"id":256,"name":257,"points":258,"category":259},"31905554","Teapodo",154,"creative",false,"v2",{"id":263,"name":5,"line":6,"ai":260,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":264,"top":18,"kw":265,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":266,"url":9,"mix":267,"praise":73,"objection":88,"sub":21},31891608,-0.07,[24,25,26,21,27],"0000000000335110301113030505",[31,32,33,34],1794036621861]