[{"data":1,"prerenderedAt":656},["ShallowReactive",2],{"project-38390714":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":47,"post_text":49,"what":50,"said":102,"maker_in_thread":240,"shape":251,"grid":255,"attempts":607,"same_week":620,"maker_shows":44,"maker_hidden":648,"reader_version":649,"card":650},"38390714","React Spreadsheet 2","The back-end can be opinionated, allowing developers to choose their preferred stack, whether it's Python, PHP, Node, or Go.","maker","Show HN: React Spreadsheet 2","https:\u002F\u002Fwww.rowsncolumns.app\u002F","rowsncolumns.app","rowsncolumns",1700728649,2023,356,132,107,3109,4,"legend","dev_tools","ui component library","library",[24,25,26,27],"react spreadsheet","spreadsheet component","react data grid","canvas spreadsheet","mixed",-0.08,{"positive":31,"neutral":32,"mixed":33,"critical":34},16,22,3,25,66,{"idea":37,"execution":38,"pricing":40,"docs":42,"performance":43,"design":45},{"positive":33,"critical":18},{"positive":33,"critical":39},10,{"positive":41,"critical":18},0,{"positive":41,"critical":33},{"positive":33,"critical":44},1,{"positive":46,"critical":44},2,[44,33,48,33,33,33,44,44,48,44,33,33,44,44,48,33,44,41,18,33,33,33,48,33,44,33,41,44,48,48,48,44,33,41,44,41,44,44,33,44],5,null,{"problem":51,"audience":57,"pricing":66,"motivation":49,"time_to_build":49,"stack":78,"openness":99,"stage":100,"team_size":101},{"value":52,"source":7,"evidence":53},"Lets developers embed a Google Sheets-like spreadsheet UI in their own React application",[54],{"id":55,"by":11,"text":56},"38390715","Create your own Google sheets like Spreadsheet UI in your application using RowsnColumns Spreadsheet 2. Declaratively render cells, embed external content, use custom formulas,…",{"value":58,"source":59,"evidence":60},"React developers building in-house tools, dashboards or spreadsheet-like interfaces","inferred",[61,65],{"id":62,"by":63,"text":64},"38411836","Too","In-house tools, reports, dashboards.",{"id":55,"by":11,"text":56},{"value":67,"source":68,"evidence":69},"$299 license, non-commercial use","commenter",[70,74],{"id":71,"by":72,"text":73},"38409560","bugsmith","Genuine question: Why would anyone purchase this for $299, without the ability to use it commercially? For open-source projects?",{"id":75,"by":76,"text":77},"38409789","cjonas","Who is the \"solo\" pricing targeting? I can't think of a single reason someone would pay $299 for \"Non-commercial use\" license to a library...",[79,85,89,95],{"value":80,"source":7,"evidence":81},"ReactJS",[82],{"id":83,"by":11,"text":84},"38408106","Yes it is. The Spreadsheet is powered by ReactJS and Konva. React and Konva provides a Profiler and Devtools to measure performance and to prevent any un-necessary re-renders. We…",{"value":86,"source":7,"evidence":87},"Konva (canvas)",[88],{"id":83,"by":11,"text":84},{"value":90,"source":7,"evidence":91},"Supabase (collaboration sync)",[92],{"id":93,"by":11,"text":94},"38409402","Nothing persists. All the diffs are sent over using Supabase and received by all other clients. The diffs are then applied to create the new state.",{"value":96,"source":7,"evidence":97},"Cypress (e2e testing)",[98],{"id":83,"by":11,"text":84},"paid","beta","company",{"praise":103,"objections":130,"requests":170,"questions":185,"alternatives":200},[104,119],{"value":105,"source":68,"evidence":106},"Polished demo with real-time collaboration",[107,111,115],{"id":108,"by":109,"text":110},"38407675","burcs","This looks great! We've looked at a lot of these for our database GUI. I really love how fleshed out this is, and the multiplayer aspect of it!",{"id":112,"by":113,"text":114},"38408897","zem","looks great, nice to see real time collaboration built in!",{"id":116,"by":117,"text":118},"38407947","jbverschoor","Amazing",{"value":120,"source":68,"evidence":121},"Smooth scrolling on tested devices",[122,126],{"id":123,"by":124,"text":125},"38409135","oslem","Buttery smooth on my iPhone 12",{"id":127,"by":128,"text":129},"38407543","cdmckay","Feels pretty smooth on my iPhone 13.",[131,144,159],{"value":132,"source":68,"evidence":133},"Price is too high, especially with non-commercial-only license",[134,135,136,140],{"id":71,"by":72,"text":73},{"id":75,"by":76,"text":77},{"id":137,"by":138,"text":139},"38409934","Aeolun","This is absurdly expensive. It might be worth it, but can’tvl imagine many people would pay? Then again, I guess you need only one enterprise using this thing in all their apps.",{"id":141,"by":142,"text":143},"38409202","creativenolo","Expensive or perhaps more kindly premium.",{"value":145,"source":68,"evidence":146},"Demo crashes with JS errors",[147,151,155],{"id":148,"by":149,"text":150},"38407647","philipwhiuk","It crashed: ``` 139-d48f98f3a9d41491.js:1 TypeError: Cannot read properties of undefined (reading 'rowCount') at nI (561-5e048c82ab8ff4d8.js:5:68277) at e…",{"id":152,"by":153,"text":154},"38408731","DiabloD3","\"Application error: a client-side exception has occurred (see the browser console for more information).\" Shame.",{"id":156,"by":157,"text":158},"38409613","dragonwriter","The frequency with which this page crashes with JS errors does not encourage me to use components from this source.",{"value":160,"source":68,"evidence":161},"Laggy scrolling on some mobile devices",[162,166],{"id":163,"by":164,"text":165},"38409108","owenpalmer","Scrolling the sheet on my pixel 4a is very laggy. Is this server latency or client side lag?",{"id":167,"by":168,"text":169},"38407398","mhitza","I'm checking it out on my phone and scrolling through the interface is pretty choppy, but rather fluid in a Google sheet. Maybe you might be able to further tweak the virtual row…",[171,178],{"value":172,"source":68,"evidence":173},"Free trial before buying",[174],{"id":175,"by":176,"text":177},"38409551","lucgagan","Is there a way to try this before I buy it? I am building something that would probably benefit from this, but with that price tag (solo indy dev) that's going to be a big ask!…",{"value":179,"source":68,"evidence":180},"Tree grid functionality",[181],{"id":182,"by":183,"text":184},"38407558","glinkot","Looking good! Would have loved this to have treegrid functionality, please consider it.",[186,193],{"value":187,"source":68,"evidence":188},"How accessibility is handled with canvas rendering",[189],{"id":190,"by":191,"text":192},"38412168","mattlondon","Curious: since you are rendering everything via canvas, how do you do accessibility?",{"value":194,"source":68,"evidence":195},"Whether it handles very large row counts",[196],{"id":197,"by":198,"text":199},"38392233","torunar","Is it able to handle tables with 1,000,000+ rows?",[201,212,219,226,233],{"value":202,"source":68,"evidence":203},"react-spreadsheet (iddan)",[204,208],{"id":205,"by":206,"text":207},"38409434","iddan","Just would like to share React Spreadsheet is a simple alternative. Fully open source, fully customisable and maintained for a few years https:\u002F\u002Fiddan.github.io\u002Freact-spreadsheet\u002F",{"id":209,"by":210,"text":211},"38407725","AntonyGarand","Is this related to the react-spreadsheet[1] project? Where does the \"React Spreadsheet 2\" from the title come from? It's not clear if this is an update to the project, a fork of…",{"value":213,"source":68,"evidence":214},"jspreadsheet",[215],{"id":216,"by":217,"text":218},"38412757","AmazingTurtle","Similar pricing, suspiciously https:\u002F\u002Fjspreadsheet.com\u002Fpricing",{"value":220,"source":68,"evidence":221},"SlickGrid",[222],{"id":223,"by":224,"text":225},"38408039","jz391","I've used Slickgrid (open source, https:\u002F\u002Fslickgrid.net\u002F) with some success.",{"value":227,"source":68,"evidence":228},"svelte-sheets",[229],{"id":230,"by":231,"text":232},"38408792","arendtio","A few weeks ago I was looking for a spreadsheet component that could be used with Svelte. To my surprise, I found something quite complete: Github:…",{"value":234,"source":68,"evidence":235},"TUI Grid",[236],{"id":237,"by":238,"text":239},"38411397","whacked_new","https:\u002F\u002Fui.toast.com\u002Ftui-grid is MIT",{"comments":241,"answered":242,"key":243},39,17,[244,247,248],{"id":245,"text":246},"38412824","The back-end can be opinionated, allowing developers to choose their preferred stack, whether it's Python, PHP, Node, or Go. In my view, a UI component should not be constrained…",{"id":55,"text":56},{"id":249,"text":250},"38412382","For screen readers, we are planning to add table element with plain text content, with aria regions. We offer support for keyboard shortcuts and navigation, and our platform is…",{"commenters":252,"max_depth":253,"maker_replies":241,"first_comment_mins":41,"lifespan_hours":254},78,7,173,[256,260,262,266,268,270,271,275,277,279,281,283,287,290,292,295,296,299,302,305,310,312,314,316,318,320,322,324,328,329,332,334,338,341,345,348,349,351,354,356,358,361,363,365,369,371,374,376,380,382,384,386,388,392,395,397,401,403,406,410,413,416,418,421,423,427,428,431,433,435,437,440,442,444,446,447,449,451,453,456,459,462,465,467,470,472,475,478,480,482,486,489,494,496,500,505,509,511,514,516,518,523,525,527,529,533,536,538,542,544,548,549,552,555,558,561,563,566,569,571,573,574,576,579,582,584,586,589,593,598,600,603,605],[257,41,33,258,259,41],"38411943","project\u002Fmixed\u002Fidea","larodi",[245,41,41,261,11,44],"maker\u002Fneutral\u002Fdesign",[263,41,44,264,265,41],"38420386","project\u002Fcritical\u002Fidea","hitradostava",[55,44,41,267,11,44],"project\u002Fneutral\u002Fnone",[190,44,33,269,191,41],"project\u002Fneutral\u002Fexecution",[249,44,41,269,11,44],[272,46,41,273,274,41],"38413693","other\u002Fneutral\u002Fnone","mastersummoner",[108,33,48,276,109,41],"project\u002Fpositive\u002Fexecution",[278,33,41,269,11,44],"38407917",[280,18,41,267,11,44],"38409679",[71,48,33,282,72,41],"project\u002Fneutral\u002Fpricing",[284,48,41,285,286,41],"38409602","commenter\u002Fneutral\u002Fpricing","jayde2767",[288,48,33,282,289,41],"38411322","jraph",[62,48,33,291,63,41],"project\u002Fneutral\u002Fidea",[293,48,33,282,294,41],"38412717","liamkearney",[216,48,33,282,217,41],[297,48,33,282,298,41],"38412858","wisty",[300,48,44,264,301,41],"38413088","uxp8u61q",[303,48,48,304,63,41],"38415073","project\u002Fpositive\u002Fidea",[306,307,44,308,309,41],"38409373",6,"project\u002Fcritical\u002Fexecution","koito17",[311,307,41,269,11,44],"38409396",[313,307,44,308,309,41],"38409412",[315,307,41,269,11,44],"38409427",[317,307,44,308,309,41],"38409436",[319,307,41,269,11,44],"38409442",[321,307,33,269,309,41],"38409479",[323,307,41,269,11,44],"38409586",[325,307,48,326,327,41],"38409746","maker\u002Fpositive\u002Fexecution","eigenvalue",[175,253,33,282,176,41],[209,330,33,331,210,41],8,"project\u002Fneutral\u002Fdocs",[333,330,41,267,11,44],"38407905",[335,330,44,336,337,41],"38413381","maker\u002Fcritical\u002Fnone","edgyquant",[339,330,41,340,11,44],"38413412","maker\u002Fneutral\u002Fnone",[342,343,48,276,344,41],"38414762",9,"htk",[346,343,41,347,11,44],"38415818","project\u002Fneutral\u002Fperformance",[156,39,44,308,157,41],[350,39,41,269,11,44],"38409674",[352,39,48,353,157,41],"38409792","maker\u002Fpositive\u002Fnone",[148,355,44,308,149,41],11,[357,355,41,269,11,44],"38407959",[359,355,44,308,360,41],"38408161","Scarbutt",[362,355,41,269,11,44],"38408256",[364,355,41,269,11,44],"38408217",[366,367,44,368,210,41],"38407758",12,"project\u002Fcritical\u002Fdocs",[370,367,41,331,11,44],"38407940",[163,372,44,373,164,41],13,"project\u002Fcritical\u002Fperformance",[123,372,48,375,124,41],"project\u002Fpositive\u002Fperformance",[377,372,41,378,379,41],"38409514","commenter\u002Fneutral\u002Fperformance","rishikeshs",[381,372,41,347,11,44],"38409140",[383,372,48,375,164,41],"38415492",[182,385,33,291,183,41],14,[387,385,41,291,11,44],"38407975",[389,390,44,264,391,41],"38409200",15,"iNic",[393,390,33,291,394,41],"38409339","jewel",[93,390,41,396,11,44],"project\u002Fneutral\u002Fprivacy",[398,390,44,399,400,41],"38409584","project\u002Fcritical\u002Fnone","FactualOrion",[402,390,41,267,11,44],"38409686",[404,390,41,273,405,41],"38413115","mst",[407,390,41,408,409,41],"38409423","commenter\u002Fneutral\u002Fidea","qntmfred",[411,390,48,304,412,41],"38412940","JSavageOne",[414,31,33,267,415,41],"38408893","dotandgtfo",[417,31,41,340,11,44],"38408934",[419,31,33,340,420,41],"38411002","eek2121",[422,31,41,340,11,44],"38411281",[424,242,33,425,426,41],"38407963","maker\u002Fneutral\u002Fperformance","Waterluvian",[83,242,41,347,11,44],[429,242,41,378,430,41],"38408888","mklepaczewski",[432,242,41,347,11,44],"38408987",[434,242,33,425,430,41],"38409648",[436,242,41,347,11,44],"38412718",[438,242,41,378,439,41],"38411381","doix",[197,441,33,347,198,41],18,[443,441,41,347,11,44],"38392461",[167,441,33,445,168,41],"project\u002Fmixed\u002Fperformance",[127,441,48,375,128,41],[448,441,41,340,11,44],"38407934",[450,441,33,425,168,41],"38408307",[452,441,41,425,11,44],"38408508",[454,441,41,273,455,41],"38409601","wouldbecouldbe",[457,441,41,273,458,41],"38415270","leptons",[460,441,41,273,461,41],"38407476","baz00",[463,441,41,273,464,41],"38408304","_istanbul_",[466,441,44,264,461,41],"38409079",[468,441,33,267,469,41],"38412383","eviks",[471,441,33,347,198,41],"38413190",[473,441,41,474,231,41],"38408925","other\u002Fneutral\u002Fperformance",[476,441,41,273,477,41],"38411070","ukuina",[479,441,41,474,231,41],"38424175",[481,441,41,273,477,41],"38473100",[483,484,33,331,485,41],"38419089",19,"kamphey",[141,487,44,488,142,41],20,"project\u002Fcritical\u002Fpricing",[490,491,44,492,493,41],"38409446",21,"project\u002Fcritical\u002Fdesign","38",[495,491,41,340,11,44],"38409820",[497,32,41,498,499,41],"38410589","other\u002Fneutral\u002Fidea","seattle_spring",[501,502,48,503,504,41],"38409959",23,"project\u002Fpositive\u002Fnone","tomasreimers",[506,507,48,503,508,41],"38409166",24,"scsteps",[510,507,41,353,11,44],"38409189",[512,34,48,503,513,41],"38409201","notpushkin",[515,34,41,340,11,44],"38409715",[112,517,48,304,113,41],26,[519,520,48,521,522,41],"38412548",27,"project\u002Fpositive\u002Fdesign","swah",[524,520,41,353,11,44],"38412867",[116,526,48,503,117,41],28,[528,526,41,353,11,44],"38407960",[530,531,44,368,532,41],"38409566",29,"auggierose",[534,531,41,535,11,44],"38409708","maker\u002Fneutral\u002Fdocs",[230,537,33,291,231,41],30,[539,537,41,540,541,41],"38408942","commenter\u002Fneutral\u002Fnone","NetOpWibby",[205,543,41,498,206,41],31,[545,546,41,273,547,41],"38407882",32,"The_Colonel",[223,546,41,273,224,41],[550,546,41,540,551,41],"38408749","tomcam",[553,546,41,540,554,41],"38409342","msephton",[556,546,41,273,557,41],"38412008","RyanHamilton",[559,546,44,368,560,41],"38409176","csdvrx",[562,546,41,340,11,44],"38414724",[564,546,41,273,565,41],"38409331","beejiu",[567,546,41,498,568,41],"38410009","nhatcher",[570,546,41,540,560,41],"38410523",[572,546,41,540,568,41],"38410680",[237,546,41,273,238,41],[152,575,44,308,153,41],33,[577,575,44,308,578,41],"38408777","hypercube33",[580,575,41,581,11,44],"38408808","maker\u002Fneutral\u002Fexecution",[75,583,44,488,76,41],34,[137,585,44,488,138,41],35,[587,585,44,488,588,41],"38410325","tylerlh",[590,591,48,521,592,41],"38409045",36,"cuuupid",[594,595,33,596,597,41],"38408518",37,"project\u002Fmixed\u002Fexecution","Hakashiro",[599,595,41,581,11,44],"38408530",[601,595,44,308,602,41],"38408602","mcgooiggy",[604,595,44,308,415,41],"38408737",[606,595,41,581,11,44],"38408938",[608,611,616,619],{"id":609,"t":610,"points":48,"comments":33},"23873704",1595010046,{"id":612,"t":613,"points":614,"comments":615},"23930268",1595527567,220,81,{"id":617,"t":618,"points":330,"comments":46},"36892849",1690463292,{"id":4,"t":12,"points":14,"comments":15},[621,626,631,636,640,644],{"id":622,"name":623,"points":624,"category":625},"38432486","dalle.party",587,"ai",{"id":627,"name":628,"points":629,"category":630},"38434574","Trains.fyi",503,"infrastructure",{"id":632,"name":633,"points":634,"category":635},"38413660","fun-with-sockets",403,"creative",{"id":637,"name":638,"points":639,"category":625},"38453047","Dobb·E",394,{"id":641,"name":642,"points":643,"category":630},"38409164","IP Guide",363,{"id":645,"name":646,"points":647,"category":625},"38457815","meta-vision-api",226,false,"v2",{"id":651,"name":5,"line":652,"ai":648,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":653,"maker":11,"domain":10,"tier":19,"attempts":18,"strip":654,"url":9,"mix":655,"praise":105,"objection":132,"sub":21},38390714,"The back-end can be opinionated, allowing developers to choose their preferred stack, whether it's Python,…",[24,25,26,27],"1353331151331153104333531301555130101131",[31,32,33,34],1794036645061]