On announcing Foursquare’s Pilgrim SDK.

If you want the future to exist today, go build it.

Today we’re launching our Pilgrim SDK (read the announcement) which marks the first time we’ve bundled up our core “Pilgrim” technology (our Places database, stop detection, and snap-to-place awareness) in a way that developers can embed in their own apps. We’re limiting this to a select group of developers to start — slow and steady, experimentation and learning — but the long term plan is to make the SDK as accessible as our API, which is currently used by more than 100K developers and apps including Snapchat, Twitter, Apple, and Samsung.

There are many reasons why today is such a big day for me (and Foursquare), so in a few words I’ll try to explain:

This past January marked my 8th year anniversary of working on Foursquare and more than a dozen years total working to build location-based and contextual-aware services. Before Foursquare, we had spent years working on Dodgeball, trying to make “software that facilitates serendipity,” that could work on mobile phones in the days before app stores and GPS. Even before that, we were working on our graduate school thesis at ITP @ NYU (“An Exploration of the Intersection of Location-Based Services and Social Software on Mobile Devices”, co-written with Alex Rainert) out of which Dodgeball was born. In short, we’ve been thinking about the future of location-based and contextual-aware services for a long time. And for years, we’ve been working to invent the pieces of this future that didn’t yet exist.

In 2001, we invented the check-in because we wanted to make a Harry Potter-esque “Marauders Map” that would work on the flip phones we carried in our pockets. As this was before GPS was available on phones, the only way to get a location update from a user was to ask the user to text in their whereabouts (remember “@Ace Bar”?). Years later, with the first version of Foursquare (2009), we tied game-mechanics to check-ins and we made the idea of self-reporting your location go mainstream. Those millions (and then billions) of check-ins became the foundation of our crowdsourced map of the world, which we opened up in an API for developers in late 2009. Our master plan at Foursquare was never “make the world’s best check-in button”; our master plan was always “build technology that enables contextual-aware services to work without requiring people to press a check-in button.” So, in the years since, we’ve been working to invent this “check-in button that you never have to press” — a way for mobile phones to have a passive and background awareness of the places they go and a way for developers to turn that awareness into features within their own apps.

Mapping the pulse of NYC, Tokyo, Istanbul, & London as seen from mobile phones.

That journey led us from check-ins to stop detection and, around 2011, to a core technology we called “Pilgrim,” which we’ve talked about here and here and here and elsewhere. Up until now, only three apps have had access to this technology: Foursquare City Guide, Foursquare Swarm, and Foursquare Marsbot. And that’s the big piece that changes today with the launch of the Pilgrim SDK.

So, what does Pilgrim SDK do?

The Pilgrim SDK will give developers the ability to add contextual awareness to their apps. For example: Did this phone just walk into a bar, a butcher, or a coffee shop? Was this phone inside a gym, a clothing store, or a sandwich shop earlier today? Is this phone inside a Dunkin’ Donuts or a Target right now? The Pilgrim SDK is manifestation of our original “a check-in button you never have to press” vision. It’s an idea we believe will empower developers to create the next generation of contextually-aware services, whether those are software bots (that will learn about you based on the places you bring your phone); location-aware games (games that change based on where you play them; characters that power-up based on where you bring them); health and fitness apps that adapt based on where you ate lunch or how much time you spent at the gym, or the thousands of other big ideas we expect developers to dream up.

We designed Pilgrim to be like a super-powered GPS. Yes, latitude and longitude coordinates are a key piece to location-aware services, but many times what you really need is not a lat/long but rather the exact place name or category name that the phone has just entered or exited, as well as some sense of “has this phone ever been to this place, or a place like it, before?” In this sense, think of the Pilgrim SDK as geofencing, but with built-in awareness of nearly 100M places around the world and with critical battery optimization in place. When we were building Dodgeball at ITP @ NYU we imagined tools like this would exist someday. And something like the Pilgrim SDK was what we wanted and needed when we started building Foursquare. We wanted it to exist, it didn’t exist, and so we built it.

Today…

Getting to pushing the v1 of Pilgrim SDK out into the wild is a big deal for me, for Foursquare and for everyone who has played a part in helping to build it. We’ve been working on this internally at Foursquare since late 2011 (around the time of the iPhone 4S and iOS5). The release is a combination of something that was technically impossible in grad school (“someday, someone will build something like this”) and the realization that the company we started (Foursquare!) was going to be the company to actually build and launch it some 15 years later. It’s also a reminder to all the other startups and entrepreneurs out there that sometimes the good ideas and the big ideas take a long, long time to go from whiteboard to real world, and that you can’t let “that’s impossible” or “that’s going to take forever” get in the way of building the things you want to see in the world.