Between the Wires: How Expo is Democratizing Mobile App Development

Charlie Cheever headshot

Charlie Cheever has spent his career democratizing software development and empowering creators. As an early engineer at Facebook, he helped establish the company‘s hugely influential developer platform. Later, he co-founded Quora and grew it into a household name in Q&A. Now, he‘s taking on perhaps his most ambitious challenge yet with Expo: making native mobile app development radically more accessible using JavaScript.

I interviewed Charlie to learn more about his mission and perspective as a founder building tools for developers. What emerged was a clear vision for a future where coding is far more democratic, where ideas can be prototyped in minutes, and where native app development is just as accessible as building for the web.

From BASIC to Facebook

Charlie‘s path as a toolmaker started early, writing BASIC programs from library books in elementary school. He studied CS at Harvard, where he was a TA for the same class Facebook‘s founders took. After college, he joined Amazon as an engineer before serendipitously connecting with Facebook in 2006. At the time, the company only had around a dozen developers.

"It felt like the moment was right for me to take a chance and join this small startup," Charlie told me. "I ended up working on the Facebook developer platform, which became a successful foundation for social games and apps."

Facebook platform launch event

The Facebook Platform launch event in 2007, which Charlie helped lead development for. Image source: Facebook.

But after a few years, the entrepreneurial itch grew too strong to ignore. In 2009, Charlie left to co-found Quora, with the mission of sharing and growing the world‘s knowledge. The site took off and became a premier destination for high-quality Q&A on a wide range of topics.

While building Quora, Charlie witnessed first-hand how mobile was reshaping the software landscape. "Tools like webviews allowed some code sharing but didn‘t provide a fully native experience. You couldn‘t easily do the more advanced animations and interactions that native apps could. It felt fundamentally backwards compared to web development."

A New Way to Build Native Apps

This frustration planted the seeds for Charlie‘s next act: Expo, a free and open source platform that allows web developers to build production-ready native apps using JavaScript and React Native.

Expo logo

Since its launch in 2015, Expo has helped lower the barriers to entry for mobile development substantially. Web developers can now write truly native apps for iOS and Android with one codebase. Compare this to the traditional native approach, which requires knowledge of platform-specific languages like Swift or Java, and using completely separate development environments.

Under the hood, Expo leverages React Native, the open source framework created at Facebook that powers top apps like Instagram, Pinterest, and Uber Eats. React Native adoption has skyrocketed since 2015, used by over 42% of developers in a recent Stack Overflow survey.

React Native downloads chart

Cumulative React Native npm downloads since 2015. Image source: npm trends.

Expo builds on top of React Native with an integrated set of tools, libraries, and services for building and deploying apps faster:

  • Expo SDK: A cross-platform library that provides access to device and system functionality like camera, push notifications, haptics, and more. Enables you to write less platform-specific code.

  • Expo CLI: A command line interface for initializing, developing, and building projects. Handles configuration and the native build process automatically.

  • Expo Dev Client: An app that allows live previewing and sharing development builds by scanning a QR code or entering a URL. No need for TestFlight or sideloading.

  • Expo Application Services (EAS): Cloud services for building native binaries and submitting to app stores, plus over-the-air updates to live apps without resubmission.

  • Expo Snack: An online code editor that allows developing and previewing Expo and React Native apps right from a web browser. Useful for quick prototyping and sharing.

Expo project lifecycle diagram

Overview of the Expo project lifecycle from development to deployment. Image source: Expo docs.

In essence, Expo brings the iterative development model of the web to the mobile world. Instead of long release cycles and cumbersome native toolchains, you can update your app on the fly and build in the open. The Expo client even allows seamlessly switching between a local development build running on your machine and the published version with a single command.

"Our mission is to shorten the distance between your idea and a working product in your user‘s hands," explains Charlie. "Native mobile development used to take many months even with great teams. Expo can shrink that to a matter of days while still providing a great experience."

The Power of Open Platforms

Crucially, the entire Expo platform is free and fully open source, in stark contrast to many mobile development solutions. This is a key philosophical difference that permeates the project.

For one, Expo tools are designed to be extended and customized. If your app has needs beyond what Expo provides out of the box, you can "eject" the native project files and continue in Xcode or Android Studio. This avoids vendor lock-in while still providing a smooth initial path.

Expo‘s core libraries and services are all developed in the open on GitHub. Engineers from major tech companies like Coinbase, Stripe, and Shopify actively contribute alongside individual contributors from around the world. The transparent development process allows rapid iteration, customization, and collaboration with the wider community.

"Developer tools often fall into a tragedy of the commons," observes Charlie. "There are many talented developers motivated to improve their own productivity and scratch their own itches by making better tools. But capturing the value is difficult compared to building end-user applications."

Open source library dependencies

Open source libraries that the Expo Go app depends on. Even an individual app build on open source shoulders. Image credit: Expo.

By making Expo open source and free for developers, the project has been able to attract top engineering talent and accelerate development. Major parts of the system, including the Expo Go client itself, have been community-driven from the start. There‘s a virtuous cycle where users often become contributors who give back and pay it forward.

Expo also reflects a shift underway in how developers approach their craft. Rather than specialize in narrow areas like frontend or backend, there is a growing emphasis on full-stack skills and leveraging open source tooling to build complete products independently. With Expo, a single developer can create an entire cross-platform app without needing dedicated experts for each part.

This has major ramifications for the art of the possible in software. Armed with more powerful abstractions and end-to-end frameworks, small teams can ship ambitious apps at warp speed compared to the past. An underserved long-tail of app developers can turn their side projects into thriving micro-SaaS businesses. Expo is an accelerant for what ambitious developers can accomplish.

Looking Ahead

As Expo grows and the mobile development landscape evolves, there will be no shortage of challenges ahead. Competing with tech giants, navigating the ever-changing app store policies, and building a sustainable business model for an open source project at scale is no simple feat.

But Charlie and the Expo team have a rare combination of technical chops, ecosystem empathy, and mission-driven ethos to democratize software development. They‘ve shown an ability to execute against their product vision while bringing the community along. And they have the crucial ingredient of attracting exceptional and intrinsically motivated contributors.

"If we can help developers monetize and build sustainable businesses on top of our platform, then there will be plenty of ways for us to succeed as well," says Charlie optimistically. "But the most important thing is expanding who can be a creator and accelerating the flow of ideas to impact."

The parallels to past platform shifts are eye-opening. In the early 2000s, open source content management systems like WordPress and Drupal helped democratize web publishing and usher in the blog revolution. A few years later, cloud services like AWS and Heroku radically simplified the infrastructure required to launch an online business, enabling a cambrian explosion of web startups.

Expo feels like it could be a similar inflection point for the mobile era, an ambitious bet to reimagine the building blocks for a world where software creation is infinitely more accessible. Native app development has long been characterized by high barriers to entry, siloed knowledge, and heavyweight tooling. Expo inverts these assumptions to be more open, web-like, and community-driven.

Zooming out, Expo represents a promising vision for what the future of software development could look like if we prioritize improving the experience for creators. In a world of abundant open source libraries, elegant frameworks, and user-friendly tools, we can get ever closer to a reality where translating an idea into working software is frictionless. Expo is building an essential part of the foundation.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *