

Use Google Spreadsheets as a CMS - colevscode
http://data.brace.io

======
uptown
I built a site for a restaurant and use a Google Spreadsheet as the back-end
for menu data. Whenever they have a change to make, they modify the
spreadsheet, and the updates are instantly live on the site.

They like it because they're very non-technical people, but totally get
spreadsheets. I like it because there's version-control on any changes to the
spreadsheet, so tracking updates is easy. Everything is cached in-case
Google'd data were to ever be inaccessible, but it's a system that was easy to
implement, and has worked well for a couple years without any perceivable
negatives.

~~~
cpeterso
I am using Google Spreadsheet as a simple back-end just using client-side JS
(on a website to track testing of Firefox add-ons). I've been meaning to write
a blog post about this because the existing blog posts I read each missed some
details about parsing the spreadsheet data or accessing different spreadsheet
tabs.

1\. My data is on this spreadsheet:
[https://docs.google.com/a/mozilla.com/spreadsheets/d/1CXdwQq...](https://docs.google.com/a/mozilla.com/spreadsheets/d/1CXdwQqNm5nqBDDfZcEoG90SLHAtb-
mfMH4eAjDrFAMY/edit#gid=1816064743)

2\. I load the spreadsheet's tab "1816064743" as XML:
[https://github.com/cpeterso/arewee10syet/blob/master/index.h...](https://github.com/cpeterso/arewee10syet/blob/master/index.html#L18)

3\. Then parse the spreadsheet rows and columns here:
[https://github.com/cpeterso/arewee10syet/blob/master/js/gdat...](https://github.com/cpeterso/arewee10syet/blob/master/js/gdata.js)

4\. And display the pretty results on my website:
[http://arewee10syet.com/](http://arewee10syet.com/)

------
tlack
I've done something a bit similar on Lump.co, but I'm using Workflowy as a CMS
there instead of Google Docs.

I basically shove whatever random lists of things I need to manage into a
shared Workflowy list and then point some server-side PHP at it. It has some
crude memcache support and conventions for formatting the content and stuff.

It's handy because it makes it really easy to manage those "extra things" that
most people don't have time to model in a CMS: sidebar links, footer text,
meta descriptions, etc. If something requires a more functional UI or deeper
forms of manipulation, I'll build whatever custom admin UI I need.

Plus, I'm already in Workflowy 24x7 anyway, so it makes updating my site a
breeze.

At least until Workflowy changes their internal API endpoints, which will
break everything. :)

If anyone wants to know more I'd love to talk about it or share the code.

------
bitskits
A screencast, or even a screenshot could go a long way to explaining what I'd
get before diving in.

.02

------
NicoJuicy
I actually use Google Spreadsheets for signing people up to a newsletter. This
way, if they want me to send emails through my mailing webapplication (alpha
use, so i'm using it only for myselve right now). I only need to download the
spreadsheet as *.csv and i can upload it right in my webapp. The spreadsheet
doesn't need to be a specific structure fyi and the app supports multiple
languages {{isEnglish}}my English message for {{FirstName}}
{{/isEnglish}}{{isDutch}}mijn Nederlandstalig bericht voor {{FirstName}} (=my
dutch message){{/isDutch}} in both subject, message (text) and message
(html).. So it's quite flexible, i'm just not satisfied with my current
layout...

I also tried to use it as a CMS. Using an 3rd party app in Google Drive for
editing HTML files and then including it in my website, but i had problems
with connecting the webapp with Google Drive OAUTH (spreadsheets was a no-
brainer fyi). The problems were with a combo of Google Drive, OAuth and the
.Net library that Google released (API V2. i suppose) :-(

I now use a file based database in Asp.Net MVC for my CMS. I'm updating it
with every new website i have to create (if the client wants a CMS, off
course).

I'm kinda curious what their backup method is when Google Drive goes down? (i
thought about caching and a button for the client for cleaning the websites
cache, so they could see their changes. )

------
eob
I've been tinkering with a variant of the same thing at Cloudstitch.io and
will be presenting a paper about spreadsheet-backed web apps in UIST 2014 [1]
(an HCI research conference).

Happy to give anyone an account if you'd like to beta test.

Also, Brace.io folks -- great stuff. we should chat :)

[1] [http://www.acm.org/uist/uist2014/](http://www.acm.org/uist/uist2014/)

------
imurray
I briefly wondered how to get push notifications from a Google spreadsheet, to
update a website. My guess is they do it by getting email notifications:
[https://support.google.com/docs/answer/91588?hl=en](https://support.google.com/docs/answer/91588?hl=en)

~~~
Lexarius
Or maybe they just use push notifications?

[https://developers.google.com/drive/web/push](https://developers.google.com/drive/web/push)

------
SushiMon
This is pretty cool. You can do something fairly similar with www.silk.co
except it acts more like an online database and less like a static site.
Basically, CSV to Website conversion where each page acts like a row on a DB.
(Full disclosure - I work for Silk).

------
chrisallick
[http://mynameisrage.com/](http://mynameisrage.com/) runs off of a
SpreadsheetCMS I wrote ages ago. It's awesome and free :) I love that we get
the off the shelf interface of Google Drive.

------
rwhitman
I wish this landing page wasn't so sparse. Lots of questions unanswered.

~~~
colevscode
What questions?

~~~
Demiurge
I've been trying to figure out how to sort based on row value...

~~~
colevscode
No sorting or pagination yet. Thanks for the feature request!

------
cheshire137
Cool idea, but it's scary to grant full access to my Google Drive to this
random app, so I didn't try it.

------
collyw
Great encouraging people to use the wrong tool for the job on a tech site.

Welcoming the oncoming downvotes.

------
porter
cool idea but I can't get it to work. I don't get it.

------
roguas
its somewhat cool thing ;]

------
ecoqba
interesting.

------
jamra
I don't see myself using something like this under any circumstances. I would
just make my own database and call it myself.

It's not really a static site once you have dynamic content on it.

~~~
apalmer
I am mostly of the same opinion as you are, but really what they are offering
is an easy way to expose your data source as a service, and to provide a
simple already established user interface over that data source.

So it does have its place but probably has a limited sweet spot. Is your end
user already familiar with spreadsheets, possibly might want to view/edit the
data in bulk, not going to pay you to build ur own editor over the data, not
really that concerned about performance on a large scale? Then this might be a
good solution for them.... Its basically MS Access in the cloud...

~~~
jamra
I agree with you in that it's not a bad idea for your use case. I would likely
still make an admin portal to insert data. If we are dealing with static pages
that have a dynamic spreadsheet, I would look up a Wordpress or Drupal
solution first.

After reading your comment, I'm thinking that it may be easier in some
situations like a teacher posting curriculum. It's also much easier than
setting up a Wordpress deployment.

