[Google Apps Script](https://developers.google.com/apps-script) lets you extend [[Google Workspace]] products and deploy your own web apps. See my [[hubs/Google Apps Script|Google Apps Script]] hub for guides and example projects.
A Google Apps Script project is said to be either [[container-bound]] or [[standalone]]. Container-bound projects are bound to specific Google Workspace products like Sheets or Forms. Standalone projects are either deployed as a [[web app]] or run by a [[trigger]] you define.
Use [[clasp]] to develop Google Apps Script projects locally (rather than in their cloud-based IDE).
Find your [script projects](https://developers.google.com/apps-script/guides/projects) in the [Apps Script dashboard ](https://developers.google.com/apps-script/guides/dashboard).
> [!Warning]
> A word of caution however, [[concurrent users]] can cause unexpected behavior especially if using a Google Sheet as a backend. It's probably not a great idea to build tools with Google Apps Script when you should be using a database.
# learn Google Apps Script
To learn Google Apps Script, go to the [Beginner's Guide](https://www.benlcollins.com/apps-script/google-apps-script-beginner-guide/), the [New Apps Script Editor](https://www.benlcollins.com/apps-script/google-apps-script-ide/) guide, the [Fundamentals of Apps Script with Google Sheets](https://developers.google.com/codelabs/apps-script-fundamentals-1) codelab, the [Extending Google Sheets](https://developers.google.com/apps-script/guides/sheets) page, [javascript.info](https://javascript.info/), [Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/JavaScript) and [Clean Code JavaScript](https://github.com/ryanmcdermott/clean-code-javascript).
For JavaScript, see the [Galvanize HackReactor Javascript prep course](https://www.galvanize.com/hack-reactor/intermediate/bootcamp-prep-program/) (free!) and the [freeCodeCamp Javascript algorithms and data structures certification](https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/).