Project: Laundromat

Marcel Kornblum
Marcel Kornblum’s Posts
2 min readAug 27, 2020

--

A “no technical knowledge needed” tool that imports your Google Sheets into your GitHub repositories

At Signal Noise we work a lot with data, and — perhaps surprisingly — it’s extremely common for us to be working with spreadsheets. We use G Suite and so a lot of our projects’ data are in Google Sheets files.

Something that happens quite often is a non-technical person updates something in the sheet and needs to see their changes reflected in the codebase of the relevant project; this would need someone to stop whatever they were doing (or remember to do the task later), switch to the project in their workspace and run a script or a command.

Typically we would be either referencing the sheet directly in a project’s codebase using the Google Sheets API, or saving a CSV or XLS in the repository. I prefer this approach since the historical versions of the data file are saved alongside the relevant code — but it did mean a couple of extra steps for the developer needing to update the codebase; they’d typically need to find the Sheet and export the right format, saving it to the right place (and with the right name) in the codebase.

It’s not a huge amount of work but it has an outsized impact on the rest of the developer’s work — I really subscribe to Paul Graham’s view of Maker vs Manager time and a half hour of distraction can disrupt a several-hours-long flow session.

Over the Christmas holiday I built Laundromat (sadly not yet open sourced since the codebase is still a bit unstable); it processes your sheets into your project repository (geddit?).

It’s a tool that needs no technical knowledge to setup or use (there is a bit of code copy-pasting during the setup), as long as the user has permissions on both the Google Sheet and the GitHub repository concerned. Initially it walks the user through a wizard, presenting them with their repositories and then their sheets files, and giving them some options regarding the import (which worksheets to import, the filenames and locations to save them in, etc).

All the configuration is saved to a custom worksheet inside the relevant Sheet file (there’s no database), and the final step in the initialisation gives the user step by step instructions for adding a custom menu item to the sheet.

Once it’s all set up, any user with both Google and Github permissions can use the custom menu item to trigger the Laundromat process; it automatically exports the relevant worksheets into CSV files, adds them to the repository in the right place and opens a PR to merge the changes in; we have CI on every project so there would automatically be a link generated at this point allowing the user to preview their changes in the codebase.

All without a line of code or anything to break a coder’s flow :)

--

--

I like to make things I can eat or play with, mainly using meat and tech. Head of Creative Technology @bbhlondon.