The enterprise features are self-hostable. Look at "your servers" on the pricing page for Grist. Individuals (and orgs with < $1 million in annual income) quality for free activation keys btw.
Since it is relevant here: support for uploads was code written by a French contributor, and reviewed by a developer working for the French gov (ANCT/DINUM) and a developer working for Grist Labs. Grist Labs has since maintained and improved on it. The forms feature itself was inspired by an integration built by Camille Legeron at ANCT.
I work at Grist, the "tableur collaboratif" (collaborative spreadsheet) listed on the La Suite homepage. We're in the interesting situation of being both a NYC-based company, and open source software the French gov has adopted and is helping to develop. Grist is mostly a node backend. So it is a complicated story. The key is having code the gov can review and trust and run it on sovereign infrastructure.
I tried doing this years ago as a stand-alone project and it was too much. I wrote a data diff/patch/merge tool called "daff" that worked okay. But I've always wanted to add this to a proper spreadsheet tool like Grist.
I really want people working on data projects to be able to work more like coders, with pull requests and reviews. Not all data projects are as curated as that, sometimes your data is just a big soup, but when it is curated, there should be a better workflow.
The motivation for calling Grist a spreadsheet is that it has formulas, and cell values get updated automatically when something they depend on gets updated. Agree there is scope for misunderstanding here, maybe there's a better word?
[Grist employee]
In Grist, reference columns let you do a lot of what you can do with a join https://support.getgrist.com/col-refs/ while still having spreadsheet-style immediate updates when underlying data changes.