JSFoo chevron_right 2013 Day 2

Distributed, offline-enabled point-of-sale system using Google Apps Script

In March 2013, my wife and I opened a cupcake store (www.bitemecompany.com) and I went looking for a point-of-sale (POS) solution that could work offline, but synced data with the cloud as often as possible. I also wanted something that was easy to use for our sales people, and easy to customize and deploy for me. Disappointed by the available options, I decided to write my own - we now have an elegant, usable system that continues working even if completely offline, but also provides us with real-time stock & revenue reports via Google Spreadsheets when online.

My talk will cover 3 broad areas:

  1. The Design & Usability of POS systems in general and how we created a minimal, elegant UI that requires little to no training.

  2. The unorthodox architecture of our distributed (multi-outlet-ready), offline-enabled system that syncs with Google Spreadsheets. We get real-time insight into exactly how many cupcakes we've sold at individual store-levels. We use web-services built with Google Script (Javascript) and Google Docs' own permission model to manage our data in the cloud.

  3. Operational deployment & future possibilities. Our deployment process is very simple - the main POS is a self-contained, local HTML file that gets synced through Google Drive. Future possibilities include a built-in loyalty program and lightweight CRM/social media integration.

I will also try to clean up and make the storage/syncing part of the code available at the conference.

More videos


Our experience building a complex web app entirely in AngularJS


Memory profile your JavaScript applications for high performance