https://old.reddit.com/r/selfhosted/comments/su6tv3/grist_free_open_source_alternative_to_airtable/ jump to content my subreddits edit subscriptions * popular * -all * -random * -users | * AskReddit * -worldnews * -funny * -news * -gaming * -todayilearned * -tifu * -explainlikeimfive * -videos * -pics * -movies * -aww * -mildlyinteresting * -dataisbeautiful * -TwoXChromosomes * -LifeProTips * -nottheonion * -gifs * -askscience * -sports * -Jokes * -OldSchoolCool * -IAmA * -Showerthoughts * -science * -books * -Futurology * -Music * -space * -Art * -gadgets * -food * -nosleep * -UpliftingNews * -Documentaries * -DIY * -InternetIsBeautiful * -WritingPrompts * -GetMotivated * -history * -EarthPorn * -philosophy * -photoshopbattles * -creepy * -announcements * -listentothis * -blog more >> reddit.com selfhosted * comments * other discussions (1) Want to join? Log in or sign up in seconds.| * English [ ][] [ ]limit my search to r/selfhosted use the following search parameters to narrow your results: subreddit:subreddit find submissions in "subreddit" author:username find submissions by "username" site:example.com find submissions from "example.com" url:text search for "text" in url selftext:text search for "text" in self post contents self:yes (or self:no) include (or exclude) self posts nsfw:yes (or nsfw:no) include (or exclude) results marked as NSFW e.g. subreddit:aww site:imgur.com dog see the search faq for details. advanced search: by author, subreddit... this post was submitted on 16 Feb 2022 629 points (99% upvoted) shortlink: [https://redd.it/su6t] [ ][ ] [ ]remember mereset password login Submit a new link Submit a new text post Get an ad-free experience with special benefits, and directly support Reddit. get reddit premium selfhosted joinleave164,251 readers 577 users here now Welcome to /r/SelfHosted! Google Photos Mega Thread While you're here, please Read This First And why not Visit the Official Wiki? --------------------------------------------------------------------- A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control. For Example * Service: Dropbox - Alternative: Nextcloud * Service: Google Reader - Alternative: Tiny Tiny RSS * Service: Blogger - Alternative: WordPress We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers. --------------------------------------------------------------------- What Is SelfHosted, As it pertains to this subreddit? --------------------------------------------------------------------- The Rules --------------------------------------------------------------------- Chat --------------------------------------------------------------------- Read about our Chat Options --------------------------------------------------------------------- Related Subreddits * /r/HomeServer * /r/datahoarder * /r/musichoarder * /r/privacy * /r/Rad_Decentralization * /r/Syncthing * /r/Traefik * /r/WebApps Useful Lists * Awesome-Selfhosted List of Software * Awesome-Sysadmin List of Software Relevant Podcasts * The Selfhosted Podcast + Insight, information, and opinions + Relevant Interviews + Self-hosted tool debates a community for 7 years MODERATORS * message the mods * Moderator list hidden. Learn More discussions in r/selfhosted <> X * 6 comments [ZclRbSKU] Your Spotify, import from privacy data 588 * 78 comments [zcXXimnZ] Personal K8s cluster 9 * 9 comments Looking for a selfhosted news dashboard application Authentik Enrollment 26 * 1 comment [C5QEcZ74] Autolycus - A seedr.cc inspired web application to download and stream torrent files from hosted web servers. [6r3JoKaZ] Openbooks - Search and download books from irchighway.net * 1 comment Getting NextcloudPi Docker working after a reboot 5 * 2 comments Mail Server with SSO * 3 comments The Great G-Suite Migration 1 * 7 comments Email hosting Welcome to Reddit, the front page of the internet. Become a Redditor and join one of thousands of communities. x 628 629 630 Grist - Free open source alternative to Airtable and Google Sheets. A relational spreadsheet UI to SQLite database with customizable layouts, data linking, and Python formulas. (self.selfhosted) submitted 2 days ago by anaisconce[silver_48]2[klvxk1wggf]2 [5izbv4fn0m] Wanted to share what we've been working on at Grist. GitHub Link: https://github.com/gristlabs/grist-core#readme Key features: * Full Python syntax is supported, and the standard library. * Many Excel functions also available. * A portable, self-contained format based on SQLite. * Integration options include REST API, n8n, and support from similar integrators. * Can create custom views of data with custom widgets, hosted externally. * If you setup SSO logins, access control options can be granular, granting users access to individual rows, columns, and tables based on values in cells and user attributes, such as login email. Current grist-core version is 0.7.4. * 124 comments * share * save * hide * report all 124 comments sorted by: best topnewcontroversialoldrandomq&alive (beta) [ ] Want to add to the discussion? Post a comment! Create an account [-]darkguy2008 38 points39 points40 points 2 days ago (3 children) Holy cow this is so awesome, I'm going to give it a look soon!!!!! * permalink * embed * save * report * give award * reply [+][deleted] 2 days ago (2 children) [deleted] [-]RedStix -3 points-2 points-1 points 2 days ago (0 children) Holy cow this is Haiku poem for the win Give it a look soon!!!!! * permalink * embed * save * report * give award * reply [-]El-mono-bandido -5 points-4 points-3 points 2 days ago (0 children) Good bot * permalink * embed * save * report * give award * reply [-]palidanx 22 points23 points24 points 1 day ago (13 children) Do you know if there is row level security available if one user wanted to edit their specific data? (let's say one row per user) * permalink * embed * save * report * give award * reply [-]anaisconce[S] 18 points19 points20 points 1 day ago (12 children) If you mean granting a user access to a particular row (or set of rows that pertain to a particular user based on some logic), then yes! You can see an example of this in one of our templates. https:// templates.getgrist.com/38Dz6nMtzvwC/Account-based-Sales-Team Easiest way to see it is in the "Deals Dashboard" and "Contacts" pages. You're viewing this as the owner. You can see everything, all deals and all contacts. Each has been assigned to a sales person: Lucy, Chris, or Marianne. Now go to Access Rules (bottom left). Click on Users (top right) then View As one of the says people, e.g. Marianne. Now go to the Deals Dashboard and Contacts pages again. Marianne can only see the deals and contacts that she owns. This is just one example of how access rules can be used. You can hide columns, entire tables, or use different logic with different values in cells. Here's more about access rules: https:// support.getgrist.com/access-rules/ For the self-hosted version of Grist, you'll need to set up SSO to have logins that can take advantage of access rules. If you need help setting that up, feel free to reach out on Github or our community forum (https://community.getgrist.com/ ) and we'll help. You can also play with access rules in the hosted version of Grist for free. It's fully supported on the free plan. * permalink * embed * save * parent * report * give award * reply [-]palidanx 4 points5 points6 points 1 day ago (10 children) thanks! I kind of have a crazier use case add I have a community of users which would look like email password first name dan@dan.com dan sue@sue.com sue What we are looking for is the ability for [dan@dan.com](mailto: dan@dan.com) to only be able to log into a portal and only edit dan's entries [dan@dan.com](mailto:dan@dan.com). The admin also could change any fields as needed globally on the table. Is this something grist woudl support or is this more portal like? * permalink * embed * save * parent * report * give award * reply [-]anaisconce[S] 13 points14 points15 points 1 day ago (9 children) Yes! I built a quick example for you using your use case. Here's a 2 minute video: https://www.youtube.com/watch?v=Iyz9K717nTE * permalink * embed * save * parent * report * give award * reply [-]palidanx 8 points9 points10 points 1 day ago (7 children) wow thanks for being quick and even providing a video! Currently I have 85 users in my community that would do pretty much exactly what you created there. 1. That means I would need to create the 85 users as accounts manually into grist? (or is there some bulk import)? 2. Is there a way for a user e-mail ([dan@dan.com](mailto: dan@dan.com)) to only be able to create one record? btw this tool is super intriguing * permalink * embed * save * parent * report * give award * reply continue this thread [-]nippleribbon 1 point2 points3 points 23 hours ago (0 children) This app is incredibly cool * permalink * embed * save * parent * report * give award * reply [-]spacks 1 point2 points3 points 1 day ago (0 children) Found y'all via appsumo a few months ago, really awesome stuff :) nice to see y'all doing the self hosting thing too! * permalink * embed * save * parent * report * give award * reply [-]jo_ranamo 12 points13 points14 points 1 day ago (2 children) Cofounder of Budibase here. This looks great. Would you be interested in working together to build a Grist data source for Budibase? I think we'd both make a great fit, and we'd be happy to tell our community about your product! Cheers Joe * permalink * embed * save * report * give award * reply [-]anaisconce[S] 2 points3 points4 points 1 day ago (1 child) I'll DM you. Happy to discuss! * permalink * embed * save * parent * report * give award * reply [-]jo_ranamo 1 point2 points3 points 1 day ago (0 children) Looking forward to it! * permalink * embed * save * parent * report * give award * reply [-]dugite-code 7 points8 points9 points 1 day ago (0 children) Oh nice, charts! Python! I'm still not clear on the difference between selfhosted and the hosted version but so far it looks like the key features like SSO are fully available in the selfhosted version... Nice * permalink * embed * save * report * give award * reply [-]dtuando 5 points6 points7 points 1 day ago (4 children) How is this different from say nocoDB I use noco and am interested to see how it is compared to. * permalink * embed * save * report * give award * reply [-]anaisconce[S] 4 points5 points6 points 1 day ago* (2 children) I'm not too familiar with nocoDB and u/r4zzz4k's reply seems consistent with feedback I heard from an open source user who tried nocoDB but eventually settled on Grist. Doing a quick scan: - It looks like it's intended to hook up to an existing database. Though perhaps it can be used without one and nocoDB will just use it's own. - It seems their formula support is limited. No Python formula support and fewer spreadsheet-like functons. - They do have non-grid views of data, but I'm not seeing charts. Grist can have static charts or dynamic charts that update based on record selection. In some ways, based on their messaging, the idea in nocoDB is to go from database to spreadsheet-like app, which is useful! Grist more comfortably sits between spreadsheet and database. In Grist, less technical users can work in a spreadsheet-like product that feels familiar, and build a database as their project grows. * permalink * embed * save * parent * report * give award * reply [-]dugite-code 4 points5 points6 points 1 day ago (0 children) Yeah nocoDB doesn't have charts, this has been a major missing feature for myself * permalink * embed * save * parent * report * give award * reply [-]dtuando 1 point2 points3 points 1 day ago (0 children) I want to try it out to see the API one thing I liked about nocodb was the API section it was super easy and straightforward. It made it easier to connect my apps from app inventor and nocode builders just like it * permalink * embed * save * parent * report * give award * reply [-]r4zzz4k 6 points7 points8 points 1 day ago (0 children) NocoDB works in a quite limited mode when backed by SQLite. I couldn't force myself to try it out for an extended period due to UI bulkiness and the fact it requires full-blown RDBMS to work properly (not saying it's a bad thing, just didn't suit me). Grist looks promising and a bit more solid based on description and video at github's readme, hoping to give it a go sooner rather than later. * permalink * embed * save * parent * report * give award * reply [-]altifuse 4 points5 points6 points 1 day ago (11 children) This looks awesome, can't wait to try it out! However, I've been having issues setting it up in my environment. Running it in Docker behind a reverse proxy seems impossible at the moment, as: * it seems to hardcode the subdomain to docs.mydomain.tld, ignoring whatever I set in the APP_DOC_URL, APP_HOME_URL, and GRIST_DOMAIN env vars * without the env vars, it lands on the starting page, but the front end app is broken, as it tries to fetch resources from docs.mydomain.tld:PORT, where PORT is whatever is exposed inside the container * when I configure my reverse proxy to point docs.mydomain.tld to the correct port, Grist enters a redirect loop sending the request to docs.mydomain.tld There are a couple of new GitHub issues talking about these exact same issues, so it seems to not be related to my specific setup. Hope these can be fixed soon, this is a really promising app! * permalink * embed * save * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (10 children) Can you try setting APP_DOC_URL and APP_HOME_URL to mysubdomain.mydomain.tld, GRIST_SINGLE_ORG to docs, and GRIST_ORG_IN_PATH to true? You can omit the subdomain if you'd like. * permalink * embed * save * parent * report * give award * reply [-]altifuse 3 points4 points5 points 1 day ago (1 child) That solved it, thank you very much! To make it clear for anyone looking at this, this is what I set: APP_DOC_URL=https://grist.mydomain.tld APP_HOME_URL=https://grist.mydomain.tld GRIST_SINGLE_ORG=docs GRIST_ORG_IN_PATH=true With this I could make my Nginx Proxy Manager-powered setup work. * permalink * embed * save * parent * report * give award * reply [-]amihaic 1 point2 points3 points 1 day ago (0 children) This worked for me with SWAG as the reverse proxy. This is my subdomain configuration: server { listen 443 ssl; listen [::]:443 ssl; server_name grist.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia include /config/nginx/authelia-server.conf; location / { # enable the next two lines for http auth #auth_basic "Restricted"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; include /config/nginx/resolver.conf; set $upstream_app grist; set $upstream_port 8484; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; } } Haven't bumped into the /o/docs/ issue yet. * permalink * embed * save * parent * report * give award * reply [-]altifuse 1 point2 points3 points 1 day ago* (6 children) ...Although now I'm having another issue: any time I'm redirected to a /o/docs/ path, I get an error: "Cannot figure out what organization the URL is for." EDIT: I have tried a bunch of different combinations of these four environment variables to no avail. * permalink * embed * save * parent * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (5 children) Seeing the same error on some links. Looking into it (sorry for all the trouble). * permalink * embed * save * parent * report * give award * reply [-]altifuse 1 point2 points3 points 1 day ago (4 children) No worries! I can only imagine how difficult it is to get something tailored to a specific SaaS environment running in such a different fashion. * permalink * embed * save * parent * report * give award * reply continue this thread [-]amihaic 1 point2 points3 points 1 day ago (0 children) Kudos for creating a self-hosted docker image that's actually easy to get up and running. Took me all of 5 minutes and a bit of googling for mixed content errors to start using it. * permalink * embed * save * parent * report * give award * reply [-]dwkdnvr 3 points4 points5 points 1 day ago (0 children) This looks really interesting. Thanks for posting. * permalink * embed * save * report * give award * reply [-]jay-aye-see-kay 2 points3 points4 points 1 day ago (2 children) This is super cool, just had a play with the hosted version and it's surprisingly polished - even on mobile. One feature that I'd love but seems to be missing is forms, with the granular permissions you have it would be super useful to be able to make a "form input widget" and use that to add rows to a table like google forms. It looks like I could do this with a custom widget, and it's nice having that escape hatch for developers to add their own functionality. I see this is already on your roadmap and I'm excited to play with it https://github.com/gristlabs/grist-core/issues/37 - I'm excited for a lot of the things you have on your roadmap too. One feature that's not on your roadmap (and maybe for good reason) but I'd personally love to see is [simple] rich text document that stores it's own text but also has access to the formula language and table data. This could be used for dynamic reports and literate programming, a bit like jupyter notebooks. https://coda.io does this really well. * permalink * embed * save * report * give award * reply [-]anaisconce[S] 5 points6 points7 points 1 day ago (0 children) Thanks for this great comment! Rich text is on the roadmap too. Your description is a great suggestion. It is possible now with custom widgets. The invoicing example in our template gallery is one such example. https://templates.getgrist.com/9NH6D58FmxwP/Invoicing I also know of a user who connected our API to Carbone.io to export fancy reports based on record selection. * permalink * embed * save * parent * report * give award * reply [-]mackrevinack 0 points1 point2 points 1 day ago (0 children) im not familiar with jupyter but do you mean something like text substitution like "hello %name" and then having %name replaced with a name in some column? because that would be a huge time saver for some of the things im trying to do in airtable at the moment! * permalink * embed * save * parent * report * give award * reply [-]btgeekboy 2 points3 points4 points 1 day ago (2 children) Sounds interesting! Can't seem to open the GitHub link on mobile though; it shows a GitHub 404. * permalink * embed * save * report * give award * reply [-]mkswt 4 points5 points6 points 1 day ago (0 children) Weird! Maybe try going to https://github.com/gristlabs/ and clicking on the first pinned repo? * permalink * embed * save * parent * report * give award * reply [-]Orangethakkali 1 point2 points3 points 1 day ago (0 children) Yeah getting the same * permalink * embed * save * parent * report * give award * reply [-]a_sugarcane 3 points4 points5 points 1 day ago (1 child) Can I use this as a REST/JSON API server for a simple web application? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 2 points3 points4 points 1 day ago (0 children) Using Grist as a backend solution directly to a website or web app is not yet supported. We don't yet have an authentication method for this use case. The API key method isn't generally appropriate for web use, because the key would end up accessible to any viewer of the webpage, which is usually undesirable. Though we'd love to support this and have discussed doing so. Keep an eye on our roadmap! * permalink * embed * save * parent * report * give award * reply [-]Code_slave 2 points3 points4 points 1 day ago (9 children) One thing missing from a lot of low code/excel replacements. when i build a report can i export it to pdf. can i trigger that via an api call? for some automation tasks? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (8 children) We don't have an export-as-pdf option (yet? it's a great idea!) However, it's possible to create this yourself with custom widgets. The invoicing example in our template gallery is one such example. https://templates.getgrist.com/9NH6D58FmxwP/Invoicing I also know of a user who connected our API to Carbone.io to export fancy reports in proper formatting, based on record selection. * permalink * embed * save * parent * report * give award * reply [-]Code_slave 2 points3 points4 points 1 day ago (7 children) For dashboards thats a killer feature for me. Ive been searching for something that can can use interactively but also trigger a pdf on a daily basis automatically. Grist looks very near. And i cannot connect to any outside network. So all has to be selfhosted. Personally im builing a farm/shop manager as i bought a 25 acre farm and am setting up inventory, simple contacts etc. This looks well suited but i may run into a number of documents limitation * permalink * embed * save * parent * report * give award * reply [-]anaisconce[S] 0 points1 point2 points 1 day ago (5 children) Grist and Carbone.io are both self-hosted so it might be a good solution for you. https://github.com/carboneio/carbone That is a very cool use case! The document limit should be relaxed. Are you seeing a document limit? If you are, reach out on Github or our forum. There's no need for it, but this was a very recent change. I'll follow up with our devs, too. * permalink * embed * save * parent * report * give award * reply [-]Code_slave 1 point2 points3 points 1 day ago (4 children) Im exploring now. Ive built my personal farm app on a couple systems so far. Nocodb and baserow. I dont know enough about what grist considers a document to give a good answer. I plan on some time with it this weekend after farm stuff is done. Prepping for spring so getting busy. Ive hit limits on other open source no code systems. * permalink * embed * save * parent * report * give award * reply continue this thread [-]redhoot_ 0 points1 point2 points 1 day ago (0 children) I believe Seatable let's you do this. * permalink * embed * save * parent * report * give award * reply [-]xdiag 2 points3 points4 points 1 day ago (1 child) Is it free ? I see pricing on their website * permalink * embed * save * report * give award * reply [-]anaisconce[S] 2 points3 points4 points 1 day ago (0 children) The website pricing is for the hosted/SaaS version. The self-hosted version is free. Currently, the self-hosted version has all the key features of the hosted version -- all custom layouts, summary tables (pivot tables) Python formula support, charts, custom widgets, and granular access rules. SSO for teams on the self-hosted version needs a little additional setup. If you get stuck, we're happy to help. In the future, the SaaS version might include some business-facing features that enterprises care about when managing large teams. * permalink * embed * save * parent * report * give award * reply [-]qwacko 1 point2 points3 points 1 day ago* (1 child) Hi, Looks like an awesome tool, I had a few questions from my first look around: * For relationships, I cannot see any way to display the "reverse" relationship. I know this is not part of a standard database, but it is super useful from my work with Airtable. I tried to build a formula that gets that infomriaton, and I think it is achievable, but it would great to be able to make changes from both ends of the relationship. * Is it in your roadmap to have some more "bulk editing" functionality, for example drag fill of cells ( i see that copy and then select multiple cells and paste works, so possibly that is almost there). Edit: Removed permissions question, as it was already in the manual / documentation. * permalink * embed * save * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (0 children) For your first question, yes you can use a formula to do this. Table.lookuprecords(ReferenceColuminTable=$id) is the best way to do it. If you enter $id into its own formula column, you'll see the record's id. That's a reference column is pointing to, the entire record, matching on id. We've discussed supporting this more easily in the UI as well. It would be great! For your second question, yes! Eventually. For now, to drag fill, select the range you want to fill in a column, and use ctrl+d to take the value at the top of the list and fill the entire selection with that value. * permalink * embed * save * parent * report * give award * reply [-]greasychip 1 point2 points3 points 1 day ago (1 child) This is gold my friend! Wish you all the luck, is it open source can I contribute? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 0 points1 point2 points 1 day ago (0 children) Yes! It is open source and you may contribute. We'd love it! * permalink * embed * save * parent * report * give award * reply [-]earlcodalot 1 point2 points3 points 1 day ago (0 children) Fantastic! Very nice job! * permalink * embed * save * report * give award * reply [-]glmdev 1 point2 points3 points 1 day ago (3 children) This software is really cool, thanks for the open-development practices! I've been using a hand-written solution similar to this, but this is much less jank and more full featured. Might be worth making the switch. I cloned a copy down to play with it a bit, and I can't seem to get the custom widgets to work. I've tried setting the `GRIST_WIDGET_LIST_URL` to the `manifest.json` provided in the `grist-widgets` repo, but none of the widgets appear in the add to page menu. Also, one thing I would like to do is be able to share my pages with my SO. I see that there is an option to create a workspace, but it is greyed out behind an "upgrade to team plan" prompt. Is this intended on the self-hosted version? Fair, if so, but I might just be missing the flag to disable it. * permalink * embed * save * report * give award * reply [-]mkswt 2 points3 points4 points 1 day ago (2 children) For the custom widgets, could you check if the method at https:// support.getgrist.com/widget-custom/#adding-a-custom-widget works for you, for adding a custom widget by its URL? If that works, then try the instructions in the grist-widget repo, leaving out the GRIST_WIDGET_LIST_URL variable - you should be add custom widgets at the URLs listed in the manifest.json. The GRIST_WIDGET_LIST_URL method is something we're finishing right now. For workspaces, make sure you've clicked the "sign in" button in the top right (you start off as an anonymous user, see https://github.com /gristlabs/grist-core/#logins). * permalink * embed * save * parent * report * give award * reply [-]glmdev 2 points3 points4 points 1 day ago (1 child) Thanks for the quick reply. Adding the widgets manually does seem to work. Regarding workspaces, I've clicked sign-in and am in as the default user. The option to add a workspace is now available, but when I click it, I get a "This feature is not available on your plan" message in the bottom right. (As an aside, I think the idea of building widgets with iframes and the SDK to be pretty ingenious. Seems like the barrier for entry to building custom components is pretty low that way, which is really cool.) * permalink * embed * save * parent * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (0 children) One thing that could be causing the workspace issue is the GRIST_DEFAULT_PRODUCT env variable not being set to 'Free'. Normally, it's set to 'Free' by default when you start the Grist server, so you shouldn't need to set it manually. Did you clone the main branch? The change that removed limits by default was made fairly recently, so our most recent tagged version (0.7.4) doesn't have it. * permalink * embed * save * parent * report * give award * reply [-]farens98 1 point2 points3 points 1 day ago (0 children) Cool, thanks for sharing. * permalink * embed * save * report * give award * reply [-]run-26_2 1 point2 points3 points 1 day ago (0 children) Thanks bro * permalink * embed * save * report * give award * reply [-]SubwayLover 1 point2 points3 points 1 day ago (1 child) What are the performance constrains based on size of data? * permalink * embed * save * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (0 children) Generally, Grist works best when documents don't exceed 100,000 rows, but it varies depending on the number of tables and columns, and the size of data stored in cells. There's more information here if you're interested. * permalink * embed * save * parent * report * give award * reply [-]GonjaT 1 point2 points3 points 1 day ago (2 children) Are there mobile apps in discussion or already available? Hard to break free of the airtable android app. It's not great but still convenient. * permalink * embed * save * report * give award * reply [-]AgilePhilosophy3191 1 point2 points3 points 1 day ago (1 child) No mobile app support currently on the roadmap, but we do have mobile support on the web, which we're regularly improving. * permalink * embed * save * parent * report * give award * reply [-]GonjaT 1 point2 points3 points 1 day ago (0 children) Thank you for the reply. I will watch this closely for now and may give this a shot in the future. Looks great, good work. * permalink * embed * save * parent * report * give award * reply [-]ST_Lawson 1 point2 points3 points 1 day ago (2 children) This looks very interesting. I'm curious about the possibility of a data type that is just "time", or if there's a recommended solution for that. For example, I'm a runner, and I like to keep track of my runs in a spreadsheet. I usually record the length of my runs in HH:MM:SS format, but it's not at all connected to the date...so like, today I ran for 34 minutes and 32 seconds, which would be 00:34:32. Any thoughts on how to do that? I could also see that being a useful scenario for tracking time spent on a project/job. * permalink * embed * save * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (1 child) A time column type sounds useful, and would fit in nicely with the current date and datetime column types. While not quite as robust, one thing you could do is use a text column and a trigger formula that formats cell values to HH:MM:SS. Trigger formulas are a special type of formula in Grist that are triggered on edits to a column, including the one you are editing, and let you transform the input into a new output that's saved in the cell. For example, a formula could take an input like 123 and produce the text "00:01:23". Another option could be to use separate columns for tracking hours, minutes and seconds. Though not as simple as a single column, it would keep your data stored as integers, which would make performing computations like sums and averages easier. You'd still be able to add a formula column that references those 3 columns, and produces the result formatted in HH:MM:SS. And because Grist supports multiple views to the same table, each with their own settings for hidden columns, you could hide the hours/minutes/seconds columns in additional views. * permalink * embed * save * parent * report * give award * reply [-]ST_Lawson 1 point2 points3 points 1 day ago (0 children) Good ideas. I'll give them a try and see what works best for me. I also noticed that in the time tracking template, they used starting and ending datetime and then calculated the difference to show time spent working on a project. * permalink * embed * save * parent * report * give award * reply [-]erohtar 1 point2 points3 points 1 day ago (2 children) Any chance I could try this in a docker container on my rPi? * permalink * embed * save * report * give award * reply [-]AgilePhilosophy3191 2 points3 points4 points 1 day ago (1 child) Unfortunately, while we do publish Docker images here, we currently only publish images for x86 architectures. I don't believe we've tried to build Grist on an ARM machine yet, but most, if not all, Grist dependencies should have ARM builds, so it's definitely in the realm of possibility for the future. * permalink * embed * save * parent * report * give award * reply [-]erohtar 2 points3 points4 points 1 day ago (0 children) Thank you. With a considerable part of the self-hosting community using or starting out with rPi, I think it's a platform that should not get overlooked. I'll definitely be looking forward to try out Grist as soon as an image is made available :) * permalink * embed * save * parent * report * give award * reply [-]SlaveZelda 1 point2 points3 points 1 day ago (2 children) Your newsletter indicates its around for a while. How are we only seeing this now ? Was it in a closed beta before ? * permalink * embed * save * report * give award * reply [-]mkswt 4 points5 points6 points 1 day ago (1 child) One reason was that we went through a painful and late Python 2 -> Python 3 transition (because the sandboxing method we used was tied to Python 2) and were frankly embarrassed to post too much to technical audiences until that was sorted out :) * permalink * embed * save * parent * report * give award * reply [-]SlaveZelda 1 point2 points3 points 1 day ago (0 children) Ah. Makes sense. * permalink * embed * save * parent * report * give award * reply [-]NOFF44 1 point2 points3 points 1 day ago (2 children) I've encountered software like this before and it always seems interesting, but I can never find a good use-case. What would be the typical usecase for your platform? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (1 child) It's been rewarding to see a broad sample of use cases among our users. It's largely small and medium businesses who need a simple relational data tool to organize and work with their data. I've talked to a tutoring business, beverage manufacturer, law firm, drop shipping company, SEO agency, film producer, private physician, non-profit focused on urban community building, a small media company, professional blogger, and so on. Anything people try to organize in spreadsheets or spreadsheet-like products is a good use case. I've seen Google Sheets documents that were tortured to death with formulas and formatting to try and create a dashboard and relational experience -- and one that was prone to breakage and hard to update. A database is a more natural fit for that data, but requires more technical skills. Grist is bridging that gap with a spreadsheet-like UI that is familiar to most users, while enforcing the structural benefits of a database. * permalink * embed * save * parent * report * give award * reply [-]NOFF44 1 point2 points3 points 1 day ago (0 children) Thanks for the insight! * permalink * embed * save * parent * report * give award * reply [-]slykethephoxenix 1 point2 points3 points 1 day ago (8 children) Since it runs in the browser, does it also support Javascript along with Python for scripting? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 2 points3 points4 points 1 day ago (1 child) Jumping in! u/InterFelix Might be interested as well. You can script in Python or JS. Python client library: https://github.com/gristlabs/py\_grist\_api JavaScript/TypeScript client library: https://github.com/gristlabs/ grist-api * permalink * embed * save * parent * report * give award * reply [-]slykethephoxenix 1 point2 points3 points 1 day ago (0 children) Very cool! * permalink * embed * save * parent * report * give award * reply [-]InterFelix 1 point2 points3 points 1 day ago (5 children) The browser is just the frontend, while the code is executed on the backend. So no, it doesn't. * permalink * embed * save * parent * report * give award * reply [-]slykethephoxenix 0 points1 point2 points 1 day ago (4 children) Ah, too bad. Hopefully they'll add in Node as well. * permalink * embed * save * parent * report * give award * reply [-]InterFelix -1 points0 points1 point 1 day ago (3 children) Honestly, I don't really see the use case. Python is the far superior language in regards to data manipulation, JS is just not designed for these applications. And even though python's syntax is remarkably different from other languages without significant whitespace, it's rather easy to pick up if you already know how to program in another language, because programming is programming, after all. * permalink * embed * save * parent * report * give award * reply [-]slykethephoxenix 0 points1 point2 points 1 day ago (2 children) I know Python and Javascript well and use them both daily. Saying Javascript is not suited in a browser app that manipulates data is wrong. There are loads of things that Javascript could do for this software; such as doing a fetch request and parsing the data with jquery. Something I do daily. I wouldn't suggest Javascript if this wasn't browser based. This is why Microsoft put Javascript in Excel. * permalink * embed * save * parent * report * give award * reply continue this thread [-]martijn5791 1 point2 points3 points 1 day ago (3 children) Can't say I'm thrilled about the open core model... that always feels like companies are trying to leverage free development resources whilst keeping the most interesting features away from that same community. Just my opinion though. :-) * permalink * embed * save * report * give award * reply [-]anaisconce[S] 2 points3 points4 points 1 day ago (2 children) We definitely hear that concern. Our goal is to provide a truly useful open source software, while still covering the costs of developing that software. Currently, the self-hosted version has all the key features of the hosted version -- custom layouts, summary tables (pivot tables) Python formula support, charts, custom widgets, and granular access rules. In the future, the SaaS version will include some business-facing features that enterprises care about when managing large teams. Here's a blog article that explains our motivation for Grist and maintaining an open source version: https://www.getgrist.com/blog/ grist-a-hacker-friendly-spreadsheet/ Our founder also discussed Grist's philosophy in response to question about Grist v. Baserow. It sheds more light on our principles as we develop the product: https://community.getgrist.com/t/ comparison-with-baserow/572/3 * permalink * embed * save * parent * report * give award * reply [-]kraftfahrzeug 1 point2 points3 points 1 day ago (1 child) Currently, the self-hosted version has all the key features of the hosted version I sincerely hope your business allows you to keep as much of the stuff as possible in the selfhosted version. I truly believe that this is a long-term decision that is probably challenged in the mid-range after your initial take-off, but well worth it keeping it that way. Building a community that uses and mods your product heavily (which is what selfhosters will do more than your business clients) might one day end up with sometone developing a true killer-feature for a lot of people. I assume people are going to pay for you doing the heavy lifting (hosting, support) to use that stuff. And tables/databases in my perception do provide a lot of room for development / market share. Don't go down the OpenOffice road :) * permalink * embed * save * parent * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (0 children) I agree! That's a philosophy we share as a company. * permalink * embed * save * parent * report * give award * reply [-]drakehfh 1 point2 points3 points 1 day ago (1 child) Nice! How does it compare to seatable and nocodb? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 0 points1 point2 points 1 day ago (0 children) There's a discussion about nocoDB in an earlier comment thread: https://www.reddit.com/r/selfhosted/comments/su6tv3/comment/hx8rrqg/? utm\_source=share&utm\_medium=web2x&context=3 I don't know Seatable very well and would love to hear from Seatable users. Glancing at their website, they have views of data similar to Airtable, but not quite the drag-and-drop and data linking functionality that Grist has which enables truly flexible layouts. It doesn't look like they support Python formulas in the document, and they have fewer functions for formulas. Their user access rules look pretty neat! It's a different approach, more high-level and action oriented (unless I am missing something). Grist's granular access rules are focused on which parts of the data can be viewed or edited, by who, down to each cell. * permalink * embed * save * parent * report * give award * reply [-]TrashkenHK 1 point2 points3 points 1 day ago (5 children) Getting this error when going into Profile Settings: 22:28:20 Cannot figure out what organization the URL is for. 22:28:20 Cannot figure out what organization the URL is for. * permalink * embed * save * report * give award * reply [-]mkswt 2 points3 points4 points 1 day ago (3 children) Hmm sorry about that, sounds like a configuration issue. Do the instructions in the README (https://github.com/gristlabs/grist-core/# using-grist) for running on localhost work for you, and give you a working Profile page? Are you seeing the error when serving from your own domain or ip address? If so, you could try setting the environment variable GRIST_SINGLE_ORG=docs. This tells Grist to drop support for multiple "team sites" which could introduce some subdomain complications. The error you are seeing says that Grist is looking for an organization/team to use, and thinks it found one encoded both in the domain (like we do for our SaaS) and in the path part of the url (like we do for hosting on a single domain or in dev environment), and that they don't match. Would appreciate if you open an issue for this. * permalink * embed * save * parent * report * give award * reply [-]TrashkenHK 1 point2 points3 points 1 day ago (2 children) I installed from the Unraid community apps list. Not sure if that's the issue. * permalink * embed * save * parent * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (0 children) Interesting, thanks for sharing. I pinged the person who built the Unraid template. Maybe he can test it again. There's a thread about Unraid on our forum: https:// community.getgrist.com/t/ grist-now-available-in-unraids-community-application-library/453 * permalink * embed * save * parent * report * give award * reply [-]Garrgamell 2 points3 points4 points 1 day ago (0 children) I see the error u/TrashkenHK. I'll take a look and work with the Grist folks to come up with a solution. Thanks for checking it out and providing feedback! * permalink * embed * save * parent * report * give award * reply [-]-Lago- 1 point2 points3 points 1 day ago (4 children) Is there currently a way to "share" a widget so someone without an access to the Grist itself could fill that widget/form and submit an entry to the database? * permalink * embed * save * report * give award * reply [-]anaisconce[S] 0 points1 point2 points 1 day ago (3 children) Interesting question! You can't share just a widget, but you can embed pages into websites, and a page could have just one widget. However, to allow write access like this, you would have to enable public sharing with the editor role, so it is publicly available, the link is exposed, and anyone could edit it. We have been discussing, this very week, how to make some changes to that to make these types of use cases possible. Keep an eye on our roadmap and newsletters! Quick question, are you trying to build a form using a custom widget? Or is this for a particular team? * permalink * embed * save * parent * report * give award * reply [-]-Lago- 1 point2 points3 points 1 day ago (2 children) I haven't used Airtable or Baserow, but I believe both of them have this option as well. But what I do use is NocoDB, which also has this feature and at least they allow a "form" creation from each table. An access to this form can then be shared via long secret URL, with or without password protection. Then anyone with that URL can access that form, fill it and submit it to the table that they do not see at any point. This can be used to collect data from customers/employees without them having a direct access to the table itself. I just assumed that what you call a widget is an equivalent of a form of NocoDB, but I could figure out a way to share those widgets. * permalink * embed * save * parent * report * give award * reply [-]anaisconce[S] 1 point2 points3 points 1 day ago (1 child) Ah, I see! Yes, I think this will soon be possible, as early as next week. I can follow up with an example when we have it in prod. =) * permalink * embed * save * parent * report * give award * reply [-]-Lago- 1 point2 points3 points 1 day ago (0 children) Very excited to try it out! Great job btw, the whole thing looks very promising. * permalink * embed * save * parent * report * give award * reply [-]nickdanger3d 1 point2 points3 points 1 day ago (0 children) wow this is amazing * permalink * embed * save * report * give award * reply [-]mackrevinack 1 point2 points3 points 1 day ago (1 child) this is great timing! i was just messing around with airtable recently and i was about to share it around with everyone in work next week but i think i might hold off now. i could do a fair bit of what i wanted with airtable but the way grist lets you have multiple views on the same page would be better suited to what i want to do. i noticed your map plugin uses leaflet. nice! is it possible to add your own custom map tiles somehow? at the moment im using a dropdown list with the rough area that cars are parked in but it would be neat to have a map view instead. some of them are inside a showroom as well so i was thinking i could just edit the tiles manually and draw in the building and yard layout. it would make it easier to pick/ update the location since the map of the area on openstreetmap is mostly empty so there isnt much context. * permalink * embed * save * report * give award * reply [-]anaisconce[S] 0 points1 point2 points 1 day ago (0 children) Glad this was timely! That's an interesting use case! Would you mind asking in our forum? https://community.getgrist.com/ Our devs are fantastic and they might have great ideas for this. * permalink * embed * save * parent * report * give award * reply [-]artvandelay440 1 point2 points3 points 1 day ago (0 children) Wow, this looks exactly like something I was needing! * permalink * embed * save * report * give award * reply [-]SecretQuestioning 1 point2 points3 points 1 day ago (0 children) Neat! * permalink * embed * save * report * give award * reply [-]nippleribbon 1 point2 points3 points 1 day ago (0 children) Yooo they even have an unraid template * permalink * embed * save * report * give award * reply [-]Akhavir 1 point2 points3 points 19 hours ago (1 child) Anyone setup Authentik and Grist? I have both installed and running, I'm just stuck with trying to get them integrated together. I was trying to follow along with: https://github.com/gristlabs/grist-core/ blob/main/app/server/lib/SamlConfig.ts but have no idea what to do after I get the certs from authentik / env files. * permalink * embed * save * report * give award * reply [-]mkswt 1 point2 points3 points 7 hours ago (0 children) I've done this, on localhost at least. On the Grist side, my configuration was: docker run --env DEBUG=1 -p 8484:8484 \ --env GRIST_SAML_SP_HOST=http://localhost:8484 \ --env GRIST_SAML_IDP_LOGIN=https://localhost:9443/application/saml/grist/sso/binding/redirect/ \ --env GRIST_SAML_IDP_LOGOUT=https://localhost:9443/if/session-end/grist/ \ --env GRIST_SAML_IDP_UNENCRYPTED=1 \ --env GRIST_SAML_SP_KEY=$PWD/sso/saml.pem \ --env GRIST_SAML_SP_CERT=$PWD/sso/saml.crt \ --env GRIST_SAML_IDP_CERTS=$PWD/sso/authk.crt \ -v $PWD:$PWD -it gristlabs/grist On the Authentik side, I added a Provider called Grist with: * ACS URL: http://localhost:8484/saml/assert * Service provider binding: Post * Signing certificate: (one certificate) * Verification certificate: (other certificate - being ambiguous because I don't remember exactly) Then I added an Application also called Grist (I'm not very imaginative) that used that Provider, with Launch URL http:// localhost:8484 * permalink * embed * save * parent * report * give award * reply [-]ornerysystem 0 points1 point2 points 1 day ago (0 children) Will you support ldap connections outside of the enterprise edition? * permalink * embed * save * report * give award * reply [-]aliasxneo 0 points1 point2 points 8 hours ago* (1 child) Nice! Any plans to support a distributed deployment model? The SQLite backend makes this difficult to deploy on something like a serverless provider. Even just supporting another SQL-like backend would be a huge improvement. * permalink * embed * save * report * give award * reply [-]mkswt 1 point2 points3 points 6 hours ago (0 children) One SQLite file per spreadsheet is working well for us so far. It means there's a self-contained format users can download e.g. from our SaaS and then use in their self-hosted installation, or vice versa, without fuss. And it simplifies building features related to templates, copies, forks, comparing forks, version control etc. I totally see the value of supporting other back-ends. We haven't focused on it since it would slow down development of other features we wanted to get to. If you turned off a bunch of features in Grist that maybe don't matter much for a single-database scenario, then the main thing that would need updating is app/server/lib/DocStorage.ts. Otherwise with SQLite, Grist can be set up to pull from cloud storage, and store versioned snapshots back - we'll be polishing this up soon. * permalink * embed * save * parent * report * give award * reply [-]techlover1010 0 points1 point2 points 6 hours ago (0 children) how can i install this on windows without docker? my windows cant handle docker. not sure what yarn is * permalink * embed * save * report * give award * reply * about * blog * about * advertising * careers * help * site rules * Reddit help center * reddiquette * mod guidelines * contact us * apps & tools * Reddit for iPhone * Reddit for Android * mobile website * <3 * reddit premium * reddit coins Use of this site constitutes acceptance of our User Agreement and Privacy Policy. (c) 2022 reddit inc. All rights reserved. REDDIT and the ALIEN Logo are registered trademarks of reddit inc. [pixel] p Rendered by PID 30 on reddit-service-r2-loggedout-6d677db5cc-ps58d at 2022-02-18 23:02:00.201432+00:00 running 673c6bd country code: US.