[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"project-25677272":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":47,"post_text":48,"what":49,"said":87,"maker_in_thread":180,"shape":191,"grid":195,"attempts":625,"same_week":626,"maker_shows":42,"maker_hidden":656,"reader_version":657,"card":658},"25677272","Synergy","A 4kb alternative to React, Vue, etc for building web UIs.","title","Show HN: I built a 4kb alternative to React, Vue, etc for building web UIs.","https:\u002F\u002Fsynergyjs.org","synergyjs.org","defx",1610052619,2021,343,162,98,2533,4,"legend","languages","ui library","library",[24,25,26,27,28],"custom elements","web components","frontend framework","javascript ui","templating","mixed",0.002,{"positive":32,"neutral":33,"mixed":18,"critical":34},14,25,10,53,{"idea":37,"performance":40,"execution":43,"design":45,"docs":46},{"positive":38,"critical":39},3,5,{"positive":41,"critical":42},0,1,{"positive":41,"critical":44},2,{"positive":38,"critical":42},{"positive":42,"critical":41},[42,41,38,41,41,41,41,41,39,41,41,38,42,39,39,39,39,38,38,41,41,38,38,41,42,39,42,39,38,38,38,38,18,38,44,42,39,38,38,38],null,{"problem":50,"audience":57,"pricing":48,"motivation":66,"time_to_build":48,"stack":70,"openness":85,"stage":86,"team_size":85},{"value":51,"source":52,"evidence":53},"Building web UIs with simpler terms than React or Vue","maker",[54],{"id":55,"by":11,"text":56},"25677273","Synergy is my attempt to create the thinnest possible layer of abstraction over the browsers built-in APIs in order to build UIs with Custom Elements. I wanted to be able to…",{"value":58,"source":59,"evidence":60},"Front-end developers who want a minimal UI layer","inferred",[61,62],{"id":55,"by":11,"text":56},{"id":63,"by":64,"text":65},"25679770","lhorie","Skimmed through the docs. Some thoughts: - it has a bunch of useful serialization sugar (e.g. `{{ classes }}` serializes correctly whether it's an array, an object of booleans,…",{"value":67,"source":52,"evidence":68},"Maker enjoys building it and wants simpler UI expression",[69],{"id":55,"by":11,"text":56},[71,77,81],{"value":72,"source":52,"evidence":73},"JavaScript",[74],{"id":75,"by":11,"text":76},"25690242","Thanks for your question. Yes, that's correct - Synergy uses Proxy to detect change on the object and then simply walks the tree and updates the nodes whose bindings have…",{"value":78,"source":52,"evidence":79},"Custom Elements",[80],{"id":55,"by":11,"text":56},{"value":82,"source":52,"evidence":83},"Proxy",[84],{"id":75,"by":11,"text":76},"unknown","beta",{"praise":88,"objections":105,"requests":127,"questions":137,"alternatives":153},[89,101],{"value":90,"source":91,"evidence":92},"Clean, well documented docs","commenter",[93,97],{"id":94,"by":95,"text":96},"25680034","mjgoeke","I really like this project, especially when going through the docs. Nearly all the abstractions are very clean in their approach, the only outlier being the hack of using `#each`…",{"id":98,"by":99,"text":100},"25679187","chrisweekly","This looks surprisingly well documented for such a tiny project, and reasonably complete for such a tiny runtime. Nicely done! :)",{"value":102,"source":91,"evidence":103},"Packs a lot into 4kb",[104],{"id":63,"by":64,"text":65},[106,113,120],{"value":107,"source":91,"evidence":108},"Name conflicts with existing Synergy packages",[109],{"id":110,"by":111,"text":112},"25683218","alexey2020","Just noticed there is already existing another Synergy framework and \"Synergy\" package. Probably better to rename the library to avoid confusion. By the way, in terms of bundle…",{"value":114,"source":91,"evidence":115},"Nested loops and loop index handling are limited",[116,117],{"id":63,"by":64,"text":65},{"id":118,"by":11,"text":119},"25679938","Re the '#', yes - this is currently a limitation and will be addressed, most likely with destructuring syntax for the repeated block declaration (e.g., #each [i, item] in items)",{"value":121,"source":91,"evidence":122},"Landing page and description are too minimal",[123],{"id":124,"by":125,"text":126},"25682841","Cyber_squad","You should work on your landing. I really appreciate the idea and I personal feel the minimalistic design you have behind this concept and the landing page it try to promote, but…",[128,133],{"value":129,"source":91,"evidence":130},"Tutorials and more docs",[131,132],{"id":63,"by":64,"text":65},{"id":124,"by":125,"text":126},{"value":134,"source":91,"evidence":135},"Better SSR or prerendering approach",[136],{"id":63,"by":64,"text":65},[138,149],{"value":139,"source":91,"evidence":140},"How it compares with Preact and Svelte",[141,145],{"id":142,"by":143,"text":144},"25679186","chubot","How does it compare with Preact? https:\u002F\u002Fpreactjs.com\u002F I tried Preact a few weeks ago and the examples all worked, which was nice. And there's no build step -- you can develop…",{"id":146,"by":147,"text":148},"25681702","turtlebits","Looks nice. Svelte is also \u003C4kb, but it is compiled.",{"value":150,"source":91,"evidence":151},"Whether it suits full single page apps",[152],{"id":94,"by":95,"text":96},[154,162,166,173],{"value":155,"source":91,"evidence":156},"Preact",[157,158],{"id":142,"by":143,"text":144},{"id":159,"by":160,"text":161},"25679208","remram","preact (https:\u002F\u002Fpreactjs.com\u002F) is 3kB... And React is only about 5kB unless I'm mistaken?",{"value":163,"source":91,"evidence":164},"Svelte",[165],{"id":146,"by":147,"text":148},{"value":167,"source":91,"evidence":168},"Alpine.js",[169],{"id":170,"by":171,"text":172},"25678863","vldmrs","Hi, how is your project different from alpine.js?",{"value":174,"source":91,"evidence":175},"LitElement",[176],{"id":177,"by":178,"text":179},"25682824","lolive","Isn't it LitElement reinvented?",{"comments":181,"answered":182,"key":183},48,26,[184,187,190],{"id":185,"text":186},"25702127","Thanks for the kind words. I completely understand the cynicism, especially when it comes to the front end \u002F javascript scene. I'm not entirely sure if the title I chose has…",{"id":188,"text":189},"25684320","I've seen that too, but there are also tons of projects that stay true to their original intentions and it wouldn't make sense (to me at least) to morph synergy into a \"one size…",{"id":55,"text":56},{"commenters":192,"max_depth":193,"maker_replies":181,"first_comment_mins":41,"lifespan_hours":194},84,8,133,[196,200,204,207,211,214,217,220,223,225,229,233,236,239,242,245,248,251,254,256,258,260,262,265,267,270,273,276,279,283,287,290,292,294,297,299,303,305,306,308,312,315,318,321,323,327,329,332,336,338,341,344,346,349,352,355,357,360,363,365,369,371,375,377,381,383,386,388,390,391,393,396,398,400,401,403,405,408,411,413,416,418,421,423,426,429,432,434,436,438,440,442,444,446,447,449,451,453,456,458,460,463,468,471,473,475,477,480,483,485,487,489,491,494,496,499,501,503,506,508,512,515,518,520,522,524,527,529,532,535,538,540,544,548,550,553,555,557,560,564,566,570,575,578,582,584,586,588,590,592,596,598,602,604,606,608,610,612,614,617,619,623],[197,41,42,198,199,41],"25682506","project\u002Fcritical\u002Fidea","narrator",[201,41,41,202,203,41],"25683032","commenter\u002Fneutral\u002Fnone","devwastaken",[205,41,41,202,206,41],"25683303","ForHackernews",[208,41,41,209,210,41],"25683359","other\u002Fneutral\u002Fnone","nailer",[212,41,41,209,213,41],"25683360","Xevi",[215,41,41,202,216,41],"25683726","worldsayshi",[218,41,41,202,219,41],"25683436","LandR",[221,41,41,202,222,41],"25685045","cy_hauser",[224,41,41,202,64,41],"25685370",[226,41,38,227,228,41],"25683109","project\u002Fneutral\u002Fidea","bryanrasmussen",[230,41,38,231,232,41],"25683410","project\u002Fneutral\u002Fperformance","Cthulhu_",[234,41,41,209,235,41],"25683133","jbergstroem",[237,41,41,209,238,41],"25683231","zappo2938",[240,41,41,209,241,41],"25683597","prox",[243,41,41,202,244,41],"25683655","pstadler",[246,41,41,202,247,41],"25683724","jailbird_bd",[249,41,41,209,250,41],"25683935","rendall",[252,41,41,202,253,41],"25684761","FpUser",[255,41,41,202,250,41],"25685047",[257,41,41,209,253,41],"25686613",[259,41,41,209,247,41],"25683695",[261,41,41,209,253,41],"25684724",[263,41,41,202,264,41],"25684927","kikimora",[266,41,41,209,253,41],"25685983",[268,41,41,209,269,41],"25684132","jerrygoyal",[271,41,41,272,241,41],"25685277","other\u002Fpositive\u002Fdocs",[274,41,41,209,275,41],"25690660","nicwolff",[277,41,41,202,278,41],"25683967","otar",[280,41,41,281,282,41],"25684200","other\u002Fneutral\u002Fidea","mhaberl",[284,41,41,285,286,41],"25684255","commenter\u002Fcritical\u002Fnone","lucideer",[288,41,41,202,289,41],"25684563","chiefalchemist",[291,41,41,209,64,41],"25685324",[293,41,41,202,286,41],"25687321",[295,41,41,202,296,41],"25684840","slumdev",[298,41,41,202,286,41],"25687624",[300,41,39,301,302,41],"25701460","project\u002Fpositive\u002Fidea","Pick-A-Hill2019",[185,41,41,304,11,42],"maker\u002Fneutral\u002Fnone",[188,41,41,227,11,42],[307,41,41,209,64,41],"25685162",[309,41,41,310,311,41],"25685975","other\u002Fpositive\u002Fnone","oofoe",[313,41,41,209,314,41],"25686105","raj_khare",[316,41,41,209,317,41],"25687110","Existenceblinks",[319,41,41,202,320,41],"25687622","mekkkkkk",[55,42,41,322,11,42],"maker\u002Fneutral\u002Fidea",[324,42,39,325,326,41],"25677737","maker\u002Fpositive\u002Fnone","forgotmypw17",[328,42,41,304,11,42],"25677899",[330,42,38,331,326,41],"25681870","project\u002Fneutral\u002Fexecution",[333,42,42,334,335,41],"25682510","project\u002Fcritical\u002Fexecution","nine_k",[337,42,41,202,326,41],"25682535",[339,42,42,334,340,41],"25683075","jlokier",[342,42,41,343,11,42],"25683112","maker\u002Fneutral\u002Fdocs",[345,42,41,331,11,42],"25683171",[347,42,39,325,348,41],"25680552","h3rald",[350,42,38,227,351,41],"25680950","qwantim1",[353,42,39,301,354,41],"25681367","onelovetwo",[356,42,41,304,11,42],"25683325",[358,42,38,227,359,41],"25685906","rk06",[361,42,39,325,362,41],"25681982","romwell",[364,42,41,325,11,42],"25683084",[366,42,39,367,368,41],"25682011","project\u002Fpositive\u002Fdesign","fergie",[370,42,41,325,11,42],"25683308",[372,42,38,373,374,41],"25682337","project\u002Fneutral\u002Fnone","NetOpWibby",[376,42,41,202,11,42],"25682994",[378,42,39,379,380,41],"25682958","project\u002Fpositive\u002Fnone","mordechai9000",[382,42,41,325,11,42],"25682993",[384,42,39,379,385,41],"25692646","farynaio",[387,42,41,325,11,42],"25713670",[389,42,38,331,317,41],"25687247",[75,42,41,331,11,42],[94,44,38,392,95,41],"project\u002Fmixed\u002Fdesign",[394,44,41,395,11,42],"25680237","project\u002Fneutral\u002Fdesign",[397,44,41,373,11,42],"25680275",[399,44,41,367,11,42],"25759911",[142,38,38,373,143,41],[402,38,38,227,99,41],"25679233",[404,38,41,227,11,42],"25679349",[406,38,41,202,407,41],"25679426","docuru",[409,38,41,202,410,41],"25679555","afavour",[412,38,41,202,407,41],"25679624",[414,38,41,202,415,41],"25680648","tayo42",[417,38,41,202,410,41],"25680884",[419,38,41,202,420,41],"25683539","capableweb",[422,38,41,202,410,41],"25688451",[424,38,41,209,425,41],"25679968","quaffapint",[427,38,41,209,428,41],"25685714","developit",[430,38,41,209,431,41],"25680165","tekstar",[63,18,38,433,64,41],"project\u002Fmixed\u002Fnone",[435,18,41,373,11,42],"25679856",[437,18,41,395,11,42],"25679898",[439,18,38,395,64,41],"25679982",[441,18,41,395,11,42],"25680163",[443,18,38,395,64,41],"25680204",[445,18,41,395,11,42],"25683253",[118,18,41,395,11,42],[448,18,41,373,11,42],"25679978",[450,18,41,395,11,42],"25680017",[452,18,41,395,11,42],"25680101",[454,18,41,455,11,42],"25680192","project\u002Fneutral\u002Fdocs",[457,39,42,198,407,41],"25679499",[459,39,41,304,11,42],"25679626",[461,39,41,209,462,41],"25679702","mark_mart",[464,465,38,466,467,41],"25682913",6,"project\u002Fmixed\u002Fperformance","onion2k",[469,470,41,373,11,42],"25678018",7,[472,470,39,301,213,41],"25680865",[474,470,41,325,11,42],"25683049",[110,193,42,476,111,41],"project\u002Fcritical\u002Fnone",[478,193,41,209,479,41],"25683296","cpach",[481,193,41,209,482,41],"25683367","cube00",[484,193,41,209,111,41],"25683399",[486,193,41,202,11,42],"25683390",[488,193,41,202,111,41],"25683417",[490,193,41,325,11,42],"25684450",[98,492,39,493,99,41],9,"project\u002Fpositive\u002Fdocs",[495,492,41,325,11,42],"25679258",[497,34,41,209,498,41],"25684467","stagas",[500,34,41,209,11,42],"25687621",[146,502,38,373,147,41],11,[504,502,38,227,505,41],"25682211","mizzao",[507,502,41,227,11,42],"25683718",[509,502,41,510,511,41],"25682714","other\u002Fneutral\u002Fdesign","thunderbong",[513,502,41,202,514,41],"25685436","BatteryMountain",[516,502,41,202,517,41],"25686843","rhengles",[124,519,38,392,125,41],12,[521,519,41,343,11,42],"25683046",[170,523,38,227,171,41],13,[525,523,38,395,526,41],"25678940","sillycon-valley",[528,523,41,227,11,42],"25679039",[530,523,38,373,531,41],"25679130","stanislavb",[533,32,41,209,534,41],"25681063","IggleSniggle",[536,537,39,367,374,41],"25682390",15,[539,537,41,304,11,42],"25683270",[541,542,42,198,543,41],"25680386",16,"ablekh",[545,546,39,367,547,41],"25679127",17,"onurcel",[549,546,41,304,11,42],"25679457",[551,546,41,209,552,41],"25679831","gitgud",[554,546,41,209,547,41],"25680287",[159,556,38,231,160,41],18,[558,556,38,231,559,41],"25679286","gunn",[561,556,42,562,563,41],"25680081","project\u002Fcritical\u002Fperformance","markdown",[565,556,41,202,160,41],"25680782",[567,568,38,227,569,41],"25691191",19,"anthonysarkis",[571,572,42,573,574,41],"25680758",20,"project\u002Fcritical\u002Fdesign","woah",[576,572,41,577,11,42],"25759845","maker\u002Fneutral\u002Fdesign",[579,580,38,227,581,41],"25679211",21,"hbbio",[177,583,42,198,178,41],22,[585,583,41,227,11,42],"25699718",[587,583,38,304,178,41],"25701439",[589,583,41,227,11,42],"25713790",[591,583,39,325,178,41],"25717421",[593,594,38,231,595,41],"25724264",23,"jeerovan",[597,594,41,231,11,42],"25726397",[599,600,38,395,601,41],"25683571",24,"scotty79",[603,600,41,395,11,42],"25684650",[605,600,38,395,601,41],"25686158",[607,600,41,322,11,42],"25700114",[609,600,41,395,11,42],"25684658",[611,33,38,227,462,41],"25679680",[613,33,41,455,11,42],"25679718",[615,182,42,198,616,41],"25683544","karmasimida",[618,182,41,304,11,42],"25700164",[620,621,39,325,622,41],"25684263",27,"imvetri",[624,621,41,304,11,42],"25684668",[],[627,632,637,642,647,651],{"id":628,"name":629,"points":630,"category":631},"25749492","Amplication",272,"dev_tools",{"id":633,"name":634,"points":635,"category":636},"25713858","hn-big-threads",248,"consumer_social",{"id":638,"name":639,"points":640,"category":641},"25750807","Vantage",221,"infrastructure",{"id":643,"name":644,"points":645,"category":646},"25683808","Ecco",185,"ai",{"id":648,"name":649,"points":650,"category":641},"25671919","I built an intercom for my 6 yo to keep us connected during quarantine",181,{"id":652,"name":653,"points":654,"category":655},"25678568","Leet Resumes",147,"productivity",false,"v2",{"id":659,"name":5,"line":6,"ai":656,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":41,"top":18,"kw":660,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":661,"url":9,"mix":662,"praise":90,"objection":107,"sub":21},25677272,[24,25,26,27,28],"1030000050031555533003301515333343215333",[32,33,18,34],1794036601017]