← Blog Engineering · GAPPS

Why we build Workspace add-ons in Python

Apps Script is the default way to extend Google Workspace, and for a lot of jobs it is the right answer. It is also the only answer most people ever consider, which is why it is worth writing down what changes when you step outside it.

The case for Apps Script

No servers, no deployment pipeline, authentication handled for you, and an editor a single click from the document you are automating. For a script that tidies one spreadsheet every Monday, anything else is overkill.

Where it starts to hurt

The trouble arrives when the script stops being a script. You want the same logic behind an add-on, a scheduled job and an API. You want the libraries you already trust. You want tests that run in your normal test runner, dependencies you pin, and a diff you can review. At that point the constraints that made Apps Script pleasant start working against you.

What GAPPS does

GAPPS is the library we extracted from doing this repeatedly. It lets you build add-ons for Gmail, Google Chat, Calendar, Sheets, Drive, Docs and the rest of Workspace in Python: describe the cards and actions the add-on presents, handle the callbacks Google sends, and keep the rest of your application in ordinary Python where the rest of your tooling already lives.

The add-on becomes a presentation layer over a normal Python service, rather than the place all the logic has to live.

What it costs

You now own a deployment. Something has to run, be reachable, and stay patched; you handle your own OAuth configuration and your own logs. That is a real trade, and if your automation is small you should not make it. If you are building several apps on the same foundations, you make it once and stop paying it.

How to decide

Ask whether the thing you are building has a life outside the document. If it does not, use Apps Script and enjoy the afternoon you save. If it does — if it needs a database, a queue, a model, a second interface — writing it in Python and letting GAPPS handle the Workspace surface will cost you a day now and save you the rewrite later.

GAPPS is open source

Read the code, file an issue, or take it for a spin.

View on GitHub