Shipping useful automation with Google Apps Script
A simple Secret Santa tool built with Google Sheets and Apps Script, and a good reminder that fast, useful software does not always need a full product stack.
One of the easiest ways to overbuild is to reach for a full application stack before asking what the job actually needs.
This was a small example of the opposite.
The problem was simple: take a list of participants, randomize the assignments, and optionally email each person their match. That can become a tiny product. It can also just become a script.
Google Apps Script was enough.
Why this mattered to me
The real lesson was not Secret Santa logic. It was product instinct.
For a lightweight workflow that already lives inside Google Sheets, Apps Script gives you:
- direct access to spreadsheet data
- scripting with JavaScript
- the ability to write results back into the sheet
- basic email automation
That means you can ship utility quickly without introducing unnecessary infrastructure.
The flow
- Read the active spreadsheet.
- Shuffle the participant list.
- Write the results to a new sheet.
- Send email notifications if needed.
function readCurrentSheet() {
const currentActiveSheet = SpreadsheetApp.getActiveSheet();
return currentActiveSheet.getDataRange().getValues();
}
function shuffle(array) {
let currentIndex = array.length;
while (currentIndex !== 0) {
const randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
const temp = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temp;
}
return array;
}
The broader lesson
There is a professional advantage in being able to recognize when a problem deserves:
- a platform
- a proper app
- or just a sharp piece of automation
This kind of work sits in the Products & Ventures bucket for me because it reflects how I think about shipping:
- solve the actual problem
- choose the smallest system that works
- keep the path from idea to usable output short
That instinct matters in bigger product work too.