[{"data":1,"prerenderedAt":256},["ShallowReactive",2],{"project-23363250":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":43,"what":44,"said":68,"maker_in_thread":162,"shape":173,"grid":177,"attempts":219,"same_week":220,"maker_shows":185,"maker_hidden":249,"reader_version":250,"card":251},"23363250","Caldera","Phoenix LiveView for Node and React","title","Show HN: Caldera – Phoenix LiveView for Node and React","https:\u002F\u002Fgithub.com\u002Fcalderajs\u002Fcaldera-react","github.com","yunyu",1590862239,2020,101,21,641,3028,22,"notable","languages","web framework","library",[24,25,26,27,28],"react","node.js","liveview","server-side rendering","websocket","loved",0.4,{"positive":32,"neutral":33,"mixed":34,"critical":34},5,6,0,11,{"idea":37,"execution":39,"performance":40,"privacy":41},{"positive":38,"critical":34},3,{"positive":34,"critical":34},{"positive":34,"critical":34},{"positive":34,"critical":34},[34,32,34,38,38,34,34,34,34,38,34,32,32,34,32,34,34,32,38,38,38],null,{"problem":45,"audience":43,"pricing":43,"motivation":52,"time_to_build":43,"stack":56,"openness":65,"stage":66,"team_size":67},{"value":46,"source":47,"evidence":48},"Full-stack apps need RPC layers between separate frontend and backend services, causing cruft and security holes","maker",[49],{"id":50,"by":11,"text":51},"23367161","Hey HN, this is a side project that we made after realizing that a solid chunk of the time and code spent doing full-stack development was spent writing and debugging RPC layers…",{"value":53,"source":47,"evidence":54},"Remove RPC layers to reduce full-stack development complexity and code",[55],{"id":50,"by":11,"text":51},[57,61],{"value":58,"source":47,"evidence":59},"React",[60],{"id":50,"by":11,"text":51},{"value":62,"source":47,"evidence":63},"Node.js",[64],{"id":50,"by":11,"text":51},"unknown","prototype","team",{"praise":69,"objections":93,"requests":108,"questions":116,"alternatives":132},[70,86],{"value":71,"source":72,"evidence":73},"Excitement that a JavaScript version of LiveView exists","commenter",[74,78,82],{"id":75,"by":76,"text":77},"23366231","gitgud","Awesome, I was literally searching nodejs alternative to elixr live-view a few months ago, but couldn't find anything. Great work!",{"id":79,"by":80,"text":81},"23367397","namelosw","Nice to see someone finally tackle this in JavaScript! Although Phoenix is great, it's good to have similar things on Node in pursuit of velocity.",{"id":83,"by":84,"text":85},"23367278","knishkz","Woah! This is super cool.",{"value":87,"source":72,"evidence":88},"Built with React's reconciler and hooks",[89],{"id":90,"by":91,"text":92},"23367862","karthikksv","I had this same inspiration from Chris McCord's talk about LiveView ~1.5 years back, and created Purview: https:\u002F\u002Fgithub.com\u002Fkarthikv\u002Fpurview - we've been using it in production…",[94,101],{"value":95,"source":72,"evidence":96},"Latency from sending events to the server",[97],{"id":98,"by":99,"text":100},"23367557","kamesstory","One of the contributors here - not entirely sure if you're asking for pros or cons, but the entire point of Caldera is to execute\u002Fkeep the React code on the server and only…",{"value":102,"source":72,"evidence":103},"Crash isolation weaker than BEAM process isolation",[104],{"id":105,"by":106,"text":107},"23367157","dnautics","one of the things I worry about other platforms attempting to do phoenix LiveView is that the BEAM vm gives you process isolation. If there's a miscode, then the process crashes…",[109],{"value":110,"source":72,"evidence":111},"Add a Flappy Bird performance demo",[112],{"id":113,"by":114,"text":115},"23367441","sansnomme","Can you add a flappy bird demo? I find that flappy bird demos for state-over-wire tech like LiveView and Blazor to be a great gauge for performance and latency. If there is the…",[117,125],{"value":118,"source":72,"evidence":119},"How state is transferred between server processes",[120,121],{"id":90,"by":91,"text":92},{"id":122,"by":123,"text":124},"23387605","fulafel","For the first problem what about the option of making the session:backend-instance mapping sticky? Seems it could be simpler than the implementing the state handover.",{"value":126,"source":72,"evidence":127},"Why use it over normal React web apps",[128],{"id":129,"by":130,"text":131},"23367437","orastor","Very interesting. Why wouldn't I use this for normal web apps if I want to keep my react code server side instead?",[133,137,141,148,155],{"value":134,"source":72,"evidence":135},"Phoenix LiveView",[136],{"id":50,"by":11,"text":51},{"value":138,"source":72,"evidence":139},"Purview",[140],{"id":90,"by":91,"text":92},{"value":142,"source":72,"evidence":143},"StimulusReflex",[144],{"id":145,"by":146,"text":147},"23368210","peteforde","I can't tell if you're joking, but just in case you're serious... the only thing benchmarking flappy bird demos tells you is how fast your internet connection is. I am…",{"value":149,"source":72,"evidence":150},"Laravel Livewire",[151],{"id":152,"by":153,"text":154},"23377483","gremlinsinc","You should add laravel livewire https:\u002F\u002Flaravel-livewire.com\u002F",{"value":156,"source":72,"evidence":157},"ts-liveview",[158],{"id":159,"by":160,"text":161},"23382913","aabbcc1241","That's exactly my starting point to work on ts-liveview. I want to have the runtime property of phoenix liveview (being lightweight and deliver first meaningful paint ASAP) while…",{"comments":163,"answered":164,"key":165},4,1,[166,167,170],{"id":50,"text":51},{"id":168,"text":169},"23369151","Great minds think alike! I had a feeling this was a relatively straightforward insight, and Purview looks like a pretty cool implementation. To answer your questions: 1. We have…",{"id":171,"text":172},"23367170","We are able to catch errors in the React tree (which is per-client) and restrict the crash to the specific client instance. Unfortunately, we haven't gotten around to…",{"commenters":174,"max_depth":38,"maker_replies":163,"first_comment_mins":175,"lifespan_hours":176},16,7,59,[178,180,181,183,184,187,189,193,194,196,198,199,200,204,207,208,210,211,213,216,217],[50,34,34,179,11,164],"project\u002Fpositive\u002Fidea",[90,164,32,179,91,34],[168,164,34,182,11,164],"project\u002Fneutral\u002Fexecution",[122,164,38,182,123,34],[113,185,38,186,114,34],2,"project\u002Fneutral\u002Fperformance",[145,185,34,188,146,34],"commenter\u002Fneutral\u002Fnone",[190,185,34,191,192,34],"23368510","other\u002Fneutral\u002Fnone","networked",[152,185,34,191,153,34],[195,185,34,191,160,34],"23382823",[105,38,38,197,106,34],"project\u002Fneutral\u002Fprivacy",[171,38,34,182,11,164],[75,163,32,179,76,34],[201,32,32,202,203,34],"23363301","project\u002Fpositive\u002Fnone","rgs224",[205,33,34,191,206,34],"23368417","insulanian",[79,175,32,179,80,34],[209,175,34,186,11,164],"23367408",[159,175,34,188,160,34],[83,212,32,202,84,34],8,[129,214,38,215,130,34],9,"project\u002Fneutral\u002Fidea",[98,214,38,186,99,34],[218,214,38,186,160,34],"23382972",[],[221,226,230,235,240,245],{"id":222,"name":223,"points":224,"category":225},"23339244","RoughNotation",696,"dev_tools",{"id":227,"name":228,"points":229,"category":225},"23366532","Simpdf",327,{"id":231,"name":232,"points":233,"category":234},"23370646","WiFi Card",305,"productivity",{"id":236,"name":237,"points":238,"category":239},"23392049","HN Blogs",289,"learning_science",{"id":241,"name":242,"points":243,"category":244},"23408144","Virus Cafe",278,"consumer_social",{"id":246,"name":247,"points":248,"category":225},"23363767","git-fuzzy",251,false,"v2",{"id":252,"name":5,"line":6,"ai":249,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":253,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":254,"url":9,"mix":255,"praise":71,"objection":95,"sub":21},23363250,[24,25,26,27,28],"050330000305505005333",[32,33,34,34],1794036591326]