[{"data":1,"prerenderedAt":255},["ShallowReactive",2],{"project-12860602":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":36,"aspects":37,"strip":44,"post_text":46,"what":47,"said":76,"maker_in_thread":148,"shape":156,"grid":160,"attempts":217,"same_week":218,"maker_shows":39,"maker_hidden":247,"reader_version":248,"card":249},"12860602","SkateJS","a cross framework web components based library","title","Show HN: SkateJS – a cross framework web components based library","https:\u002F\u002Fgithub.com\u002Fskatejs\u002Fskatejs","github.com","jpnelson",1478132607,2016,144,24,237,2264,11,"notable","languages","web components library","library",[24,25,26,27,28],"web components","custom elements","shadow dom","virtual dom","polymer alternative","mixed",0.173,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,6,0,2,16,{"design":38,"docs":40,"idea":41,"execution":43},{"positive":39,"critical":34},1,{"positive":39,"critical":39},{"positive":42,"critical":39},5,{"positive":39,"critical":34},[45,34,42,42,34,45,42,45,42,45,42,42,34,45,42,42,39,34,34,34,34,34,39,45],3,null,{"problem":48,"audience":46,"pricing":46,"motivation":46,"time_to_build":46,"stack":60,"openness":75,"stage":75,"team_size":75},{"value":49,"source":50,"evidence":51},"Writing web components with a small footprint and React-like rendering","commenter",[52,56],{"id":53,"by":54,"text":55},"12862398","treshugart","Thanks for the feedback :) Skate augments the web component spec and employs a functional rendering pipeline. Thus, your comment about it being \"React in native web components\"…",{"id":57,"by":58,"text":59},"12862025","franciscop","The first example and the library itself looks too complex; I was looking for a simple webcomponent library, but I think I will just make a couple of DOM calls myself. For…",[61,69],{"value":62,"source":63,"evidence":64},"JavaScript","inferred",[65],{"id":66,"by":67,"text":68},"12863719","noir_lord","This looks interesting. I'm currently using the component support in Knockout which looks pretty similar in function. ``` ko.components.register('my-widget', { viewModel:…",{"value":70,"source":50,"evidence":71},"Incremental DOM",[72],{"id":73,"by":54,"text":74},"12861533","Someone has made this more idiomatic to the spec: https:\u002F\u002Fgithub.com\u002Ftmpfs\u002Ftrucks. FWIW, we are looking at decoupling Incremental DOM in a way where custom renderers can be…","unknown",{"praise":77,"objections":88,"requests":103,"questions":113,"alternatives":128},[78,82],{"value":79,"source":50,"evidence":80},"Thorough and clear documentation",[81],{"id":66,"by":67,"text":68},{"value":83,"source":50,"evidence":84},"Strict semver with incremental breaking changes",[85],{"id":86,"by":54,"text":87},"12863085","> I see you're already at v4 of the library, how often do you do breaking changes? It's partially a side-effect of following strict semver and using semantic-release but also…",[89,93],{"value":90,"source":50,"evidence":91},"Library feels too complex for simple web components use",[92],{"id":57,"by":58,"text":59},{"value":94,"source":50,"evidence":95},"Comparisons to Polymer and React are out of date",[96,100],{"id":97,"by":98,"text":99},"12861083","jondubois","I heard about SkateJS a long time ago. It looks like it has kept evolving. Reading the docs now, it looks very, very similar to Google's Polymer framework. Polymer is even…",{"id":101,"by":54,"text":102},"12862611","Yeah, the comparisons need updating. I'd prefer not to have them because you're then subject to keeping your README up to date with everyone you compare to but some people have…",[104,108],{"value":105,"source":50,"evidence":106},"Default attribute reflection for properties",[107],{"id":57,"by":58,"text":59},{"value":109,"source":50,"evidence":110},"Clearer examples and docs for the render function",[111,112],{"id":57,"by":58,"text":59},{"id":53,"by":54,"text":55},[114,121],{"value":115,"source":50,"evidence":116},"Why use this instead of React?",[117],{"id":118,"by":119,"text":120},"12861080","aligajani","Why would I use this over React, or why would I use this at all?",{"value":122,"source":50,"evidence":123},"How often do breaking changes happen?",[124],{"id":125,"by":126,"text":127},"12862792","dgelks","Heavy Polymer user here, I have heard about SkateJS a few times but have never really had a close look at other webcomponent libraries yet, will definitely have a look at…",[129,133,137,141],{"value":130,"source":50,"evidence":131},"Polymer",[132],{"id":97,"by":98,"text":99},{"value":134,"source":50,"evidence":135},"React",[136],{"id":118,"by":119,"text":120},{"value":138,"source":50,"evidence":139},"Knockout",[140],{"id":66,"by":67,"text":68},{"value":142,"source":50,"evidence":143},"react-standalone",[144],{"id":145,"by":146,"text":147},"12861297","girvo","The main reason is that integrating web-components into a server-side rendered language (such as PHP, Java, et al) that generates HTML is much simpler than setting a V8 context…",{"comments":35,"answered":39,"key":149},[150,153],{"id":151,"text":152},"12861399","We've been communicating with them pretty closely actually! We're aiming to use the same polyfills so that the community can share the benefits of that. With the imports it's a…",{"id":154,"text":155},"12861298","That's a pretty good question. https:\u002F\u002Fgithub.com\u002Fskatejs\u002Fskatejs#vs-react covers it in a bit of detail. Depending on standards will be great in the long run, as over time the…",{"commenters":157,"max_depth":158,"maker_replies":35,"first_comment_mins":159,"lifespan_hours":157},15,4,110,[161,163,165,167,169,173,174,176,178,181,183,184,186,188,191,193,196,200,203,205,208,211,213,215],[97,34,45,162,98,34],"project\u002Fneutral\u002Fdesign",[151,34,34,164,11,39],"maker\u002Fneutral\u002Fdesign",[73,34,42,166,54,34],"project\u002Fpositive\u002Fdesign",[66,34,42,168,67,34],"project\u002Fpositive\u002Fdocs",[170,34,34,171,172,34],"12862203","commenter\u002Fneutral\u002Fnone","NicoJuicy",[101,34,45,164,54,34],[125,39,42,175,126,34],"project\u002Fpositive\u002Fidea",[86,39,45,177,54,34],"maker\u002Fneutral\u002Fexecution",[179,39,42,180,126,34],"12864556","maker\u002Fpositive\u002Fexecution",[118,35,45,182,119,34],"project\u002Fneutral\u002Fidea",[145,35,42,175,146,34],[185,35,42,175,67,34],"12863737",[154,35,34,187,11,39],"maker\u002Fpositive\u002Fidea",[189,35,45,182,190,34],"12861962","iLoch",[192,35,42,175,54,34],"12862535",[194,35,42,175,195,34],"12861577","spankalee",[197,35,39,198,199,34],"12862750","project\u002Fcritical\u002Fidea","elcct",[201,35,34,171,202,34],"12863119","nilliams",[204,35,34,171,195,34],"12864864",[206,35,34,171,207,34],"12863217","pavlov",[209,35,34,171,210,34],"12863406","marknutter",[212,35,34,171,195,34],"12864843",[57,45,39,214,58,34],"project\u002Fcritical\u002Fdocs",[53,45,45,216,54,34],"maker\u002Fneutral\u002Fdocs",[],[219,224,229,234,238,243],{"id":220,"name":221,"points":222,"category":223},"12879179","Jasonette",648,"dev_tools",{"id":225,"name":226,"points":227,"category":228},"12909967","DevFreeBooks",571,"learning_science",{"id":230,"name":231,"points":232,"category":233},"12891158","DeepRhyme (D-Prime)",208,"ai",{"id":235,"name":236,"points":237,"category":223},"12874740","Best of Themes",164,{"id":239,"name":240,"points":241,"category":242},"12862195","Portainer",146,"infrastructure",{"id":244,"name":245,"points":246,"category":223},"12898366","comments",137,false,"v2",{"id":250,"name":5,"line":6,"ai":247,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":251,"top":18,"kw":252,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":253,"url":9,"mix":254,"praise":79,"objection":90,"sub":21},12860602,0.17,[24,25,26,27,28],"305503535355035510000013",[32,33,34,35],1794036549154]