[{"data":1,"prerenderedAt":261},["ShallowReactive",2],{"project-10100155":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":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":39,"post_text":41,"what":42,"said":55,"maker_in_thread":146,"shape":148,"grid":152,"attempts":223,"same_week":224,"maker_shows":30,"maker_hidden":253,"reader_version":254,"card":255},"10100155","react-form-generator","Generate React forms from JSON form schemas","title","Show HN: Generate React forms from JSON form schemas","https:\u002F\u002Fgithub.com\u002FSteveVitali\u002Freact-form-generator","github.com","SteveVitali",1440190210,2015,107,27,230,2565,9,"notable","dev_tools","form generator","library",[24,25,21,26],"react","json schema","forms","mixed",0.111,{"positive":30,"neutral":31,"mixed":32,"critical":32},2,3,1,7,{"idea":35,"design":37,"execution":38},{"positive":32,"critical":36},0,{"positive":36,"critical":36},{"positive":32,"critical":32},[36,36,36,36,31,36,36,36,36,36,36,36,36,36,36,36,36,36,36,40,31,31,31,36,36,40,32],5,null,{"problem":41,"audience":41,"pricing":41,"motivation":41,"time_to_build":41,"stack":43,"openness":54,"stage":54,"team_size":54},[44,50],{"value":45,"source":46,"evidence":47},"React","inferred",[48],{"id":49},"post",{"value":51,"source":46,"evidence":52},"JSON Schema",[53],{"id":49},"unknown",{"praise":56,"objections":73,"requests":85,"questions":100,"alternatives":112},[57],{"value":58,"source":59,"evidence":60},"Commenters find the idea useful and the approach promising","commenter",[61,65,69],{"id":62,"by":63,"text":64},"10100841","rathereasy","Whoa, this is pretty cool. People have been trying to do this for ages. If they've been analyzing how people code, they have some valuable data to develop from. I hope they make…",{"id":66,"by":67,"text":68},"10100768","sudo_bang_bang","I just started learning React and it's great how libraries like these are almost making the construction of front-end web components into a DSL via JSON schemas.",{"id":70,"by":71,"text":72},"10100326","krrishd","This is pretty amazing. Is it all auto-recursive?",[74,81],{"value":75,"source":59,"evidence":76},"JSON Schema lacks form attributes like property order",[77],{"id":78,"by":79,"text":80},"10100788","msoad","I have some experience in this. Problem is, JSON Schema doesn't give you some attributes like order of properties for building the form. What makes sense is extending JSON Schema…",{"value":82,"source":59,"evidence":83},"Hard cases like recursion and oneOf need solving",[84],{"id":78,"by":79,"text":80},[86,93],{"value":87,"source":59,"evidence":88},"Support for custom input widgets",[89],{"id":90,"by":91,"text":92},"10103108","tootie","Was working on a similar project that I never managed to finish. I think this is a really useful tool. One thing missing is custom input widgets.",{"value":94,"source":59,"evidence":95},"Unit tests",[96],{"id":97,"by":98,"text":99},"10103001","r-cid","Cool. Unit tests would be nice.",[101,108],{"value":102,"source":59,"evidence":103},"How are dates handled?",[104],{"id":105,"by":106,"text":107},"10100924","PretzelFisch","Maybe I am missing something but how are they dealing with dates?",{"value":109,"source":59,"evidence":110},"Is it auto-recursive?",[111],{"id":70,"by":71,"text":72},[113,121,132,139],{"value":114,"source":59,"evidence":115},"json-editor",[116,117],{"id":78,"by":79,"text":80},{"id":118,"by":119,"text":120},"10101097","btown","It's pretty easy to extend JSON Schema with all sorts of other metadata about how a UI should represent the data, or how automated tools should interact with records, making your…",{"value":122,"source":59,"evidence":123},"tcomb-form",[124,128],{"id":125,"by":126,"text":127},"10100435","laurencerowe","See also tcomb-form [1] with it's tcomb-json-schema plugin [2]. We're currently using react-forms with a custom json-schema to react-forms schema conversion. [1]…",{"id":129,"by":130,"text":131},"10100892","nutate","tcomb-form is the most elegant solution I've seen to this problem in React. Really nice to use.",{"value":133,"source":59,"evidence":134},"formsy-react",[135],{"id":136,"by":137,"text":138},"10100443","hoodoof","Also https:\u002F\u002Fgithub.com\u002Fchristianalfoni\u002Fformsy-react",{"value":140,"source":59,"evidence":141},"aldeed:autoform (Meteor)",[142],{"id":143,"by":144,"text":145},"10101879","justaaron","Meteor js had this with the aldeed:autoform package ages ago",{"comments":36,"answered":36,"key":147},[],{"commenters":149,"max_depth":31,"maker_replies":36,"first_comment_mins":150,"lifespan_hours":151},25,29,24,[153,157,161,164,168,170,171,174,176,180,183,186,188,191,193,194,195,197,200,203,206,208,211,214,217,218,221],[154,36,36,155,156,36],"10100400","other\u002Fneutral\u002Fidea","o_____________o",[158,36,36,159,160,36],"10100629","other\u002Fcritical\u002Fidea","sync",[162,36,36,155,163,36],"10100657","brotchie",[165,36,36,166,167,36],"10100945","other\u002Fneutral\u002Fnone","zachrose",[78,36,31,169,79,36],"project\u002Fneutral\u002Fidea",[118,36,36,155,119,36],[172,36,36,166,173,36],"10102278","alexatkeplar",[62,32,36,175,63,36],"other\u002Fpositive\u002Fidea",[177,32,36,178,179,36],"10101171","commenter\u002Fneutral\u002Fnone","foota",[181,30,36,155,182,36],"10100358","n0us",[184,30,36,178,185,36],"10102092","jentulman",[187,30,36,178,182,36],"10102393",[189,30,36,166,190,36],"10102260","iyn",[192,30,36,166,182,36],"10102407",[125,31,36,155,126,36],[136,31,36,166,137,36],[129,31,36,196,130,36],"other\u002Fpositive\u002Fdesign",[198,31,36,178,199,36],"10101982","gcanti",[201,31,36,175,202,36],"10103787","abhishivsaxena",[66,204,40,205,67,36],4,"project\u002Fpositive\u002Fidea",[90,40,31,207,91,36],"project\u002Fmixed\u002Fdesign",[105,209,31,210,106,36],6,"project\u002Fneutral\u002Fexecution",[212,209,31,210,213,36],"10101687","Splendor",[215,209,36,166,216,36],"10102500","bryanlarsen",[143,33,36,155,144,36],[70,219,40,220,71,36],8,"project\u002Fpositive\u002Fexecution",[97,18,32,222,98,36],"project\u002Fcritical\u002Fexecution",[],[225,229,233,238,243,248],{"id":226,"name":227,"points":16,"category":228},"10117072","Tonedear","learning_science",{"id":230,"name":231,"points":232,"category":228},"10094326","Nihongo",139,{"id":234,"name":235,"points":236,"category":237},"10089772","SpaCy",93,"languages",{"id":239,"name":240,"points":241,"category":242},"10112354","InstaPainting",73,"creative",{"id":244,"name":245,"points":246,"category":247},"10123375","EtherPot",61,"finance_crypto",{"id":249,"name":250,"points":251,"category":252},"10111645","Siderly",54,"web_saas",false,"v2",{"id":256,"name":5,"line":6,"ai":253,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":257,"top":18,"kw":258,"maker":11,"domain":10,"tier":19,"attempts":36,"strip":259,"url":9,"mix":260,"praise":58,"objection":75,"sub":21},10100155,0.11,[24,25,21,26],"000030000000000000053330051",[30,31,32,32],1793990929663]