[{"data":1,"prerenderedAt":579},["ShallowReactive",2],{"project-19017270":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":72,"maker_in_thread":238,"shape":250,"grid":254,"attempts":539,"same_week":540,"maker_shows":33,"maker_hidden":571,"reader_version":572,"card":573},"19017270","X-spreadsheet","A JavaScript canvas spreadsheet for web","title","Show HN: X-spreadsheet – A JavaScript canvas spreadsheet for web","https:\u002F\u002Fgithub.com\u002Fmyliang\u002Fx-spreadsheet","github.com","myliang",1548682364,2019,347,105,81,2195,4,"legend","languages","javascript spreadsheet component","library",[24,25,26,27],"javascript spreadsheet","canvas spreadsheet","web spreadsheet component","excel in browser","mixed",-0.197,{"positive":31,"neutral":32,"mixed":33,"critical":34},10,28,2,26,66,{"execution":37,"performance":40,"docs":42,"design":43,"idea":46},{"positive":38,"critical":39},1,6,{"positive":41,"critical":38},0,{"positive":41,"critical":41},{"positive":44,"critical":45},3,16,{"positive":38,"critical":41},[48,33,44,38,38,44,44,44,41,38,38,48,44,44,38,38,41,38,48,38,44,44,41,48,44,18,38,33,44,38,38,48,44,38,38,38,38,41,38,18],5,null,{"problem":49,"audience":49,"pricing":49,"motivation":51,"time_to_build":49,"stack":58,"openness":69,"stage":70,"team_size":71},{"value":52,"source":53,"evidence":54},"Reduce dependency on development processes, rewritten from TypeScript to JavaScript","maker",[55],{"id":56,"by":11,"text":57},"19024689","Reduce dependency on development processes",[59,63],{"value":60,"source":53,"evidence":61},"JavaScript",[62],{"id":56,"by":11,"text":57},{"value":64,"source":53,"evidence":65},"HTML canvas",[66],{"id":67,"by":11,"text":68},"19017918","1 canvas performance is higher than dom rendering 2 easy to write code github.com\u002Fxspreadsheet used table","open_source","beta","unknown",{"praise":73,"objections":93,"requests":149,"questions":180,"alternatives":206},[74,86],{"value":75,"source":76,"evidence":77},"Clean, slick UI resembling Google Sheets","commenter",[78,82],{"id":79,"by":80,"text":81},"19017980","nwsm","Very slick. Looks incredibly similar to google sheets.",{"id":83,"by":84,"text":85},"19017880","crnote","Nice work! The UI is really good. In my one of the projects, I was looking for excel kind of functionality - and would like to give it a try. But the biggest value IMO excel…",{"value":87,"source":76,"evidence":88},"Extensible architecture with no dependencies",[89],{"id":90,"by":91,"text":92},"19018741","chatmasta","Awesome job so far! This is obviously a monumental undertaking, especially since the quality of spreadsheet software seems mostly correlated with volume of features. This project…",[94,109,120,131,139],{"value":95,"source":76,"evidence":96},"Text looks blurry on high-DPI screens because of canvas rendering",[97,101,105],{"id":98,"by":99,"text":100},"19020025","dustingetz","The canvas fonts are fuzzy? Stock OSX and Chrome, 4k display @ 3200 scaled edit: https:\u002F\u002Fgithub.com\u002Fmyliang\u002Fx-spreadsheet\u002Fissues\u002F5",{"id":102,"by":103,"text":104},"19021068","c-smile","By nature of \u003Ccanvas>, it uses grayscale antialiasing of text Here (MS Edge, Windows, High-DPI screen): http:\u002F\u002Fcloud.sciter.com\u002Findex.php\u002Fs\u002FfcTbout1oQqwIJg You see how different…",{"id":106,"by":107,"text":108},"19017742","barrowclift","Fun concept, but the cell text is blurry to the point of being a distraction for me, unfortunately. Is this a side effect of rendering to a canvas?",{"value":110,"source":76,"evidence":111},"Browser-native features like find-in-page, copy\u002Fpaste and context menu do not work",[112,116],{"id":113,"by":114,"text":115},"19017961","davidy123","AFAIK (and in evidence in this case) you can't use the normal \"find in page\" (control-f) when using canvas. Consistency in functions like find is one of the greatest things about…",{"id":117,"by":118,"text":119},"19018164","ryanianian","The speed of the rendering is amazing compared especially to e.g. google sheets. I just informally timed both and gsheets was rendered and editable in 4 seconds whereas this took…",{"value":121,"source":76,"evidence":122},"Crashes or bugs with formulas, such as circular references and cell rendering errors",[123,127],{"id":124,"by":125,"text":126},"19018345","williamstein","This is amazing and fast. I'm complaining about it actually being easily broken only because I really wished this worked well, so I could build on it. It crashed for me on…",{"id":128,"by":129,"text":130},"19018381","tianshuo","Breaks easily, to reproduce bug: Put =B1 in A1 and =A1 in B1.",{"value":132,"source":76,"evidence":133},"Only a few formulas are supported",[134,138],{"id":135,"by":136,"text":137},"19018700","y4mi","i was about to say the same thing... to anyone else wondering: you can browse the available function with the button to the right. ( SUM, AVERAGE, MIN, MAX and CONCAT )",{"id":83,"by":84,"text":85},{"value":140,"source":76,"evidence":141},"Canvas is the wrong tool for text-heavy UI",[142,146],{"id":143,"by":144,"text":145},"19017770","eternalny1","This strongly goes against the best practices for Canvas: https:\u002F\u002Fwww.w3.org\u002FTR\u002F2dcontext\u002F#best-practices",{"id":147,"by":103,"text":148},"19020084","Well, \u003Ccanvas> is not the best tool for doing such things. \u003Ccanvas> by its definition is essentially an \u003Cimg> with its content (pixmap) modifiable from script side. Better…",[150,158,169,173],{"value":151,"source":76,"evidence":152},"More Excel formulas",[153,154],{"id":83,"by":84,"text":85},{"id":155,"by":156,"text":157},"19019294","selimthegrim","Wonder how much demand there will be for SUMPRODUCT",{"value":159,"source":76,"evidence":160},"Excel keyboard shortcuts such as F2 and Ctrl+arrows",[161,165],{"id":162,"by":163,"text":164},"19018257","cm2187","It's neat and fast. I do think that you should consider implementing a few more common excel shortcuts, to make it really seamless to an advanced excel user. For instance: - CTRL…",{"id":166,"by":167,"text":168},"19020125","airstrike","I really like this and I can see the potential, but I certainly miss being able to type directly into the cell as opposed to double-clicking on it first. F2 should also enable…",{"value":170,"source":76,"evidence":171},"Typing directly into cells without double-clicking",[172],{"id":166,"by":167,"text":168},{"value":174,"source":76,"evidence":175},"Multi-line cell text with alt+enter",[176],{"id":177,"by":178,"text":179},"19018739","PretzelFisch","Can this do multiple row per cell? I tried alt + enter and it didn't work.",[181,192,199],{"value":182,"source":76,"evidence":183},"Why canvas was used instead of DOM",[184,188],{"id":185,"by":186,"text":187},"19017693","kevsim","I think a description of why canvas was used would be nice in the README. My (probably naive) view is that browsers are pretty good at table-ish layouts so it’d be great to know…",{"id":189,"by":190,"text":191},"19017759","microcolonel","> My (probably naive) view is that browsers are pretty good at table-ish layouts so it’d be great to know why canvas was chosen. The browser certainly makes this convenient...…",{"value":193,"source":76,"evidence":194},"How it compares to Handsontable and EtherCalc",[195],{"id":196,"by":197,"text":198},"19017503","paulfitz","Nice! Would be interested in how this compares to e.g. handsontable[1]. What do you think of audreyt's ethercalc[2] myliang? [1] https:\u002F\u002Fgithub.com\u002Fhandsontable\u002Fhandsontable [2]…",{"value":200,"source":76,"evidence":201},"Why the switch from TypeScript to JavaScript",[202],{"id":203,"by":204,"text":205},"19018069","sramam","This looks really good - the speed of rendering of the default sheet was surprising and pleasant. Is there a reason you switched from the earlier version in TypeScript[1] to this…",[207,212,216,224,231],{"value":208,"source":76,"evidence":209},"Google Sheets",[210,211],{"id":117,"by":118,"text":119},{"id":79,"by":80,"text":81},{"value":213,"source":76,"evidence":214},"Handsontable",[215],{"id":196,"by":197,"text":198},{"value":217,"source":76,"evidence":218},"EtherCalc",[219,220],{"id":196,"by":197,"text":198},{"id":221,"by":222,"text":223},"19020205","based2","alt: https:\u002F\u002Fethercalc.net\u002F https:\u002F\u002Fgithub.com\u002Faudreyt\u002Fethercalc https:\u002F\u002Fgithub.com\u002Faudreyt\u002Fethercalc\u002Fblob\u002Fmaster\u002FLICENSE.txt cpal http:\u002F\u002Flivescript.net\u002F ^CoffeeScript",{"value":225,"source":76,"evidence":226},"canvas-datagrid",[227],{"id":228,"by":229,"text":230},"19018750","kybernetikos","Here's a canvas datagrid that I've come across in case anyone is interested in the genre: https:\u002F\u002Ftonygermaneri.github.io\u002Fcanvas-datagrid\u002F",{"value":232,"source":76,"evidence":233},"react-spreadsheet",[234],{"id":235,"by":236,"text":237},"19021199","iddan","If you're looking for a simple, light and highly customizable Spreadsheet for the web checkout React Spreadsheet (https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Freact-spreadsheet).",{"comments":239,"answered":18,"key":240},13,[241,244,247],{"id":242,"text":243},"19022022","thx",{"id":245,"text":246},"19023872","it's fixed, thx",{"id":248,"text":249},"19017952","good",{"commenters":251,"max_depth":48,"maker_replies":239,"first_comment_mins":252,"lifespan_hours":253},73,38,110,[255,257,259,261,265,269,271,273,277,279,281,284,286,290,294,298,301,304,305,306,308,311,313,316,317,320,322,325,328,330,334,337,340,342,345,348,349,350,352,353,356,357,360,362,365,368,371,374,376,379,381,384,386,389,391,393,396,400,403,405,407,412,415,418,419,421,425,430,432,434,437,440,442,444,448,451,454,457,461,463,467,469,473,475,477,481,483,485,488,490,491,495,497,500,504,508,512,515,518,520,522,524,529,533,537],[90,41,48,256,91,41],"project\u002Fpositive\u002Fexecution",[242,41,41,258,11,38],"maker\u002Fneutral\u002Fnone",[124,38,38,260,125,41],"project\u002Fcritical\u002Fexecution",[262,38,44,263,264,41],"19018478","project\u002Fneutral\u002Fperformance","ASalazarMX",[266,38,44,267,268,41],"19018667","project\u002Fneutral\u002Fexecution","dartf",[135,38,44,270,136,41],"project\u002Fneutral\u002Fdocs",[155,38,44,272,156,41],"project\u002Fneutral\u002Fnone",[274,38,41,275,276,41],"19022349","other\u002Fneutral\u002Fnone","codetrotter",[245,38,41,278,11,38],"maker\u002Fneutral\u002Fexecution",[113,33,38,280,114,41],"project\u002Fcritical\u002Fdesign",[282,33,41,283,276,41],"19018056","commenter\u002Fneutral\u002Fdesign",[285,33,38,280,114,41],"19018226",[287,33,41,288,289,41],"19020301","commenter\u002Fneutral\u002Fperformance","c0brac0bra",[291,33,41,292,293,41],"19022276","other\u002Fneutral\u002Fdesign","swiley",[295,33,44,296,297,41],"19018084","project\u002Fneutral\u002Fdesign","tlrobinson",[299,33,41,283,300,41],"19018703","woogley",[302,33,41,283,303,41],"19019600","lucideer",[185,44,44,270,186,41],[189,44,44,263,190,41],[248,44,41,307,11,38],"maker\u002Fpositive\u002Fnone",[309,44,44,263,310,41],"19018894","Technetium_Hat",[312,44,41,288,190,41],"19023277",[314,44,41,288,315,41],"19019515","tobyhinloopen",[67,44,41,263,11,38],[318,44,38,280,319,41],"19018592","nojvek",[321,44,44,263,315,41],"19019500",[323,44,38,280,324,41],"19018359","smashface",[326,44,41,327,163,41],"19018760","other\u002Fneutral\u002Fperformance",[329,44,41,327,324,41],"19019982",[331,44,48,332,333,41],"19018504","project\u002Fpositive\u002Fdesign","commandlinefan",[335,44,44,296,336,41],"19019922","11235813213455",[338,44,44,296,339,41],"19019764","z3t4",[341,44,44,263,103,41],"19023171",[343,44,41,288,344,41],"19023474","nine_k",[346,44,44,263,347,41],"19026404","hajile",[203,18,44,267,204,41],[56,18,41,278,11,38],[117,48,44,351,118,41],"project\u002Fmixed\u002Fexecution",[98,39,38,280,99,41],[354,39,38,280,355,41],"19020515","SamBam",[102,39,38,280,103,41],[358,39,44,296,359,41],"19021887","bijection",[361,39,41,283,103,41],"19023099",[363,39,41,283,364,41],"19031416","Avery3R",[366,39,38,280,367,41],"19021478","JacobLinney",[369,39,38,280,370,41],"19022230","ronsor",[372,39,41,373,11,38],"19032814","maker\u002Fneutral\u002Fdesign",[375,39,48,307,99,41],"19060919",[196,377,44,378,197,41],7,"project\u002Fneutral\u002Fidea",[380,377,41,263,11,38],"19017852",[382,377,44,263,383,41],"19022357","eddyparkinson",[143,385,38,280,144,41],8,[387,385,44,296,388,41],"19017869","bartq",[390,385,41,327,339,41],"19019809",[162,392,44,267,163,41],9,[394,31,44,378,395,41],"19019046","_bxg1",[397,31,41,398,399,41],"19019121","other\u002Fneutral\u002Fidea","rkangel",[401,31,41,275,402,41],"19023639","fictorial",[228,404,41,398,229,41],11,[406,404,41,275,91,41],"19018784",[408,409,48,410,411,41],"19022111",12,"project\u002Fpositive\u002Fnone","juretriglav",[413,409,41,275,414,41],"19023203","yoz",[416,409,41,275,417,41],"19042071","nokome",[221,239,44,272,222,41],[420,239,44,272,383,41],"19022244",[422,423,48,410,424,41],"19021071",14,"leonardoeloy",[426,427,48,428,429,41],"19019277",15,"project\u002Fpositive\u002Fidea","voctor",[431,45,38,260,364,41],"19019995",[106,433,38,280,107,41],17,[435,433,44,267,436,41],"19017795","todd3834",[438,433,44,267,439,41],"19018083","deckar01",[441,433,38,280,103,41],"19020131",[443,433,44,267,388,41],"19017806",[445,446,44,272,447,41],"19019582",18,"vdm",[83,449,44,450,84,41],19,"project\u002Fmixed\u002Fidea",[452,449,41,453,11,38],"19017991","maker\u002Fneutral\u002Fidea",[455,456,38,280,439,41],"19018101",20,[458,456,41,459,460,41],"19018239","commenter\u002Fpositive\u002Fdesign","stronglikedan",[462,456,41,283,439,41],"19019072",[464,465,38,280,466,41],"19018005",21,"nkingsy",[468,465,41,307,11,38],"19018133",[470,471,44,272,472,41],"19019887",22,"niix",[79,474,48,332,80,41],23,[476,474,41,258,11,38],"19018102",[478,479,48,410,480,41],"19021198",24,"rayvy",[166,482,38,280,167,41],25,[484,482,41,373,11,38],"19034644",[486,34,38,487,315,41],"19019487","project\u002Fcritical\u002Fnone",[177,489,38,260,178,41],27,[235,32,38,487,236,41],[492,493,38,260,494,41],"19018025",29,"laszlokorte",[128,496,38,260,129,41],30,[498,496,38,260,499,41],"19018394","Schampu",[501,502,44,378,503,41],"19020231",31,"kovek",[505,506,38,487,507,41],"19017628",32,"fareesh",[509,506,41,510,511,41],"19017773","commenter\u002Fneutral\u002Fnone","gordo4",[513,506,41,510,514,41],"19017842","MPetitt",[516,506,41,510,517,41],"19018001","slantyyz",[519,506,41,258,11,38],"19025926",[521,506,41,510,507,41],"19025460",[523,506,41,258,11,38],"19018074",[525,526,38,527,528,41],"19023806",33,"project\u002Fcritical\u002Fperformance","xiaodai",[530,531,48,410,532,41],"19021310",34,"marknadal",[534,535,48,332,536,41],"19017726",35,"iraldir",[147,538,38,280,103,41],36,[],[541,546,551,556,561,566],{"id":542,"name":543,"points":544,"category":545},"19025560","Open Startups (postmake.io\u002Fopen)",475,"data",{"id":547,"name":548,"points":549,"category":550},"19025709","AiFiddle",216,"ai",{"id":552,"name":553,"points":554,"category":555},"19023196","Apprise",163,"infrastructure",{"id":557,"name":558,"points":559,"category":560},"18997160","MadCO2",146,"hardware",{"id":562,"name":563,"points":564,"category":565},"19013445","Notepin",144,"productivity",{"id":567,"name":568,"points":569,"category":570},"18995551","Queueing theory",126,"learning_science",false,"v2",{"id":574,"name":5,"line":6,"ai":571,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":575,"top":18,"kw":576,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":577,"url":9,"mix":578,"praise":75,"objection":95,"sub":21},19017270,-0.2,[24,25,26,27],"5231133301153311015133053412311531111014",[31,32,33,34],1794036574355]