Making Jupiter open source
In 2020, we built and released Jupiter. It was an attempt to use the habit-forming, instant-reward techniques of advertising technology to make people save instead of spend. We deployed in March 2020, and were shut down by regulators in September 2020. Along the way we gained almost 1,000 savers just by word of mouth, and performed over 300 experiments on triggering saving behavior, as analyzed here and here.
Unfortunately, the combination of regulatory action, the pandemic, and the difficulties of fundraising for an emerging market savings-focused startup ended Jupiter’s journey. I’ve written about what I personally learned from the experience here.
For now, we’ve decided to open Jupiter’s source code. That’s an irreversible move, but we feel it’s the right one. Our purpose mattered. By opening the source code, including the engine we used to construct and deploy multiple incentive experiments every day, the app with its multiple casual games, and the data pipeline with its real-time multi-source orchestration, maybe we can help others advance quicker and further in helping ordinary people save more, or just live healthier financial lives.
Since Jupiter had multiple components, here are the specific repositories:
- “Pluto Alpha”: the core backend business logic, built in Node.js. A collection of serverless functions, Terraform infrastructure-as-code (for AWS), to manage accounts and transactions, and above all the combination of boosts (incentives and games), audiences (samples) and omni-channel messages used to conduct an experiment. https://github.com/luke-jordan/pluto-alpha
- “Jupiter App”: the React Native mobile app for Jupiter. Includes the various casual games that gave the emotional kick to the reward pay-offs. Also includes the real-time cent-by-cent balance animation (MoneyWheel), and many other design elements. https://github.com/luke-jordan/jupiter-app
- “Jupiter Web” and “Jupiter Data”: Respectively, the React based web console for creating and executing incentive offers and experiments, managing users, and so forth; and the data pipeline that consolidated Amplitude instrumentation and backend events into a single BigQuery table used for easily and rapidly running data models and exploration on all aspects of user behaviour. https://github.com/luke-jordan/jupiter-web, and https://github.com/luke-jordan/jupiter-data
Since these were built and iterated in the real-world fires of a very lean startup, documentation and cleanliness sometimes slip. My apologies if that gets in the way of any reuse of them. Test coverage on the backend core is 90%+, so use that as auxiliary documentation. If you do use the code and run into a snag or a bit of confusion, please let me know (you can find me via LinkedIn). In fact, if you do find value in any of these components, please do let me know regardless! We hope these prove of use to many.