A fireside conversation at Offline Camp California (Image Credit: Aaron Ross)

Building the Offline First community, one campfire at a time

The growth of the Offline First movement in 2016

Teri Chadbourne
Feb 1, 2017 · 9 min read

As developer advocates, it’s our job to advocate not just for our products, but for developers themselves, by engaging with tech communities and listening closely to understand their needs. To that end, developer advocates within IBM Watson Data Platform have been working hard over the past year to help foster momentum around the Offline First approach to app development. Our interest in this area stems from our work with IBM Cloudant, which is built on Apache CouchDB™ and has mobile sync capabilities that make it a great fit for Offline First apps.

In talking with the community throughout the year, we’ve uncovered some new perspectives on Offline First that we’re particularly excited to explore here at IBM. More importantly, we’ve met amazing people with whom we’re thrilled to collaborate as members of the growing Offline First community.

Early last year, my colleague Bradley Holt approached me with the idea of hosting a developer conference about Offline First. Within a few weeks, we’d changed course after meeting a couple of folks from outside IBM who had a different plan in mind: an Offline First camp. Steve Trevathan had recently created a series of unconferences for the UX community which took the form of small tech retreats held in secluded locations. Gregor Martynus, an engineer for the Offline First project Hoodie and a consultant for various CouchDB projects, had met Steve by chance and attended one of his UX Camps. As fate would have it, we met Steve and Gregor at just the right moment to shift our focus and support a community-driven unconference rather than planning the traditional conference we originally had in mind. Best. Decision. Ever.

Steve and Gregor at morning standup at Offline Camp California (Image credit: Aaron Ross)

The result of our collaboration is Offline Camp, and we’re tremendously proud to be part of it. Our team has sponsored and co-organized the first two camps: in the Catskills last June and in California last November. Each retreat takes place over the course of a long weekend in a remote location, gathering developers, UX professionals, and business leaders to discuss the opportunities and challenges of Offline First. The unconference format allows us to tailor discussions to the interests of the 20 to 30 campers who attend each camp, and the idyllic settings and communal living encourage a genuine sense of community built around a campfire.

The Offline Camp California 2016 experience (Video courtesy of Gregor Martynus)

Although campers formed phenomenal relationships in these retreats, we’ve been even more excited to see how they’re influencing the broader Offline First community. Campers have authored more than 50 posts on the Offline Camp Medium publication, from recaps of unconference sessions to background articles accompanying videos of their passion talks. They’ve published articles in magazines, been interviewed for podcasts, gathered case studies for the offlinefirst.org website, and supported each other’s work through conversations in the Offline First Slack team.

The response to camp, and to the subsequent community contributions from campers, has been humbling. Mikeal Rogers, Community Organizer at the Node.js Foundation, recently praised the camp organizers’ community-building work, calling out our dedication to continuing the conversation beyond the event.

Mikeal’s focus on the follow-up work from camp highlights one of the most important lessons we’ve learned in our interaction with the Offline First community: that time is as important as money when it comes to lending support.

Organizer burnout is a big issue in the developer community. Many events and groups are managed by generous volunteers who give up their nights and weekends to keep things afloat. Because we’ve prioritized community building as a key element of our developer advocacy efforts, we’ve been able to dedicate time during the workday to relieving some of the stress that our fellow community organizers would otherwise face. Whether by organizing events, editing Medium publications, authoring magazine articles, or building technical tutorials, our team is happy to be able to do the work we love in a way that helps this amazing community.

Our follow-up work from camp has also helped us reach a wider audience. For example, after spotting a great article about UX design patterns in our Medium publication, the popular Smashing Newsletter made Offline First the lead story in an August issue which went out to nearly 197,000 readers. As a direct result, we saw an influx of members for the Offline First Slack team.

An excerpt from the Smashing Newsletter, Issue 163 (August 9 2016)

The wider tech media is also starting to notice The Offline First movement. Much coverage of the Google I/O conference in May highlighted the benefits of Progressive Web Apps. This September, The New Stack published an article by camp alumnus Pedro Teixeira of YLD, Build More Reliable Web Apps with Offline First Principles. In November, our own Bradley Holt was featured in an interview for App Developer Magazine, titled What is Offline First application design anyway? Bradley’s InfoWorld article, The new mobile first: Why Offline First should be on every developer’s radar, hit the press in December. Another sign that the Offline First message is hitting its mark: IBM has fielded requests from major analyst firms to discuss offline technology.

The much-anticipated release of Apache CouchDB 2.0 this past September brought additional attention to the Offline First community. The press release from the Apache Software Foundation called out the importance of CouchDB to the movement. It highlighted the Couch Replication Protocol — implemented by projects ranging from Cloudant Mobile Sync to PouchDB to Couchbase Lite — which enables developers to build both web and native applications that “provide a superior user experience, even in the face adverse network connectivity.”

The ASF press release also called out the tremendous impact that this technology can have on healthcare in the developing world:

CouchDB was instrumental in providing offline-first applications in the 2014–2015 Ebola outbreak in West Africa, allowing first-responders to help more people more efficiently, including launching an Ebola vaccination trial in Sierra Leone. No other technology was suited to face the adversity of the lack of network infrastructure and a challenging human crisis spanning five countries. (Apache Software Foundation press release, Sept. 2016)

Offline Camp alumna Patricia Garcia’s NetMag article, Fighting Ebola with JavaScript, covers this particular effort in more technical detail:

The importance of Offline First technology to healthcare, disaster recovery, activism, academic research, and more has been one of the most popular topics discussed at Offline Camps to date. It has also been an effective entry point for less technical folks looking to understand the value of the methodology. Multiple campers and community members, including my teammate Maureen McElaney, have addressed these inspiring use cases in stories and videos shared in our Offline Camp Medium publication.

Our work with the community has led us to some awesome technical collaborations, including one with fellow Offline Camp sponsor Hoodie. Hoodie is an open source, generic backend client for Offline First applications that leverages PouchDB and Apache CouchDB to sync data between the client application and the server.

Hoodie recently announced a new version that is now compatible with both Apache CouchDB 2.0 and IBM Cloudant. This compatibility means you can now deploy your Hoodie application right from the command line with a single line of code, storing your data in IBM Cloudant. Hoodie’s open source community is incredibly welcoming to new developers, so we hope that making Cloudant more accessible to Hoodie users will help people get started with all the resources they need to create their first Offline First apps.

Envoy — From scribbles to code

More advanced developers may be familiar with the “one database per user” design pattern for working with CouchDB. It makes Offline First application development simple, but which can create issues when the number of users increases. In 2016, a group of IBMers, including my teammates Glynn Bird and Mark Watson, sat down to tackle these scalability problems. They emerged with a solution called Cloudant Envoy.

Envoy is a Node.js microservice that sits between mobile devices and a Cloudant or CouchDB 2.0 cluster in the cloud, acting as a replication target. Each mobile device still has one database per user, but Envoy magically stores the server-side data from all users in a single database. This design makes querying, backup, and data set management more, well, manageable. The project is still in its early days, and we’d love your feedback or contributions. For more info, I recommend starting with Glynn’s article on the Offline Camp Medium, where you’ll find links to relevant repos and tutorials.

We’ve long thought of Offline First as a natural fit for developers, but over the course of community discussions it’s clear that data scientists are just as much in need of an Offline First approach. The origin story of Cloudant, in fact, stems from a group of data scientists looking for the best way to share data sets from the Large Hadron Collider. Academic and scientific researchers have huge data sets to store and share, as well as strict security and privacy standards to adhere to.

The Cloudant co-founders, not far removed from their data science days.

A group at Offline Camp California dedicated a session to exploring various ways in which Offline First technology can be applied to help researchers and scientists. After this group discussion, my colleague Bradley Holt sat down with Max Ogden, founder of Dat Project, to discuss the challenges facing the scientific research community.

Dat is a decentralized tool for versioning and syncing changes to data across distributed sets — making it particularly useful for research data that needs to be published and archived. It’s also the protocol that underlies the experimental P2P Beaker Browser created by fellow camper Paul Frazee. Bradley and Max’s conversation was featured in a recent episode of the New Builders Podcast. We’re also looking forward to an upcoming article from Max summarizing the group discussion at camp. A subsequent New Builders episode shares my own chat with Paul Frazee on the distributed web, Beaker Browser, and the security concerns that he views as the central problem solved by Offline First.

As advocates for users of the Watson Data Platform, we’re dedicated to making data management easier for both developers and data scientists. So we’re particularly excited to see where these conversations can take us as we continue to improve and expand our offerings.

We’re tremendously pleased by the growth of the Offline First community over the course of 2016, and we can’t wait to see what takes shape in the year to come. We plan to continue our work with Cloudant Envoy, collaborate with Hoodie, and build a new Offline First chatbot that uses Cloudant and Watson. We’ll also continue to share our work through Medium posts (both here and in the Offline Camp Medium) and to collaborate with the New Builders Podcast and other media outlets to build awareness.

We love meeting people face-to-face, so we’re particularly excited to see increased interest in Offline First among conference organizers across the tech industry. Bradley Holt will be speaking on the topic at ConFoo, and we’re looking forward to two sessions taking place back-to-back at SXSW this March:

  • a talk by Google’s Alex Russell on Progressive Web Apps
  • a panel discussion on Offline First featuring Offline Camp alumni, hosted by our very own Maureen McElaney

We’ll also be welcoming members of the CouchDB project to IBM’s Cambridge office later this month for a planning summit. You can visit the Offline First community page for a full listing of upcoming events with speakers from across the community.

On a personal note, I’m most excited to continue my work as a co-organizer of Offline Camp. We’ve just announced our first European retreat, Offline Camp Berlin, which will take place April 28 to May 1 in Berlin, timed to coordinate with JSConf EU and What the Fest Berlin. We’re also in preliminary planning stages a fall camp back in the United States. You can follow Offline Camp on Twitter for updates on upcoming events.

If you’d like to learn more about Offline First or contribute to the community, hop over to our resources list for ideas on how to get started. We’d love to learn about your next Offline First application, collaborate with you on technical work, or meet you around the campfire at the next Offline Camp.

The attendees of Offline Camp California (Image credit: Aaron Ross)

Center for Open Source Data and AI Technologies

Things we made with data at IBM’s Center for Open Source…

Center for Open Source Data and AI Technologies

Things we made with data at IBM’s Center for Open Source Data and AI Technologies.

Teri Chadbourne

Written by

Web developer | Building the dweb community as lead maintainer of @ProtoSchool at @ProtocolLabs | @OfflineCamp co-organizer & #OfflineFirst advocate | she/her

Center for Open Source Data and AI Technologies

Things we made with data at IBM’s Center for Open Source Data and AI Technologies.