Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you haven't looked into it yet - Google Apps Script [0] is an incredibly powerful system when combined with Google Sheets. You can integrate lots of business processes and external systems (rest,soap,databases etc) together and integrate with classic spreadsheet functionality, we use it a lot in our business!

[0] https://developers.google.com/apps-script



Yeah, I had a similar idea to Rows, but decided it'd be better to add what's missing to Sheets vs. build an entirely separate app. Wax (https://www.wax.run/) helps you build internal tools on top of Google Sheets. It's built using Apps Script and handles a ton of the boilerplate you'd want for any internal tool. Scheduling and integrations are hard to do in Apps Script, so we handle that and considering a lot of internal tools leverage SQL and Python we make using those them from Sheets simple.


Which scheduling options did you find difficult on Sheets?

AFAIK it’s a simple dropdown and you choose the frequency to run the script.


App Scripts is great and together with Sheets it almost feel like a tiny functions + db serverless engine.

Having used it significantly, I found two main qualms that prevented me from investing more in the platform:

1. It is just JS syntax but the runtime and the “standard library” are completely different than node.js. For example there’s a weird UrlFetch class instead of xhr/fetch. It’s a never ending learning curve so much it feels like another language. Any async support is also non existent, that means no setTimeout, no Promise, no async/await (unless they added it recently with the move to ES6)

2. Due to 1, the library ecosystem is very limited. A library in GAS is just another GAS script that you import by referencing its ID (the long one in the URL).

Scripts can be public so you can import other people’s code. However no npm, no lodash and friends.

You can dev locally using clasp, so you can use git/npm/.., and package your code with webpack or something so it runs on GAS. However this only works for npm libs that do not depend on the usual JS environment and APIs. Lodash will work, anything network related won’t for example.

All in all Google App Script is more of a hassle than it’s worth so I only use it in specific cases, but I wish for a similarly accessible sheet+code environment that can also serve HTML, just with a better JS runtime.

Oh and don’t get me started on the development/deployment lifecycle.


I've been working with this for a while and I find it frustrating slow and unreliable. Especially working with an HTTP listener. Does anyone have better experience/advice?


Yes, don’t use GAS if you have the possibility to avoid it.

Otherwise, do the heavy lifting somewhere else and use GAS as a very basic wrapper for your sheet.

One pattern that worked well for us in the past is to use Firebase functions (or Google Cloud Run) and leave the scripts to act as a dumb API to interact with the sheet.


I hit processing time limits when I tried to use it with no easy way to get around them.


Is there a solution to version control/deterministically see/deploy active scripts? How do you manage all the scripts? I've used it to compile/summarize spreadsheets and serve as a simple endpoint (testing webhooks), but not much more.


You should look at clasp by Google https://github.com/google/clasp

Have used it in past to do exactly what you asked for.


Woah seems like Google should promote this instead of the Apps Script API on their Apps Script docs. Deploy, CVS, and TS capability to boot. Thanks!


Yeah I made a UPS zip-weight lookup with GS/GAS before was pretty cool. Alternative is to use Google Drive apparently/more legit with user auth.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: