13 ms·
Show HN: Stein – Use Google Sheets as a No-Setup Database
- _Codemonkeyism 7y agoWhat is the performance of this?
- EmilStenstrom 7y agoData seems to be mirrored to a mongoDB instance on the server where it's served. So my guess is that performance is great.
- jonny_eh 7y agoHow does this compare to Airtable?
- lucasverra 7y agoAT is my go to solution for quick database needs for prototyping. very simple to share “auto created” documentation for external devs to connect via its marvelous api. plus 1200 row free (infinite tables) is good to start
- latchkey 7y agoI'm building something with Airtable now, but definitely see the need to move away from it quickly. More than anything, I just like the appeal of the web UX to get started in designing the data model. It allows me to work with an 'excel guy' in order to figure out what we need for our application. The API, which is very well documented, is far from marvelous. For example, there is no way to use a transaction to update two (or more) tables at the same time. It is also rate limited to a tiny 5 requests per second, even under paid plans. The API also does not allow you to request relational data in one request. You make a request to get the parent id, then all the children, by parent id, in a separate request. I'll also say that the company feels a bit dead. You look at the changelog and they add a couple features here and there, while other features, such as barcode scanning (probably a weekend hackathon feature) languish by the wayside. They respond quickly to support requests with answers like 'we will add that to the long list of things we want to do'... riiigght...
- psteinweber 7y agoThey just raised $100M last November, I wouldn't consider them dead... Probably busy hiring :) https://www.crunchbase.com/organization/airtable#section-funding-rounds https://www.crunchbase.com/organization/airtable#section-fun...
- Zaheer 7y agoYou can do this for free today using open source libraries. https://www.levels.fyi/comp.html https://www.levels.fyi/comp.html used to run entirely on a Google Form + Spreadsheet and still backed by one. Submit form: https://stackoverflow.com/a/37743080 https://stackoverflow.com/a/37743080 Get data from sheet: https://github.com/jsoma/tabletop https://github.com/jsoma/tabletop Happy to answer any questions.
- shivensinha4 7y agoStein is completely open-source itself, and the documentation includes instructions for self-hosting. It consolidates all such features in a single API. Find it at https://github.com/SteinHQ/Stein https://github.com/SteinHQ/Stein
- Zaheer 7y agoOne benefit of approach I mentioned is that there's nothing to host. All just client-side code. Although I do see the use for hosting: latency for loading data from Google Sheets isn't great and adding a cache helped in my case.
- IloveHN84 7y agoIn this case, what have you used for caching?
- felipap 7y ago
- aznpwnzor 7y agoah like glideapp.io but more cross platform!
- leot 7y agoThis is exactly the approach we're using for hackerpet (hackerpet.com)
- mnky9800n 7y agoThis is what I did for a webpage I made about books I read. Just have to add a row to the sheet to update the page. Also I should read more books. https://mnky9800n.github.io/booklist/ https://mnky9800n.github.io/booklist/
- babayega2 7y agoI see you're enjoying Tom Clancy like I did back then in 2005. Good read bro.
- mnky9800n 7y agoI have an addiction and I can't help myself. I think the strangest thing about Tom Clancy is his politics. He clearly wants an egalitarian meritocracy, a laudable goal imo, then suddenly he's talking about the importance of gender roles or how government handouts are bad. I think his early books are better simply because they seem to be much better researched.
- kristiandupont 7y agoI have contemplated using google sheets as storage for parts of the data that I have. It would allow me to procrastinate on many admin UI things, and it would even feel much more transparent. It just feels too fragile somehow, which isn't really a rational assessment. Does anyone have experience with it in a SAAS context?
- stevewodil 7y agoYou could also host your website or application's images by creating a facebook account and programmatically uploading the images there, and then linking to the CDN image URL from Facebook. It would work, but there are better ways to handle it. I would just use Postgres as a database, personally.
- necovek 7y agoLooking at the code, it seems tightly coupled to Google's offerings: just for fun, it'd be nice to have it run against NextCloud/OwnCloud. Sure, if you host those, you might as well host a proper database (you already do), but for quick prototyping might be useful, or as I said, just fun :)
- rhardih 7y agohttps://sheetsu.com https://sheetsu.com https://sheety.co https://sheety.co (No pricing)
- EugeneOZ 7y agoSo many discontinued services and people still invest their time to Google APIs.
- geeku 7y agoNice side project but risky to consider for commercial product. With google restricting access to its API, it is unreliable to use a free product for commercial purposes.
- williamstein 7y agoWhy is it called "Stein"? (Yes, that happens to be my last name...)
- shivensinha4 7y agoKeep them guessing ;)
- pmlnr 7y ago> No-JavaScript solutions for the web with Stein Expedite > Handlebars <!--- Replace the data-stein-url value with your API URL ---> <div data-stein-url="http://api.steinhq.com/v1/storages/5cc158079ec99a2f484dcb40/Sheet1" > <div> <h1>{{title}}</h1> <h6>By {{author}}</h6> <p> {{content}} </p> <p>Read on <a href="{{link}}">Medium</a></p> </div> </div> Is there now some built-in HTML templating functionality I wasn't aware? Since when is this no-JS?! NO JS means NO JAVASCRIPT and not no need to write JavaScript.
- shivensinha4 7y agoI mentioned No-JS because you don't need to write it yourself. But you do need to import a pre-built script in your HTML. No HTML templating wizardry!
- andreyazimov 7y agoNice! Using spreadsheets as a DB are trend now. Also Spreadsheets are pretty good CMS as well, so people can use it to create websites without code. I made an app called https://Sheet2Site.com https://Sheet2Site.com which takes your spreadsheet of items/objects and translates it into an app, with filters.
- badestrand 7y agoLooks neat! Questions: - Do updates show immediately (for both directions)? - What are the limits of read/write queries? - What are the limits of rows? - Can I use formulas in the sheet? - How is the type handling? Does everything get treated as text or are there date and number types? - Do formatting options for columns (e.g. for number of decimals) survive when I alter things with the API?
- onion2k 7y agoHow is the type handling? Everything is converted to JSON over the API, so it's all just text and numbers.
- eagsalazar2 7y agoAll the same questions, would love to hear answers to other questions here...
- shivensinha4 7y ago- Do updates show immediately (for both directions)? Yes, changes are apparent immediately. - What are the limits of read/write queries? The details are mentioned on https://steinhq.com/pricing https://steinhq.com/pricing. - What are the limits of rows? Details available on the pricing page as well. A thing not explicitly mentioned is that you can add any number of rows to a sheet. In append operations, the row limit is not checked. I'll let you know the other details soon. That's something many have been asking, and I'm deciding what the default behavior should be.
- mattfrommars 7y agoOff topic but anyone know where to start to build a UI which has the similar look and feel? I already came across websites which almost look like this and making me conclude there is a design pattern/layout/framework which allows it.
- sansnomme 7y agoThis looks like Material Design.
- xtiansimon 7y agoI’m looking for a invoicing solution in google sheets. Currently I have invoices using templates in sheets, but I also need statements.
- Kye 7y agoThis is both a terrible idea and very cool.
- anthony_barker 7y agoI have been doing this for a year or so using the python libraries. Created lookup calls etc. The only issue in large sheets is sometimes you get time outs. The setup of the sheet and the sharing has to be done using the api key
- HocusLocus 7y agoOr a FUSE filesystem that stores data entirely within base64 encoded binary chunks in hierarchies of Reddit shadowbanned submissions and comments. Cloud-based, personal, secure!
- mirimir 7y ago> You need to enable JavaScript to run this app. Why are people referring to html+script as apps?
- pault 7y agoHow do you define app? Is there a clear boundary that you can define between a true app and not an app?
- mirimir 7y agoWell, let's see. Begins with: <!doctype html> Has a 3K character script: <script>!function(c){function e(e) ... </script> I'd say that's a web page.
- pault 7y agoThat's a definition of webpage, but you don't explain why webpages aren't a subset of apps. I saw your comment pre-edit, which said that an app has to be downloaded to a user's device to run, but that also doesn't exclude webpages since an HTML document and its scripts also have to be downloaded to a device to run. Is it something that has to be pre-compiled? Is an html and javascript page embedded in a binary an app? I'm only trying to point out that the word "app" is too ambiguous. We can agree that a book isn't an app, but beyond that the definition is purely subjective.
- mirimir 7y agoApp is short for application. Web pages with scripting existed for years before anyone called anything an app. Maybe it's just semantics. But it comes off, to me, as pretentious.
- shivensinha4 7y agoSorry for coming off as pretentious, but that's just the default message that comes with create-react-app. And I conveniently disregarded the idea of making a change!
- w_s_l 7y agoisn't there like a google sheets user cap that severely limits this for production?
- fulldecent2 7y agoAt our company, we use an ETL script to suck all our Google sheets into MySQL then we run queries for reporting. It's pretty nice, we'll probably open source it. The worst part is that as a database, Sheets is not one-tenth as good as MS Access was. You can't enforce constraints or even disable certain people from editing the format of a cell. There's lots of things you can try but you are just one inadvertent copy-paste away from losing formatting/validation rules you had set.