11 ms·
Grist – Open core alternative to Airtable and Google Sheets
- scottc 5y agoThis looks like just what I needed when I built my "admin ui" last year. Instead of building an admin ui with Django or similar, I encourage you to just stick with a web-based spreadsheet for your internal users (if you have a small team, technical teammates, startup, etc).
- viraptor 5y agoIn that case you may not even need to build a web based one. There's lots of nice DB GUIs which will connect over an SSH tunnel. If you're after a record editor, they're often enough.
- debdut 5y agoNo no, it's not an alternative to Airtable and Google Sheets, it's much more than that! Seeing the demo, coupled with the Python support, I felt like anyone could built a complex SAAS like Salesforce on it.
- kinduff 5y agoThere's even a meme generator. The tool looks very powerful!
- freen 5y agoI looked, but it seems to run on SQLite. Makes me a bit concerned about scalability.
- tony-allan 5y agoThey mention 100,000 rows as a soft limit. SQLite is the underlying database technology and it has a maximum database size of 281 terabytes. Enough for a weekend project! [1] https://support.getgrist.com/limits/ https://support.getgrist.com/limits/ [2]https://www.sqlite.org/limits.html https://www.sqlite.org/limits.html
- sdoering 5y agoThanks for the reminder of SQLite's limits. I knew that they were enough to just not think about it for everything I could imagine practically doing. But that I could even extend them beyond even that was nice to see: > The default setting for SQLITE_MAX_COLUMN is 2000. You can change it at compile time to values as large as 32767.
- freen 5y agoMore worried about write contention than storage.
- speedgoose 5y agoIf you don’t need concurrent transactions, SQLite is usually more than enough. A lot of people’s “big data” problems, not really big data but still significant data, can be solved using SQLite.
- kissgyorgy 5y agoThe use-case of this app is that a couple of people editing things at a time, which is perfect for SQLite. It can read a lot, only struggles when you have hundreds of parallel write transactions. It's a big misconception about SQLite that it doesn't scale. It absolutely can if you don't write it a lot!
- mikeflynn 5y agoHere's a better link directly to the project on GitHub: https://github.com/gristlabs/grist-core#readme https://github.com/gristlabs/grist-core#readme
- dang 5y agoThanks! We've changed to that from https://old.reddit.com/r/selfhosted/comments/su6tv3/grist_free_open_source_alternative_to_airtable/ https://old.reddit.com/r/selfhosted/comments/su6tv3/grist_fr.... People might want to take a look at both, since there's background info there too.
- 1egg0myegg0 5y agoDoes this support live updates as other users make edits (without refreshing the page)?
- paulfitz 5y agoYes it does, changes are broadcast to all connected clients and applied in place. Disclosure: I work on Grist.
- HWR_14 5y agoDid you settle on "last change wins" for simultaneous changes, or was that even an error state that occurs? I'm pretty sure GoogleDocs just have the second text/cell/whatever replace the new edit as soon as it hits the server.
- deleted 5y ago[deleted]
- jszymborski 5y agoI've been looking for something like this for ages! Self-hosting is so important for databases; I plan on piping way too much data for me not to own the stack. Baserow seemed to be my best bet initially, but it seems like the Grist feature set is way more what I'm looking for.
- paulfitz 5y agoRecently someone asked for a comparison of Grist and Baserow on their respective forums (posting the same exact question on both), and their founders answered. Here is the Baserow-expert answer: https://community.baserow.io/t/comparison-with-grist/249 https://community.baserow.io/t/comparison-with-grist/249 and here is the Grist-expert answer: https://community.getgrist.com/t/comparison-with-baserow/572 https://community.getgrist.com/t/comparison-with-baserow/572 (disclosure: I work at Grist).
- mackrevinack 5y agoif i remember correctly, the self hosted version of baserow doesn't have all the features that the paid version has, which is something that made me a bit apprehensive about using trying it out
- jszymborski 5y agoagreed. I'm all for "open core", but some of the premium features are pretty basic.
- jeffbee 5y agoI tried to load the CSV that I most recently imported into Google Sheets into this hosted Grist and it choked. The behavior of the progress bar implies some kind of super-linear algorithm. The most important component of "alternative to Google Sheets" is function. "Open core" is an aesthetic matter of little interest to most users.
- deleted 5y ago[deleted]
- heavyset_go 5y agoIt's a Node app, so CPU-bound work will run linearly on a single thread unless work was done to break up work into multiple processes or worker threads.
- jeffbee 5y agoIt’s behavior was more suggestive of Zeno's paradox than of single-threadedness.
- paulfitz 5y ago(disclosure: Grist employee) You're exactly right https://github.com/gristlabs/grist-core/blob/7f1f8fc9e60a2e131419301161992c8c6bc80dd4/app/client/ui/HomeImports.ts#L87 https://github.com/gristlabs/grist-core/blob/7f1f8fc9e60a2e1... - sorry the import choked!
- troynt 5y agoThis was my experience with a well. I was testing with a 36MB dataset and it was choking. The CPU was sitting at 4% usage.
- pdpi 5y agoThis distinctly reminds me of MS Access. Was a teen at the time, but saw (through my father) a whole bunch of small businesses that basically ran off of an Access database with a bunch of forms for invoicing and such.
- stadium 5y agoI learned schema design and BCNF on an access database. Applied database elective during undergrad. Built a career off those fundamentals.
- anyfactor 5y agoMy education was in business and accounting. But working with data these days I am surprised to find that the popularity of MS Access was greatly exaggerated.
- pdpi 5y agoI'm not sure I understand what point you're making?
- replwoacause 5y agoNeither do I.
- fouc 5y agoGreat idea! I wonder if there's anything similar to this in other programming languages? Would love to see something like this in Ruby or Elixir.
- petr25102018 5y agoBaserow (https://baserow.io/ https://baserow.io/) is in Python/Django.
- throwaway81523 5y ago"Open core", seems to mean the low level libs (useful for sure) are FOSS while the full featured apps are proprietary. This is kind of unpleasant since it creates a tension between a natural desire to build featureful apps with the low level stuff, and not wanting to "bite the hand" that supplied grist-core. Similar things happen with other partly-proprietary programs like ansible. Aren't there already some FOSS alternatives to google sheets? No idea about airtable, don't even know what it is. As for simple ways to write a form app, ActiveAdmin is one of the few things I like about Rails.
- paulfitz 5y agoOpen core is definitely a tension (disclosure: I work at Grist). Specifically for Grist, we differentiate by offering data portability and autonomy, and a full-featured open-source app is part of how we do that. I invite you to check the repo out, you'll see we're not holding back. We did want to flag the project as open core from the start, since we will build proprietary services and features around the core app (which again is very featureful!), and don't want that to come as a surprise down the line.
- sdesol 5y agoHey great product! Wondering if you can provide some development insights. I'm looking at the activity for the grist-core repo https://oss.gitsense.com/insights/github?q=pull-age%3A%3C%3D120&t=crc-insights&tb=all&v=gristlabs%2Fgrist-core%3A%3Agithub%3Agristlabs%2Fgrist-core%3A%3A%3A%3A https://oss.gitsense.com/insights/github?q=pull-age%3A%3C%3D... and it looks like not much has changed in the last 4 months. Is development mainly happening on your SAAS product or is there another repo I can analyze?
- paulfitz 5y agoDevelopment currently happens on a private mono-repo with all sorts of stuff in it - including for the SaaS environment yes, and bits left over from when Grist started out initially as a stand-alone desktop app, and so on. Commits are pushed to grist-core about once a week, using git subtree. If you look at commit history, you'll see plenty of features going in month after month. Since we currently develop elsewhere, you'll see few pull requests on github. Internally we use phabricator, which is deprecated now, so we'll need to rejigger our setup soon. It would definitely be good to get more of the development process out there, especially now more people have found us!
- manigandham 5y agoSome other interesting complementary projects found from that reddit thread: Budibase: https://budibase.com/ https://budibase.com/ NocoDB: https://nocodb.com/ https://nocodb.com/
- m-p-3 5y agoAlso ToolJet: https://tooljet.com/ https://tooljet.com/
- badestrand 5y agoAlso TogetherDB: https://togetherdb.com https://togetherdb.com
- aae42 5y agoBaserow: https://baserow.io/ https://baserow.io/
- viraptor 5y agoThat is amazing. I've complained about the lack of "spreadsheet but more structured" ms-access-like solutions here a few times. I've been a happy airtable user for a while. But this is really the next step. I love it and can't wait to give it a go (self hosted)
- pankajdoharey 5y agoIt definitely is superior to airtable, it has many new ideas.
- iamAtom 5y agoIs it truly open source ?
- paulfitz 5y agogrist-core is released under the Apache 2.0 license https://github.com/gristlabs/grist-core#license https://github.com/gristlabs/grist-core#license, an OSI approved license (disclosure: I work at Grist) Answer to a related question here: https://news.ycombinator.com/item?id=30393794 https://news.ycombinator.com/item?id=30393794
- jmacd 5y agoFor anyone wondering what Open Core means, Grist explains their approach: `Grist Labs is an open-core company. We offer Grist hosting as a service, with free and paid plans. We intend to also develop and sell features related to Grist using a proprietary license, targeted at the needs of enterprises with large self-managed installations. `
- protomikron 5y agoHow does this compare to Baserow (I think also an airtable and sheets alternative)?
- petr25102018 5y agohttps://community.baserow.io/t/comparison-with-grist/249/3 https://community.baserow.io/t/comparison-with-grist/249/3
- thrdbndndn 5y agoI tried it for 5 minutes on docs.getgrist.com. Maybe it's similar to Airtable (never used it), because it has nothing similar to GSheets/Excel other than it's a table. Like, I don't even know how to do "=A1+A2".
- syntaxing 5y agoYeah, I used to think the same thing (that Airtable is a Gsheets and Excel competitor). I find it more like Access + Excel. It's a database software with a nice and powerful front end.
- viraptor 5y agoLike airtable and ms access, this is a bit more structured. You can do `=$A` to reference A from another column in the same row. But if you want A1+A2, then you probably want a summary table like "group by", or chart it, or do something else. Think about it like a database - summing a column from rows 1 and 2 is not something you normally do. You can still do this if you want: (there may be an easier way though) =sum(row.A for _,row in zip(range(2), Table1.all))
- deleted 5y ago[deleted]
- i386 5y agoGrist is a terrible name. Gristle.
- paulfitz 5y agoDecided not to do a Grist take on Wordle for that reason. But Happy Gristmas works! Grist comes from Grid + list.
- gilrain 5y agoMost users will assume it’s a reference to the common English word… https://www.merriam-webster.com/dictionary/grist https://www.merriam-webster.com/dictionary/grist
- kanonieer 5y agoIt's funnier for Magic: The Gathering players. Seeing a sentence like "grist employee" is hilarious. See: https://mtg.fandom.com/wiki/Grist https://mtg.fandom.com/wiki/Grist
- mackrevinack 5y agoi wouldn't be mad about the name either. it doesn't really roll of the tongue and i can see it being misheard easily when using it in conversation. something like gridbase, gridrow, gridtable, gridlist, would have been better i think, even though they are very generic sounding
- i386 5y agoI'm not mad about the name. It's just an ugly one.
- hliyan 5y agoI wish more code was written like this: https://github.com/gristlabs/grist-core/blob/main/app/server/lib/Sessions.ts https://github.com/gristlabs/grist-core/blob/main/app/server...
- lysium 5y agoWhy? What do you like about that code?
- unixhero 5y agoI looked at it for 5 seconds and was able to understand what it does without fine studying the functions. That is therefore an excellent example of coding practice. Good structure, clean, excellent comments that were explicit not tacit and provide any newcomer to the code with information about what is going in. A great way to future proof the code.
- r2222 5y agoWhat’s up with the naming :)
- deleted 5y ago[deleted]
- boundlessdreamz 5y agoThis looks good but you need to import the data into it. It would be great if it can be connected to an existing DB. From the discussion, came across https://nocodb.com/ https://nocodb.com/ but the authorization levels doesn't seem fine grained enough. For ex. limiting access for group of users to a particular schema in postgresql
- sprucevoid 5y agoAirtable makes most money from pro/business use cases and that's what alternatives mentioned here compete for. But consider personal/family use: Recipe collections, inventories, todo, personal project planning and tracking, ... There competitors won't need more powerful scripting/customizability, just basic feature parity plus cutting the dismal ~6 seconds startup time of Airtable's Android and Windows apps. "Same but faster" wins me over.
- kwhitefoot 5y agoI don't think many non-enthusiasts will use it unless it can be installed without having to install docker first.
- samanator 5y agoIt seems to come with a web server. An enthusiast can host it and publish it to non-enthusiasts as a web application.
- nulbyte 5y agoBut can you run it without docker? I have some FreeBSD hosts, for example, making a dependency on docker a no-go.
- samanator 5y agoI'm not the author of this post or the software, but as a general rule, if docker can run it, so can a host machine without docker (unless docker itself is a dependency which is rare and generally only done for Docker specific tooling). Here you can see the the image is based on buster which is a Linux type host. So you can almost certainly get it working on FreeBSD https://github.com/gristlabs/grist-core/blob/main/Dockerfile https://github.com/gristlabs/grist-core/blob/main/Dockerfile
- kwhitefoot 5y ago> you can almost certainly get it working Which means that only enthusiasts will do it.
- samanator 5y agoYup :). See the top level ancestor comment: >An enthusiast can host it and publish it to non-enthusiasts as a web application. So the person "getting it working" would need to be enthusiastic about it!
- s3arch 5y agoAs a developer who has been in React/Angular/Vue era, why didn't this project leverage these modern technologies for UI and instead went with Backbone and Knockout? I am just trying think outside of the modern widely used frameworks and see how they solve some unique problems? Please anybody can tell me why still anybody use good old technologies for frontend in their products?
- vasachi 5y agoWhy shouldn’t they use stable technology they are proficient with?
- s3arch 5y agoThank you for your reply. Can you please help me understand in what ways Backbone/Knockout is considered more stable than React/Angular/Vue technologies?
- thecardcheat 5y ago> is considered more stable Was not stated. > Why shouldn’t they use stable technology they are proficient with? This perspective is one of the major indicators of an engineer with more experience managing real projects. Making a technology choice or transition is a milestone/roadmap affecting decision. To do so for preference over deliverability has killed many a project.
- s3arch 5y agoI can't agree more on your point made on deliverable.
- vasachi 5y agoEh, I'm pretty sure Backbone and Knockout are more stable than React :) They didn't have a release since 2019. I mean, React itself is quite fine with backwards incompatibility. But how many completely backwards incompatible versions did react-router have? I think there four, but I can be wrong.
- utdiscant 5y agoThe pricing seems weird. Why is there a limit of 10 documents on the pro plan? Even as a small team we have 50+ bases in Airtable.
- dahpu 5y agoWhere do you see a Pro plan? Their pricing[0] lists a 10 documents limit for the free Individual plan and unlimited for the paid plans Team and Enterprise. [0]: https://www.getgrist.com/pricing/ https://www.getgrist.com/pricing/
- resoluteteeth 5y agoI see a 10 document limit for the Team plan when I open that page.
- slightwinder 5y agoTheir pricing-site is just broken. You get the 10 Documents for teams on mobile or when you shrink the window on desktop small enough to force the side into a vertical(?) view of the blocks.
- paulfitz 5y agoThanks for pointing this out, we'll get it fixed (the desktop version is the correct one).
- xfz 5y agoI was tempted to try this but I'm fed up with getting spam from US-based companies so I'll only jump on board if they either comply with GDPR or otherwise tell a really good privacy story. Sadly that doesn't seem to be the case here, with a paltry privacy policy hidden even further out of sight than usual and no promises about handling data at the point of capture. Sure, I could sign up with a temporary email address to try it out, but why invest that effort if I know that I'm not going to trust them if I become a regular user?
- cyberge99 5y agoThen use a non-US alternative.
- xfz 5y agoBelieve it or not, I have actually considered that possibility. However, I think Grist looks like a great project and I can see they are reading the comments here. They might appreciate the feedback and it might not be hard to act on it. Plus, they might be small enough to fly under the CCPA radar for now, but I suspect privacy matters to many people inside the USA too.
- erulabs 5y agoIs the implication here that if a company collects your email and send you a message, that’s spam and not considering your privacy? I’m genuinely curious - I run a SaaS and have spent way too much time ensuring privacy and refusing the use 3rd parties whenever possible. I get occasional emails from folks asking me to delete their email address in our system - we do not send almost any email ever and every email has an unsubscribe link - but I can’t sort out the goal - if you sent me an email so I get rid of your email - aren’t you… giving me your email? I can’t make it into a reasonable position in my head. What is the dream system from your perspective?
- xfz 5y agoThanks for asking. I'm using a broad definition of spam here although not quite as broad as the one in your question. :) In ascending order of impact from slightly annoying to serious issue: 1. Sending marketing without consent. In the EU and UK this is unlawful (PECR regulation 22); elsewhere it's still highly unwelcome. This applies to users/customers who have chosen to sign up (just ask when you collect the data). 2. Sending reminders for unnecessary actions such as giving feedback. Reminders should be for genuine problems like unpaid invoices. 3. Missing/broken unsubscribe link or not acting on it. The latter is so common I began to doubt my memory and started saving screenshots. Even years later, marketing often resumes, perhaps after a botched provider migration. 4. Data breaches. Whether sold, given away or lost the effect is the same: too much spam to wade through (when looking for false positives), eventually making my email domain unusable and forcing a migration. I've used a different email address for every company to track this (> 20 years) and around 1 in 25 providers are affected. Points 3 and 4 might help to explain why people are asking you to delete their data. Even if you have done none of the above, the well of trust has already been poisoned by others. Companies that win my trust tend to follow a couple of broad principles: be transparent about how you use data (and keep promises), and give the user control. To your last point, yes it's difficult to fully erase data immediately, especially by email. By way of example, in cases where GDPR applies, a data controller might need to keep a record of the request for a while to demonstrate compliance. This is provided for in the regulation but the company would need to keep it for no longer than necessary, be transparent about how long that is, minimise what's kept and keep it secure. In practice, the best thing would be to provide a self-service delete capability. Log in, go to My Account, delete account. Personally I don't mind an email confirmation. Good companies don't try to trap customers, and if I can delete my account easily then I will leave with a positive experience and probably return later. Failing that, if I have to email you asking you to remove my personal data, I would make the calculation that having my deletion request in your inbox is not as risky as having it in your main customer database, which will likely to be replicated to several other data processors as well. You could always send an email saying you've carried out the request and will then delete the email thread immediately after. Not saying you should do any/all of the above but I hope it helps.
- HeavyStorm 5y agoDamn, I've been dreaming of building something like this for some time now. This is incredible.
- xtat 5y agoOpen core is such a bad smell
- davidfstr 5y agoNeat. Reminds me of FileMaker from back in the day, which I believe still exists. <hot-take> More programmer-focused, less UI/normal-folk focused. </hot-take>