DoubleDutch Developer Platform

See this FAQ for non-engineers.

The DoubleDutch development platform supports developing standalone extensions that can be hosted within the DoubleDutch mobile app. Extensions are written in Javascript using the React Native framework.

Developer Videos

1. Getting started 2. Using the rn-client library


Personal Leads Question & Answer Ice Breaker Espionage
Personal Leads Question & Answer Ice Breaker Espionage
Bay Area satellite view
Where in the World?

Developer Environment

The developer environment is currently limited to run on a Mac, though you can perform React Native development on other platforms that can easily be moved into a DoubleDutch extension at a later point.

You do not need to have a DoubleDutch developer account in order to start developing a new extension. DoubleDutch extensions can be written and tested locally in the iOS or Android simulator without any prior contact with DoubleDutch Engineering.


Getting Started

  1. Install the doubledutch command line tools
npm i -g @doubledutch/cli
  1. Create an empty folder for your project and initialize it.
cd ~/code/project
doubledutch init

This will populate that folder with a functioning React Native project setup to run as an extension within the DoubleDutch mobile app. By default the name of the extension will match the current folder name. In the example above, you can find the Javascript files for your project in ~/code/project/mobile/src/. The file home-view.js is the root of your extension and has been initialized with a simple “To do” style sample extension. This sample extension provides examples of using useful DoubleDutch libraries such as @doubledutch/rn-client (used by all DoubleDutch extensions built with React Native) and @doubledutch/firebase-connector (optional integration with Google Cloud Platform’s Firebase suite for easy backend development).

  1. Run the sample code in the simulator
cd ~/code/project/mobile
npm run ios

The Javascript packager will take a couple minutes to initialize the first time. After that, ⌘ R in the simulator will quickly hot reload your changes.

  1. Make edits to the code in your favorite editor. Visual Studio Code Atom Sublime Text

  2. Hit ⌘ R in the simulator to refresh. ⌘ D for debugging with Chrome developer tools.

Interacting with the DoubleDutch mobile app

The sample extension that is created for you when you run doubledutch init uses the @doubledutch/rn-client library, which serves as a bridge between your extension and the mobile app it is hosted within.

import client, { Avatar, TitleBar } from '@doubledutch/rn-client'

This bridge allows you to access key information about the current event in the mobile app as well as the attendee that is logged in:


In the simulator, mock data is provided for local development.

Need a backend for your extension?

@doubledutch/firebase-connector provides optional integration with Google Cloud Platform’s Firebase suite for easy backend development. The default configuration provides access to realtime database references in an environment managed by DoubleDutch. Each event’s data is sandboxed, and @doubledutch/firebase-connector provides database references that have various combinations of access control for attendees and event managers. See @doubledutch/firebase-connector for more details.

Publishing your DoubleDutch extension

Once you have finished development, you will need to be provisioned for a DoubleDutch developer account before you can publish and install the extension in an event app. To request your developer credentials, please submit a request here.

Next, use your developer credentials to authenticate via the doubledutch command line tools:

doubledutch login

You may now publish your extension to DoubleDutch

doubledutch publish

To update an extension you have already published, first update the version number in the package.json file at the root folder of your project. Then, updating an extension is as simple as publishing again.

Installing your extension to an event in a DoubleDutch event app

An Event Manager in the DoubleDutch CMS can install published extensions via the “Discover More” page in the CMS. Many extensions are public and appear for all CMS users. Any non-public extension can be installed with the exact published name of the extension (case-sensitive):

  1. Visit the “Discover More” page in the DoubleDutch CMS
  2. Click the “Custom DDDP extension” tile at the bottom of the page and click the “Add Custom” button.
  3. Enter the exact published extension name.
  4. The extension will be installed to the current event in the DoubleDutch CMS and saved as a tile in your personal “Discover More” page for later access.


See documentation for various DoubleDutch platform components: