The vision for project “Appmaker” is to enable anyone, anywhere, to make a real mobile app. A small team in Mozilla Labs started working on this three months ago.
There are two things that make Appmaker unique and potentially world-changing. First is that Appmaker enables anyone to make an app without any knowledge of coding. And second, it makes real apps—not sandbox toys or limited playthings.
There are plenty of tools that make it easier to make a mobile app. But few of them completely eliminate the need for any code skills. And they’re usually pretty limiting.
So how are we solving this problem?
The principle of generativity
To illustrate, let’s imagine that we no longer care about mobile apps. Instead, we want to help people manufacture their own cars.
It would be easy to conceive of a system where people could pick between a 2-door or 4-door vehicle, select the engine of their choice, customize the interiors and options, and pick a paint job. Off the assembly line rolls a new car.
You may be tempted to think “I’ve made a car!”
But in fact, you’ve merely chosen from a finite number of configurations. You shouldn’t expect any special complexity or uniqueness to emerge from this factory. No surprises, because all these cars are ultimately variations of the same car.
This is the trap that we frequently fall into when attempting to serve the creative and utilitarian urges of non-coders. The typical approach to empowering non-coders to make apps is to hide the complexity of programming. To create constraints and abstractions that stand in for real constructive creation.
How can we build a relatively self-contained system, in which users would have the independent ability to create, generate, or produce new content unique to that system?
Jonathan Zittrain of the Harvard Berkman Center calls this “generativity,” and describes it as “a system’s capacity to produce unanticipated change through unfiltered contributions from broad and varied audiences.”
The folks at Mozilla Labs thought for a long time about how to solve for generativity. And the answer is simple and perhaps not surprising.
Legos are the perfect example of generative design. With legos, you have basic blocks of various shapes and sizes. They have an I/O interface: the pegs snap and lock in together in your chosen order and configuration. You can describe a lego set: the build instructions can be thought of as the process, rules, specification. As you sift through the Lego bricks from various sets, your imagination grows. You want to build something of your own vision—something that’s greater than the sum of its bricks.
What enables ease of construction? Modularity. Bricks.
Web components and generativity
In the world of web specifications, it so happens that there’s an effort underway to make code more modular in this way. It’s called “Web Components.”
At a really basic level, what Appmaker does is help users “snap together” Web Components (the virtual Lego bricks) and publish the result.
Appmaker shows how each “brick” can snap into the other bricks. The rest is up to the imagination.
The Appmaker team has gotten the pile of Lego bricks started, with components to make buttons, lists, headers, counters, forms, galleries, maps, menus, sliders, timers, get data from a users’ camera, Google & Flickr, and much more.
Already in this early state, it’s easy to see how these Lego bricks can snap together to make cool things.
But it’s actually much cooler than that. Because while Web Components resemble Legos, they’re digital and unbounded by physical reality. There’s no limit to how many virtual Lego bricks can fit in this pile. Anyone will be able to contribute their own Lego bricks and Lego creations for others to use and modify.
There are other tools—like MIT’s Scratch—that facilitate this kind of construction. But they’re limited, because there’s a finite number of bricks. And because these bricks don’t work “in the real world.”
The Web as Lego
Mark Surman, Mozilla’s executive director, frequently talks about the web in terms of Lego bricks. “The web is like Lego—you can make anything you imagine, but you can also see the lines.”
Lego, Minecraft, and other systems embrace play and constructivism. The web has these same characteristics, but it’s harder to find them as mobile becomes the primary paradigm. That’s where Appmaker comes in.
When anyone can make the web in this way, there is the potential for fundamental transformation in the market. We will start to see the emergence of millions of apps that don’t have a user base or real commercial hope but would nonetheless empower and bring utility and joy to people. What kinds of apps will be in this “super long tail?”
Perhaps a love letter game for a couple. Or a daily price list for a tuna fisherman in a small village. Or a scoreboard for the neighborhood football league.
When this type of creation is possible for anyone, we’ll all have more individual sovereignty over technology. Legos don’t build you—you build the Legos. The web should work the same way.