I’ve written about Urbit a few times before, enthusiastically, critically, and out of sheer fascination. In all cases I assumed a lot of prior knowledge and, in particular, an understanding of what Urbit is in the first place. Since this is not actually straightforward to explain, I think it makes sense to go back to the beginning: what is Urbit? If you ask ten people, you’ll undoubtedly get ten different answers—and I’ve probably given ten different answers to different people at different times. I find myself attempting to answer this question quite often lately, so I thought I’d try to write down my answer once and for all.
It’s difficult to boil down to just three things, but I’ll give it a shot.
Thing #1: Infrastructure
In concrete terms, at its core, Urbit is actually something quite mundane. Viewed mathematically or scientifically, it’s just a function called Nock. You could, of course, say precisely the same thing of Ethereum: that it boils down to a function, namely, a state transition function that specifies how the state of the blockchain is changed after a new transaction is received and included in the blockchain. Of course, even if we consider this core function somehow enshrined and special, there’s a bunch of other enabling technologies wrapped around it. There’s Hoon, the high-level programming language that compiles to Nock. There’s Arvo, the kernel, and all of the vanes it implements. There’s Vere, the runtime, that implements Nock (think of Nock as the class and Vere as the instantiation of that class—like various implementations of the Ethereum protocol. You could reimplement Nock differently, and indeed, several people have done exactly this.)
Then there’s the P2P code that connects one Urbit ship to another (again, not unlike Ethereum, or Bitcoin). There’s Urbit ID, the PKI (public key infrastructure), which consists of smart contracts deployed on Ethereum, a frontend called Bridge, and glue code that allows a running ship to check credentials. Then there’s Landscape and the other apps/frontends that make Urbit more user friendly. There’s the code that implements all of these things, and the infrastructure that hosts it.
Basically, Urbit is a bunch of different applications and pieces of infrastructure that work together seamlessly. Urbit isn’t any one of these things; it’s sort of all of them all at once. If you remove any one of them, Urbit wouldn’t be Urbit. It would be something else.
Of course, while all of this technology is interesting for its own sake, it’s only really, genuinely interesting insofar as it enables specific applications/use cases and solves specific problems, which takes us to the next thing.
For more: Read the Get Started and Overview docs on urbit.org.
Thing #2: Agent
One level above the infrastructure, Urbit is the intersection of an idea and a product. The idea is multifaceted, but boils down to sovereign computing (otherwise known as digital independence): Urbit is to computing as Bitcoin is to money. The idea is that we should have simple, durable tools that are wholly ours and that do the things we want them to do, in a predictable fashion.
The product is the manifestation of that idea. Under the hood, Urbit is a personal virtual server. You can think of it a bit like a “browser in the cloud”: a logical personal agent that acts on your behalf, accessing services, storing data, managing your keys and identity, etc.. Unlike modern web browsers like Safari and Chrome that work for big tech companies and not for you, Urbit is entirely, provably, durably yours.
You can also think of Urbit as a virtual server, running on an actual server, that connects to a virtual Internet, running atop the actual Internet. If that melts your brain, don’t worry about it: it’s just to say that Urbit doesn’t actually replace existing infrastructure like the operating system or the Internet—yet. It runs on top.
Urbit is also a platform for designing, building, and hosting applications that conform to this very different architecture, one that puts the user (not the operator, not a company) at the center. It’s a set of tools for building and testing these applications. It’s a particular design aesthetic, and a set of engineering precepts.
Finally and most enticingly, Urbit is the missing piece of Web3. Web3 holds the allure of decentralized applications (“dapps”) that share global state and aren’t controlled by a trusted, centralized, privileged actor. But Web3 in its present form is woefully incomplete. As I wrote about a couple of weeks ago, Urbit provides missing primitives like identity, messaging, and persistent local state, without which the application user experience is rather clumsy (a big part of the reason the appeal of Web3 to date has been so limited).
As you can see, Urbit is extremely multifaceted, but hopefully it’s obvious how all of the pieces fit together cleanly and meaningfully.
For more: Boot up a ship. Play with Urbit for a while. Then share your own definition: What is Urbit? I’m sure your definition will be different than mine.
Thing #3: Aesthetic
If you understand Urbit as infrastructure, the idea of an agent, and a product that's a manifestation of that idea, you're off to a good start, but you cannot fully understand or appreciate Urbit without understanding the social side.
The right place to start is values. First and foremost, Urbiters believe in freedom and sovereignty. Simply put this means that you should be fully in control of your software, data, and identity at all times. Urbit is designed and built in such a way that it's impossible to give custody of any of these to a third party. If an app installs tracking code, or your data ever leave your ship and live elsewhere, that's not Urbit. If someone else has control of your keys, that's not Urbit. Of course, it's theoretically possible to build an application that violates these principles, but if someone did, that application would be categorically rejected by the Urbit community as un-Urbit (this is why enforcement of the social contract is so critical). (A quick side note on hosting: you can choose to run your Urbit ship by yourself, or you can choose to hire a third party like Tlon or Third Earth to host it for you. Even in this case, you still have full control of your ship because only you control the keys. You can download a copy, migrate it or switch to self-hosting at any time. It's not dissimilar to running your ship on a VM hosted by a cloud provider: the threat model is similar.)
As an extension, Urbiters also believe strongly in free speech and censorship resistance (“content neutrality”). These values are evident at Urbit gatherings and are also manifest in the code: no ship, no matter whether it's a planet, star, or galaxy, can censor any other. Urbit communities are private and invite-only by default. Urbit is an emergent internet phenomenon, like a force of nature: it's a P2P network and the network and its content is not hosted, facilitated, or policed by any centralized entity in any particular jurisdiction.
Urbiters also believe in simplicity and durability. As described in Thing #1, at its core Urbit is extraordinarily simple and does a very small set of things very well and very reliably. It's really just a straightforward, boring platform for building functional, connected sovereign applications, nothing more. Urbit is engineered to run for hundreds of years with minimal changes and upgrades, as evidenced by the engineering precepts and Kelvin versioning. Urbit is opinionated about the small number of things that really matter, and leaves you alone to do the rest as you see fit.
If you're familiar with Bitcoin, this should sound pretty familiar. Bitcoiners also believe in freedom and sovereignty. You can also build sovereign applications on top of Bitcoin, or even propose modifications to the Bitcoin protocol itself. Bitcoin also has a social contract: if your modification causes the network to issue more than 21M total coins, that's not Bitcoin and will be rejected by the community. Bitcoin is also censorship resistant, simple, and durable. (Urbit as a project is in fact older than Bitcoin, but the two share a common political origin and Bitcoin's success has doubtlessly influenced Urbit over the years.)
It's interesting and important to note that, while Urbit has no culture police, this culture and these principles permeate the social network itself—you see these same principles apparent in many groups and conversations, and in much of the content shared on the network. In this respect Urbit is a bit like Burning Man with its ten principles: because the barrier to entry is still relatively high, it's a self-selecting group of people who choose to come together and manifest these values on the network. The culture has also begun to mushroom around in-person social gatherings, podcasts, and among certain other social groups, such as the Dimes Square scene in lower Manhattan. It’s a cozyweb complex full of little meetups that are “all part of the same underground fever dream.” Also like Burning Man, the values and principles undergirding Urbit's tech and product are universal ideas that can be applied in many contexts, on- and off-network.
On a personal note, I took several of Burning Man's principles, such as immediacy, decommodification, and leave no trace, home with me from the burn, and I find Urbit's principles to be equally appealing, relevant, and provocative. They're also an antidote to much of what's wrong with modern society, a big topic that deserves its own space, and a big part of why Urbit has begun to find its footing and success recently. It's an idea whose time has come, it knows what it stands for, and it's unafraid and unapologetic about this. It's refreshing.
For more: Read Beliefs and Principles Guiding the Urbit Project and Precepts. Watch videos from Assembly and the events series, and attend an Urbit event in person. You can't fully understand culture from a distance.