[{"data":1,"prerenderedAt":275},["ShallowReactive",2],{"project-25257521":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":34,"aspects":35,"strip":43,"post_text":45,"what":46,"said":85,"maker_in_thread":184,"shape":194,"grid":196,"attempts":237,"same_week":238,"maker_shows":44,"maker_hidden":267,"reader_version":268,"card":269},"25257521","Grist","A Hacker Friendly Spreadsheet","title","Show HN: Grist, a Hacker Friendly Spreadsheet","https:\u002F\u002Fwww.getgrist.com\u002Fblog","getgrist.com","paulfitz",1606763129,2020,27,23,1464,3028,49,"shown","productivity","spreadsheet","web_app",[21,24,25,26,27],"relational database","python formulas","sqlite","open source","loved",0.319,{"positive":31,"neutral":32,"mixed":33,"critical":33},6,5,1,13,{"idea":36,"execution":39,"design":40,"docs":42},{"positive":37,"critical":38},4,0,{"positive":38,"critical":33},{"positive":41,"critical":38},2,{"positive":38,"critical":38},[32,38,33,38,44,32,32,38,32,44,38,44,38,32,38,44,38,32,38,44,38,44,38],3,null,{"problem":47,"audience":45,"pricing":45,"motivation":55,"time_to_build":45,"stack":59,"openness":82,"stage":83,"team_size":84},{"value":48,"source":49,"evidence":50},"Spreadsheets become unwieldy as data grows, but databases are cumbersome for everyday use.","commenter",[51],{"id":52,"by":53,"text":54},"25257580","dsagal","Founder here :) While working at Google years ago, I co-founded a nonprofit for math enrichment classes. I ran it in my spare time, using Google Sheets, until the spreadsheet…",{"value":56,"source":49,"evidence":57},"Founder wanted a spreadsheet that avoided the cost of a custom database rebuild for a nonprofit.",[58],{"id":52,"by":53,"text":54},[60,68,72,78],{"value":61,"source":62,"evidence":63},"Python","maker",[64,65],{"id":52,"by":53,"text":54},{"id":66,"by":11,"text":67},"25258680","Yes, a new table in your spreadsheet is stored as a new sqlite table, plus some metadata about it in some other administrative tables. You get all of this as a standalone,…",{"value":69,"source":62,"evidence":70},"SQLite",[71],{"id":66,"by":11,"text":67},{"value":73,"source":62,"evidence":74},"Node.js\u002FExpress",[75],{"id":76,"by":11,"text":77},"25259116","Ah, we do have a general purpose importer from sqlite lurking but not published, I'll bump its priority. In the meantime, you can use the hosted or local rest api from python or…",{"value":79,"source":49,"evidence":80},"Django",[81],{"id":52,"by":53,"text":54},"open_source","launched","company",{"praise":86,"objections":102,"requests":126,"questions":144,"alternatives":158},[87,95],{"value":88,"source":49,"evidence":89},"Liked the UI and linking between records",[90,94],{"id":91,"by":92,"text":93},"25265255","cpindat","Grist contributor here - I got onboard 3 years ago right after Dmitry made a demo to me. What truly impressed me right from the beginning was the UI and how easy it was to build…",{"id":52,"by":53,"text":54},{"value":96,"source":49,"evidence":97},"Python functions and SQLite make it more powerful than Airtable or Notion",[98],{"id":99,"by":100,"text":101},"25285910","ralphilius","Great tool guys. I've been dreaming of such a flexible but convenient tool. The existing tools like Airtable, Coda or Notion are good up to certain point, but allowing Python…",[103,113,119],{"value":104,"source":62,"evidence":105},"Per-column formulas confuse users used to Excel",[106,109],{"id":107,"by":11,"text":108},"25258067","For formulas: could it be that Grist formulas are per-column rather than per-cell? This can take a little getting used to, but we think it leads to neater spreadsheets, and there…",{"id":110,"by":111,"text":112},"25258115","throwawaybutwhy","Ah, this explains a lot, sorry for the confusion. It's an uphill battle to make folks drop their ingrained Excel habits, though.",{"value":114,"source":49,"evidence":115},"Formulas and editing glitches reported",[116],{"id":117,"by":111,"text":118},"25257918","Paul, Dmitry, thanks for the link, the idea of an SQLite-backed spreadsheet with Python for computations looks quite enticing. Right now, the spreadsheet is unworkable (formulas…",{"value":120,"source":49,"evidence":121},"Not really a spreadsheet",[122],{"id":123,"by":124,"text":125},"25278034","hurricaneditka","love it but it's no spreadsheet",[127,134],{"value":128,"source":49,"evidence":129},"Import SQLite files",[130],{"id":131,"by":132,"text":133},"25258876","samblr","That is cool. I have so many projects with sqlite but all on my local machine. Is it possible to import an sqlite ? Also could you help understand what happens behind the scenes…",{"value":135,"source":49,"evidence":136},"Full Python library support in hosted version",[137,141],{"id":138,"by":139,"text":140},"25270385","ramon","Hey guys, Instead of me trying to put together Jupyter and this can I just use Python in Grist like use the Pandas and everything else? Combining this plus the magic of Jupyter…",{"id":142,"by":11,"text":143},"25271054","When running locally, you can use whatever you like, pandas or anything else, which is fun (we've experimented with some options for Jupyter integration ourselves). In our hosted…",[145,151],{"value":146,"source":49,"evidence":147},"Is the storage a SQLite table per table?",[148],{"id":149,"by":132,"text":150},"25258471",">> Grist tables are literally SQLite tables. So whenever a new form\u002Ftable is created, is it getting stored within a sqlite table on your backend ?",{"value":152,"source":49,"evidence":153},"Why open source?",[154],{"id":155,"by":156,"text":157},"25258200","mritchie712","What made you decide to go open source?",[159,167,171,175,179],{"value":160,"source":49,"evidence":161},"Airtable",[162,166],{"id":163,"by":164,"text":165},"25266259","ttsda","Finally we have good alternatives to Airtable coming out! I'm really liking where this is going.",{"id":99,"by":100,"text":101},{"value":168,"source":49,"evidence":169},"Coda",[170],{"id":99,"by":100,"text":101},{"value":172,"source":49,"evidence":173},"Notion",[174],{"id":99,"by":100,"text":101},{"value":176,"source":49,"evidence":177},"Jupyter",[178],{"id":138,"by":139,"text":140},{"value":180,"source":49,"evidence":181},"Excel and Google Sheets",[182,183],{"id":110,"by":111,"text":112},{"id":52,"by":53,"text":54},{"comments":185,"answered":32,"key":186},10,[187,190,191],{"id":188,"text":189},"25257669","cto here - I signed up to work on Grist because I like the UI, like it as a spreadsheet format, and think it has potential for decent version control - something lacking in data…",{"id":107,"text":108},{"id":192,"text":193},"25265673","Yup, and in the meantime there's a docker image https:\u002F\u002Fgithub.com\u002Fgristlabs\u002Fgrist-core#opening-and-editing-a-grist-document-locally (hi Cyprien! waves in French)",{"commenters":185,"max_depth":37,"maker_replies":185,"first_comment_mins":32,"lifespan_hours":195},59,[197,199,201,203,205,206,209,210,212,213,215,216,217,218,219,220,222,224,225,228,230,233,235],[52,38,32,198,53,38],"project\u002Fpositive\u002Fidea",[188,38,38,200,11,33],"maker\u002Fpositive\u002Fdesign",[117,38,33,202,111,38],"project\u002Fcritical\u002Fexecution",[107,38,38,204,11,33],"project\u002Fneutral\u002Fdesign",[110,38,44,204,111,38],[207,38,32,208,53,38],"25258750","project\u002Fpositive\u002Fdesign",[91,38,32,208,92,38],[192,38,38,211,11,33],"project\u002Fneutral\u002Fdocs",[99,33,32,198,100,38],[149,41,44,214,132,38],"project\u002Fneutral\u002Fexecution",[66,41,38,214,11,33],[131,41,44,214,132,38],[76,41,38,211,11,33],[138,44,32,198,139,38],[142,44,38,214,11,33],[221,44,44,211,139,38],"25271308",[223,44,38,211,11,33],"25276555",[163,37,32,198,164,38],[226,37,38,227,11,33],"25266456","maker\u002Fpositive\u002Fnone",[123,32,44,229,124,38],"project\u002Fmixed\u002Fidea",[231,32,38,232,11,33],"25278717","maker\u002Fneutral\u002Fidea",[155,31,44,234,156,38],"maker\u002Fneutral\u002Fnone",[236,31,38,234,11,33],"25258481",[],[239,244,249,253,258,263],{"id":240,"name":241,"points":242,"category":243},"25245740","SpaceHey",726,"web_saas",{"id":245,"name":246,"points":247,"category":248},"25246179","Mahjong Solitaire (jongmah.com)",252,"games",{"id":250,"name":251,"points":252,"category":248},"25232290","Dungeon Map Doodler",126,{"id":254,"name":255,"points":256,"category":257},"25229600","BlobCity A.I. Cloud",125,"ai",{"id":259,"name":260,"points":261,"category":262},"25250589","Dicom",108,"languages",{"id":264,"name":265,"points":266,"category":262},"25237181","Thi.ng",107,false,"v2",{"id":270,"name":5,"line":6,"ai":267,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":271,"top":18,"kw":272,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":273,"url":9,"mix":274,"praise":88,"objection":104,"sub":21},25257521,0.32,[21,24,25,26,27],"50103550530305030503030",[31,32,33,33],1793991019554]