Quick Overview
Prerequisites, architecture overview, and who ShipAddons is for
ShipAddons is a production-ready boilerplate for building premium Google Workspace Add-ons. It handles authentication, database, and payments so you can focus on your add-on's core functionality.
Who This Is For
ShipAddons is designed for:
- Developers building premium Google Workspace add-ons
- Teams who want auth, billing, and backend solved from day one
- Indie makers who need to ship fast without compromising on security
Who This Is NOT For
This boilerplate assumes familiarity with modern web development:
- Beginners new to JavaScript or React should start with simpler projects
- Simple one-off scripts don't need this level of infrastructure
Architecture Overview
ShipAddons consists of three main components:
┌─────────────────────────────────────────────────────────────────┐
│ Google Workspace │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │
│ │ Sheets │ │ Docs │ │ Slides │ │ Forms │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └────┬────┘ │
│ └────────────────┴────────────────┴──────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ Apps Script │ │
│ │ (React UI) │ │
│ └─────────┬─────────┘ │
└──────────────────────────────┼──────────────────────────────────┘
│ HTTPS
┌──────────▼──────────┐
│ Next.js API │
│ (Backend) │
└──────────┬──────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌────────▼────────┐ ┌─────▼─────┐ ┌───────▼───────┐
│ Supabase │ │ Stripe │ │ Google │
│ (Database) │ │(Payments) │ │ (JWKS) │
└─────────────────┘ └───────────┘ └───────────────┘Addon (Google Apps Script inside addon folder)
The add-on runs inside Google Workspace apps (Sheets, Docs, Slides, Forms). It consists of:
- Server code - (
src/serverfolder) Apps Script functions that interact with Google APIs and provide the identity token - Client code - (
src/clientfolder) React application rendered in a sidebar, dialog or any google supported component.
The add-on uses ScriptApp.getIdentityToken() to get a Google-signed JWT that proves the user's identity.
Backend API (inside web folder)
A Next.js application that serves two purposes:
Public landing page - [Optional] marketing site for your add-on.
API endpoints - Secure backend for the add-on:
- Verifies Google Identity Tokens using Google's public JWKS
- Creates and manages users in Supabase
- Generates Supabase-compatible JWTs for authenticated API calls
- Handles Stripe checkout sessions and webhooks
This API can be easily migrated to FastAPI, express or any other stack.
Note: More backends will be supported in upcoming releases.
Database (Supabase)
PostgreSQL database with Row Level Security (RLS) that stores:
- User accounts linked to Google identity
- Subscription status synced from Stripe
- Credits and usage tracking
- Audit logs for debugging and analytics
Prerequisites
Before you begin, ensure you have:
- Node.js 18+ - Required for the add-on build tools
- Google Cloud Project - For OAuth and Apps Script
- Supabase account - Free tier is sufficient for development
- Stripe account - Test mode for development
- clasp CLI - Google's command-line tool for Apps Script
- Google Apps Script API enabled - Enable at Google user settings
Next Steps
Ready to deploy your first add-on?