Simperium’s use of Google App Engine for Simplenote
|
Mike |
|
Fred |
By Mike Johnston
and Fred Cheng, co-founders, SimperiumThis post is part of Who's at
Google I/O, a series of guest blog posts written by developers who are appearing in
the Developer
Sandbox at Google
I/O.We originally created
Simplenote both as a learning exercise and to
address what we thought were shortcomings in the original Notes app for the iPhone (Marker
Felt font, no ability to search, etc.) The very first version of Simplenote didn't even have
syncing!
We've certainly come a long way since then. The Simplenote
backend now synchronizes data across devices, the web, and third-party apps while also
handling in-app purchases, sharing, and basic metrics. About a year ago, we were accepted to
the
Y Combinator startup accelerator with
something like 20,000 users. Today, with hundreds of thousands of users, we're currently
serving 15 million requests daily and providing access to over 500 gigabytes (!) worth of text
notes.
Google App Engine is at the heart of it.
We made a decision early on to use App Engine so we wouldn't have to worry about scaling, or
deploying more servers, or systems administration of any kind. Being able to instantly deploy
new versions of code has allowed us to iterate quickly based on feedback we get from our
users, and easily test new features in our web app, like the newly added Markdown
support.
We consider our syncing capabilities to be core features of
Simplenote. They are, in and of themselves, largely responsible for attracting and retaining
many of our users. Our goal is to give other developers access to great syncing, too. The next
version of our backend is named after our company,
Simperium. As a general-purpose, realtime syncing
platform intended for third-party use, Simperium's architecture is much more expansive than
the Simplenote backend. Yet App Engine still plays a key role. It powers the Simplenote API
that is used by dozens of great third-party apps like
Notational Velocity. And it continues to power
auxiliary systems, like processing payments with
Stripe, while bridging effectively with externally
hosted systems, like our solution for storing notes as files in the wonderful
Dropbox.
We suspected we
might outgrow App Engine, but we haven't. Instead, our use of it has evolved along with our
needs. Code we wrote for App Engine a year ago continues to hum along today, providing
important functionality even as new systems spring up around it.
In
fact, we still come up with entirely new ways to use App Engine as well. Just last week we
launched an internal system that uses APIs from
Twitter,
Amazon
Web Services,
Assistly, and
HipChat to pump important business data into our
private chat rooms. This was a breeze to write and deploy using App Engine. Such is the mark
of a versatile and trustworthy tool: it's the first thing you reach for in your tool
belt.
Come see Simperium in the Developer Sandbox at
Google I/O on May
10-11.Mike Johnston was a senior designer and
programmer at Irrational Games where he worked on numerous games and prototypes for PC and
Xbox 360. Before that he built security software at Entrust.Fred Cheng hails from Cantaloupe Systems, a venture-backed startup, where he
built their infrastructure for wirelessly tracking tens of thousands of vending
machines.Posted by Scott Knaster,
Editor