
Show HN: Stein – Use Google Sheets as a No-Setup Database - shivensinha4
https://steinhq.com/
======
Zaheer
You 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.

~~~
felipap
Reminded me of the top comment on the "Show HN" of Dropbox, back in 2007: "you
can already build such a system yourself quite trivially by getting an FTP
account, mounting it locally with curlftpfs, and then using SVN or CVS on the
mounted filesystem." ;)

[https://news.ycombinator.com/item?id=9224](https://news.ycombinator.com/item?id=9224)

~~~
nothrabannosir
Instead of as a disparagement of the product, you could see this as a no-
judgement PSA for anyone interested in and capable of running such an
alternative.

Incidentally I am precisely looking for something like this so for me that’s
valuable :)

~~~
DoreenMichele
I didn't "hear" it as suggesting it was a disparagement of the product, more
like a "LOL, sure, that's so easy!" sarcasm. "You, too, can do this -- if you
are a former astronaut and billionaire. No big!"

A lot of advice that "You can _easily_ do it yourself" presumes a fairly high
level of skill and knowledgeable in sometimes multiple domains. That
presumption isn't crazy talk for the HN audience. Plenty of people will have
the requisite background knowledge to jump on a comment suggesting a DIY
alternative.

But that in no way means there isn't a market for the product. Plenty of
people may need or want X and not have the capacity to do it themselves, even
with some instruction.

~~~
saghm
I don't see anything in the comment claiming that it's "easy" to do yourself,
just "possible". I don't think they'd bother saying "Happy to answer any
questions" if they thought that it was trivial to do without help.

------
geeku
Nice 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.

~~~
sbarre
Unless your company uses GSuite, then this can be a great tool to quickly put
together small internal tools.

------
rhardih
[https://sheetsu.com](https://sheetsu.com)

[https://sheety.co](https://sheety.co) (No pricing)

------
mattfrommars
Off 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
This looks like Material Design.

------
badestrand
Looks 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?

~~~
shivensinha4
_\- 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.

------
kristiandupont
I 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
You 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
Looking 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 :)

------
fulldecent2
At 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.

------
jonny_eh
How does this compare to Airtable?

~~~
lucasverra
AT 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
I'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
They just raised $100M last November, I wouldn't consider them dead...
Probably busy hiring :)

[https://www.crunchbase.com/organization/airtable#section-
fun...](https://www.crunchbase.com/organization/airtable#section-funding-
rounds)

------
EugeneOZ
So many discontinued services and people still invest their time to Google
APIs.

------
anthony_barker
I 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

------
mnky9800n
This 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
I see you're enjoying Tom Clancy like I did back then in 2005. Good read bro.

~~~
mnky9800n
I 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.

------
williamstein
Why is it called "Stein"? (Yes, that happens to be my last name...)

~~~
shivensinha4
Keep them guessing ;)

------
HocusLocus
Or a FUSE filesystem that stores data entirely within base64 encoded binary
chunks in hierarchies of Reddit shadowbanned submissions and comments. Cloud-
based, personal, secure!

------
xtiansimon
I’m looking for a invoicing solution in google sheets. Currently I have
invoices using templates in sheets, but I also need statements.

------
Kye
This is both a terrible idea and very cool.

------
andreyazimov
Nice! 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.

------
w_s_l
isn't there like a google sheets user cap that severely limits this for
production?

------
leot
This is exactly the approach we're using for hackerpet (hackerpet.com)

------
aznpwnzor
ah like glideapp.io but more cross platform!

------
_Codemonkeyism
What is the performance of this?

~~~
EmilStenstrom
Data seems to be mirrored to a mongoDB instance on the server where it's
served. So my guess is that performance is great.

------
mirimir
> You need to enable JavaScript to run this app.

Why are people referring to html+script as apps?

~~~
pault
How do you define app? Is there a clear boundary that you can define between a
true app and not an app?

~~~
mirimir
Well, 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
That'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
App 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
Sorry 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!

~~~
mirimir
Hey, thanks :)

Now I know why I've been seeing that error so much.

------
pmlnr
> 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
I 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!

