[{"data":1,"prerenderedAt":136},["ShallowReactive",2],{"project-46212026":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":33,"aspects":34,"strip":36,"post_text":30,"what":37,"said":61,"maker_in_thread":80,"shape":83,"grid":87,"attempts":96,"same_week":97,"maker_shows":128,"maker_hidden":129,"reader_version":130,"card":131},"46212026","Fate","A new data framework for React and tRPC, inspired by Relay","title","Show HN: Fate, a new data framework for React and tRPC, inspired by Relay","https:\u002F\u002Fgithub.com\u002Fnkzw-tech\u002Ffate","github.com","cpojer",1765322052,2025,29,3,1680,3837,44,"shown","languages","data fetching framework","library",[24,25,26,27,28],"react","trpc","relay","data fetching","typescript","quiet",null,{"positive":32,"neutral":32,"mixed":33,"critical":32},0,1,{"design":35},{"positive":32,"critical":32},[15,32,32],{"problem":30,"audience":30,"pricing":30,"motivation":30,"time_to_build":30,"stack":38,"openness":60,"stage":60,"team_size":60},[39,45,49],{"value":40,"source":41,"evidence":42},"React","maker",[43],{"id":44},"post",{"value":46,"source":41,"evidence":47},"tRPC",[48],{"id":44},{"value":50,"source":51,"evidence":52},"TypeScript","inferred",[53,57],{"id":54,"by":55,"text":56},"46215623","Reubend","This provides plenty of value conceptually, but I wish they were able to push the syntax into a more intuitive place. My biggest gripe with Relay is how forced the syntax feels,…",{"id":58,"by":11,"text":59},"46217825","You don't have to rename the variable. You can also do this: ``` export function PostCard(props: { post: ViewRef\u003C'Post'> }) { ``` const post = useView(PostView, props.post); ```…","unknown",{"praise":62,"objections":63,"requests":69,"questions":74,"alternatives":75},[],[64],{"value":65,"source":66,"evidence":67},"Relay-style syntax feels forced and awkward, e.g. component prop typing with ViewRef","commenter",[68],{"id":54,"by":55,"text":56},[70],{"value":71,"source":66,"evidence":72},"Less awkward component syntax",[73],{"id":54,"by":55,"text":56},[],[76],{"value":77,"source":66,"evidence":78},"Relay",[79],{"id":54,"by":55,"text":56},{"comments":33,"answered":32,"key":81},[82],{"id":58,"text":59},{"commenters":15,"max_depth":84,"maker_replies":33,"first_comment_mins":85,"lifespan_hours":86},2,590,16,[88,90,92],[54,32,15,89,55,32],"project\u002Fmixed\u002Fdesign",[58,32,32,91,11,33],"maker\u002Fneutral\u002Fdesign",[93,32,32,94,95,32],"46218692","commenter\u002Fneutral\u002Fnone","hombre_fatal",[],[98,103,108,113,118,123],{"id":99,"name":100,"points":101,"category":102},"46205632","Gemini Pro 3 HN front page 2035 (future Hacker News front page)",3346,"ai",{"id":104,"name":105,"points":106,"category":107},"46220794","alpranalysis",239,"data",{"id":109,"name":110,"points":111,"category":112},"46148460","Onlyrecipe 2.0",201,"consumer_social",{"id":114,"name":115,"points":116,"category":117},"46203581","AlgoDrill",178,"learning_science",{"id":119,"name":120,"points":121,"category":122},"46198430","Docket",177,"productivity",{"id":124,"name":125,"points":126,"category":127},"46147329","Fanfa",154,"dev_tools",4,false,"v2",{"id":132,"name":5,"line":6,"ai":129,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":133,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":134,"url":9,"mix":135,"praise":-1,"objection":65,"sub":21},46212026,[24,25,26,27,28],"300",[32,32,33,32],1794036687128]