on master help sign in
Merge branch 'next-slim' of github.com:urbit/urbit.org into chore/style-update
commit3b5e50f8a8924d2742c774219e8148d377e76c34 authorGavin Atkinson <gvnatknsn@protonmail.com> dateThu 10 Oct 2019, 15:14 (7 years ago) parenta616edcf972758
24 files changed+373−332
content/contributing.md−114 content/faq.md+7−5 content/governance.md+21 content/understanding-urbit/network-and-os.md+6−6 content/understanding-urbit/project-history.md+10−6 content/understanding-urbit/simple-durable-yours.md+9−1 content/understanding-urbit/technical-overview.md+8−8 content/understanding-urbit/urbit-id.md+8−8 content/understanding-urbit/your-last-computer.md+6−6 content/using/_index.md+5 content/develop.md → content/using/develop.md+35−4 content/install.md → content/using/install.md+6−3 content/using/operations/_index.md+7 content/using/operations/creating-a-comet.md+30 content/using/operations/stars-and-galaxies.md+42 content/using/operations/using-bridge.md+65 content/operations.md → content/using/operations/using-your-ship.md+32−117 content/what-is-urbit.md−10 templates/index.html+5−14 templates/list.html+36 templates/page.html+6−3 templates/page_indiced.html+8−3 templates/partials/footer.html+18−24 templates/understanding-urbit/list.html+3
content/contributing.mddeleted−114
@@ -1,114 +0,0 @@
1−+++
2−title = "Contributing"
3−template = "page_indiced.html"
4−+++
5−
6−## How can I contribute? {#how}
7−
8−The Urbit project is a global community of developers, users, and fans. If you’re interested in getting involved, there’s space for you; you don’t have to be a developer to be a part of the project.
9−
10−### Developer contributions
11−
12−If you *are* a developer, then you’ll want to get started either in core development or application development. For core developers, the Arvo operating system has contribution opportunities for operating system developers; programming language creators; and smart contracts experts, among others.
13−
14−If you have experience writing user-facing applications, you’ll most likely be interested in writing your peer-to-peer applications on Urbit.
15−
16−Either way, you should check out our [Developer Guide](@/develop.md).
17−
18−### Running stars and galaxies
19−
20−There are two ways to participate in the Arvo network: as a user running a planet and as an infrastructure provider running a galaxy or a star.
21−
22−For planets, Urbit is a peer-to-peer network where users can interact with each other via Landscape, or using custom applications that anyone can write.
23−
24−Running a planet helps build Urbit’s community, surfaces bugs, and helps core developers improve Urbit under realistic conditions.
25−
26−Stars and galaxies, however, have additional responsibilities and play a role in peer discovery as well as star and planet distribution. You can think of stars and galaxies as similar to the DNS system in the modern Internet. Most users don’t know it exists, but without it, the web wouldn’t work at all.
27−
28−Running a reliable galaxy or star, and spawning stars and planets from them, are excellent ways to help bootstrap the Urbit network.
29−
30−If you’re interested in running a galaxy or star, you’ll be reliably providing peer discovery for your children just by running your node – and we’re doing our best to make this both easy and profitable. If you’re interested in this, see [Operating Galaxies and Stars](#galaxies-and-stars) below.
31−
32−If you’re interested in distributing planets, read on.
33−
34−### Distribute points
35−
36−Want to get your friends and family into Urbit? Distribute planets using Bridge with a feature called **delegated sending**.
37−
38−Here’s how it works: any star can grant a number of invites to any of its child planets. Those planets can then send one-time-use invite codes via email to anyone of their choosing.
39−
40−For instructions on how to grant and send invites, check out [Using Bridge](@/operations.md#using-bridge).
41−
42−## Operating Galaxies and Stars {#galaxies-and-stars}
43−
44−To boot your galaxy or star, follow our [installation instructions](@/install.md).
45−
46−### Hosting your star
47−
48−If you plan to distribute planets in any capacity, you must keep your star running. If you fail to do so, those planets will become orphans that are unable to communicate with the network.
49−
50−To make this as simple as possible, we’re building Terraform-based tooling for star and planet hosting via Google Cloud Platform. Once it’s ready we’ll open source the tooling so you can host stars and planets for yourself and others.
51−
52−In the meantime, there are [existing instructions](@/install.md) for those familiar with booting a Linux instance on GCP, AWS, Digital Ocean, etc.
53−
54−### Distributing planets
55−
56−You can distribute planets from your star via [Bridge](https://bridge.urbit.org/). As a reminder if you do distribute planets, please boot and run your star on the Arvo network, otherwise those planets won't be able to connect, which has a negative effect on the network as a whole, as orphan planets are left with very limited functionality.
57−
58−### Software updates
59−
60−By default, your star accepts software updates from its galaxy and routes them to its planets. You can use this mechanism to push custom software to your planets. Keep in mind that planets expect functional, non-breaking software updates, and generally want to be able to communicate with planets that are sponsored by other stars.
61−
62−#### Breaches
63−
64−To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/install.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
65−
66−Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using bridge, and then follows the same steps outlined above.
67−
68−### Star-owner etiquette
69−
70−- If you distribute planets, boot and run your star on the Arvo network, or the planets won't be able to boot for the first time or connect.
71−- A star is networking infrastructure. For that reason, the machine running your star or galaxy must have sufficient bandwidth and processing power for your dependent planets.
72−- When messaging others, communicate using your star only when speaking in an official/infrastructural capacity. Otherwise, use your personal planet.
73−
74−
75−### Taxes
76−
77−Urbit address space has value, which means the distribution of address space has tax implications. You should speak with your tax advisor about these implications.
78−
79−
80−### What to expect from Tlon
81−
82−#### Contributor calls
83−
84−We host regular contributor calls where you can discuss the technical matters of Urbit with Tlon engineers and community developers. We’d love for you to join; If you’re interested, please email support@urbit.org.
85−
86−#### The urbit-dev mailing list
87−
88−Those interested in developing on Urbit are encouraged to add themselves to [the urbit-dev mailing list](https://groups.google.com/a/urbit.org/forum/#!forum/dev).
89−
90−#### Support
91−
92−We are a small team, but we do our best to answer support related inquiries. Please email us at [support@urbit.org](mailto:support@urbit.org) with questions.
93−
94−#### Roadmap for further development
95−
96−We periodically publish our ongoing development roadmap. You can find the latest [here](https://urbit.org/posts/2019-10-3-roadmap/).
97−
98−## Governance {#governance}
99−
100−Our goal is to design Urbit simply, such that as many decisions as possible are made by the architecture of the system itself – that is, code should be law whenever possible. Code can’t anticipate every eventuality, however, and so the system design must include mechanisms that allow decisions to be made outside of the code.
101−
102−Within Urbit, this form of governance is conducted by two groups: the senate of galaxies, and the body of core developers. The senate of galaxies is empowered to make changes to the solidity contracts which define Azimuth, Urbit’s PKI, by majority vote. This process is defined by the contracts themselves.
103−
104−An owner of a galaxy (or a delegate) can propose a new iteration of the contract logic. The proposal can then be voted on for a period of thirty days. Once that period is over, if at least a quarter of the galaxies has voted, and the majority is in favor, the old logic contract will hand over the reigns to the new one.
105−
106−In a similar process, document hashes can be proposed. While their off-chain documents can't be "technically enforced", this mechanism is useful for the Senate to record more abstract decisions.
107−
108−For off-chain process around proposals, as suggested by core developers, please see [senate.md](https://github.com/urbit/azimuth/blob/master/senate.md).
109−
110−The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
111−
112−You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/develop.md) to learn how you can contribute to core development.
113−
114−
content/faq.md+7−5
@@ -1,6 +1,8 @@
11+++
22title = "FAQ"
33template = "page_indiced.html"
4+[extra]
5+hidetitle = "true"
46+++
57
68## Urbit
@@ -261,7 +263,7 @@ All events are logged to disk, so you can always restore the system to a previou
261263
262264When an Arvo ship (instance) is started for the first time, you must use a "keyfile" containing the private keys for your identity's networking keys. Urbit ID uses the Ethereum blockchain as its decentralized ledger.
263265
264−See our [Getting Started](@/install.md) guide to learn how to get your ship onto the Urbit OS / Arvo network.
266+See our [Getting Started](@/using/install.md) guide to learn how to get your ship onto the Urbit OS / Arvo network.
265267
266268### Will the Urbit OS network survive if Ethereum dies? {#if-ethereum-dies}
267269
@@ -269,11 +271,11 @@ Yes. It would be annoying, but Urbit ID / Azimuth could be ported to another dec
269271
270272### How do I install Urbit OS? {#install-urbit-os}
271273
272−Check out our guides [here](@/install.md).
274+Check out our guides [here](@/using/install.md).
273275
274276### How do I use Urbit OS? {#use-urbit-os}
275277
276−The [Using](@/operations.md) section of the documentation will help you out.
278+The [Using](@/using/operations/_index.md) section of the documentation will help you out.
277279
278280### How do over-the-air updates work? {#over-the-air-updates}
279281
@@ -285,9 +287,9 @@ Landscape is an experimental Urbit OS web interface that includes social functio
285287
286288### I have an Urbit ID, now what? {#now-what}
287289
288−Follow our guide on how to boot a ship [here](@/install.md).
290+Follow our guide on how to boot a ship [here](@/using/install.md).
289291
290−Get on the [mailing list](/../#mc_embed_signup). Learn [Hoon](@/docs/hoon/_index.md). Sign up for [Hoon School](@/hoonschool.md). [Make stuff](@/install.md).
292+Get on the [mailing list](/../#mc_embed_signup). Learn [Hoon](@/docs/hoon/_index.md). Sign up for [Hoon School](@/hoonschool.md). [Make stuff](@/using/install.md).
291293
292294
293295## Urbit Grants
content/governance.mdnew file+21
@@ -0,0 +1,21 @@
1++++
2+title = "Governance"
3+[extra]
4+hidetitle = "true"
5++++
6+
7+Our goal is to design Urbit simply, such that as many decisions as possible are made by the architecture of the system itself – that is, code should be law whenever possible. Code can’t anticipate every eventuality, however, and so the system design must include mechanisms that allow decisions to be made outside of the code.
8+
9+Within Urbit, this form of governance is conducted by two groups: the senate of galaxies, and the body of core developers. The senate of galaxies is empowered to make changes to the solidity contracts which define Azimuth, Urbit’s PKI, by majority vote. This process is defined by the contracts themselves.
10+
11+An owner of a galaxy (or a delegate) can propose a new iteration of the contract logic. The proposal can then be voted on for a period of thirty days. Once that period is over, if at least a quarter of the galaxies has voted, and the majority is in favor, the old logic contract will hand over the reigns to the new one.
12+
13+In a similar process, document hashes can be proposed. While their off-chain documents can't be "technically enforced", this mechanism is useful for the Senate to record more abstract decisions.
14+
15+For off-chain process around proposals, as suggested by core developers, please see [senate.md](https://github.com/urbit/azimuth/blob/master/senate.md).
16+
17+The group of core developers manages Urbit’s [GitHub repository](https://github.com/urbit/), which controls Arvo, Urbit’s operating system. Changes and upgrades are decided upon by consensus.
18+
19+You can participate in the governance of the senate by acquiring a galaxy. If you would like to be involved with the governance of Arvo, check out our [developer guide](@/using/develop.md) to learn how you can contribute to core development.
20+
21+
content/understanding-urbit/network-and-os.md+6−6
@@ -1,6 +1,6 @@
11+++
22title = "Urbit OS + Network"
3−description = "The existing internet is a theme park. Learn how we leave it behind."
3+description = "The Urbit OS + Network + how they work together"
44weight = 5
55+++
66
@@ -8,21 +8,21 @@ weight = 5
88
99Our phones are cluttered with apps, ads and notifications. Our laptops are basically just web browsers that connect us to services controlled by MEGACORP. Who knows where your messages, images, contacts and connections live. Let alone how long they’ll last or who is looking at them.
1010
11−The digital world feels like a theme park built to maximize ENGAGEMENT — but we think it’s BORING. What happened to the vision of a computer as a tool that would expand and enrich our lives?
11+The digital world feels like a theme park built to maximize ENGAGEMENT — but we think it’s BORING. What happened to the vision of a computer as a tool that would expand and enrich our lives?
1212
13−While the world has drifted into a fever dream, we built Urbit.
13+While the world has drifted into a fever dream, we built Urbit.
1414
1515![](https://media.urbit.org/site/understanding-urbit/network-os/urbit-os-2.svg)
1616
1717Your Urbit ID gets you a name, an address and a crypto wallet — but what about when you want to connect with other people? That’s where Urbit OS comes in.
1818
19−Urbit OS is everything that you need to build and run your own social software and compute with whomever you like. Create a pseudonymous chat group, edit a document together, then split a bar tab and later turn it into a syndicate and start investing. Eventually, maybe you’ll decide to become a microstate that funds everyone in Bitcoin — the possibilities are wide open.
19+Urbit OS is everything that you need to build and run your own social software and compute with whomever you like. Create a pseudonymous chat group, edit a document together, then split a bar tab and later turn it into a syndicate and start investing. Eventually, maybe you’ll decide to become a microstate that funds everyone in Bitcoin — the possibilities are wide open.
2020
2121Since we’ve got a decentralized identity system to build on and everyone runs their own OS, your social software is actually owned and operated by the collective of Urbit ID owners. You can (and should) do whatever you want.
2222
2323![](https://media.urbit.org/site/understanding-urbit/network-os/urbit-os-3.svg)
2424
25−We built Urbit OS from scratch. It’s a completely new computing stack. Without getting into the technical details (you can find those [here](@/understanding-urbit/technical-overview.md)), Urbit OS is built to do three things: be a compact and complete system (simple); run forever with no maintenance (durable); and be extensible by anyone (yours).
25+We built Urbit OS from scratch. It’s a completely new computing stack. Without getting into the technical details (you can find those [here](@/understanding-urbit/technical-overview.md)), Urbit OS is built to do three things: be a compact and complete system (simple); run forever with no maintenance (durable); and be extensible by anyone (yours).
2626
2727Urbit OS is a completely unified system with no external dependencies. In a single codebase, two orders of magnitude smaller than Linux, you have an entire programming language and operating system. We realize how crazy this is — but it means that a single person can actually understand the entire system. Who is the last person you met that actually understands their entire computer? Urbit OS is like the [1968 Porsche 911](https://cdn.bringatrailer.com/wp-content/uploads/2007/05/1968_Porsche_911_SR_Factor_Race_Car_Engine_1.jpg) of operating systems.
2828
@@ -30,4 +30,4 @@ At the very bottom of the stack, Urbit OS is just a single, fixed function that
3030
3131Since Urbit OS is completely sealed, it’s all run-from-source. All the code to run the system is yours to modify, tinker with and extend. Build your own apps, modules and user experience. Or customize Urbit OS to control your tractor. Even better: collaborate with others on the network to build the experience you’re looking for. It’s entirely up to you.
3232
33−We build Urbit OS so we can finally have a dependable system, that we can commit to and keep far into the future. The modern web already looks dated to us.
33+We build Urbit OS so we can finally have a dependable system, that we can commit to and keep far into the future. The modern web already looks dated to us.
content/understanding-urbit/project-history.md+10−6
@@ -1,10 +1,10 @@
11+++
22title = "Project Status + History"
3−description = "Still young, but very real."
3+description = "Where we've been and were we are now"
44weight = 7
55+++
66
7−Can you move to Urbit today and never look back? No, not quite yet. Urbit is still young.
7+Can you move to Urbit today and never look back? No, not quite yet. Urbit is still young.
88
99![](https://media.urbit.org/site/understanding-urbit/project-history/DSCF5386-edit.jpg)
1010
@@ -12,22 +12,26 @@ Currently, Urbit ID is live and deployed. That means you can own a piece of Urbi
1212
1313{{ oversize(url="https://media.urbit.org/site/understanding-urbit/project-history/project-history-02%402x.png")}}
1414
15−You can interact with your Urbit ID and invite friends using [Bridge](https://bridge.urbit.org), the Urbit authentication system. You can also use Bridge to boot the current alpha of Urbit OS. Soon, you’ll be able to use Bridge for payments and to explore the Urbit network.
15+You can interact with your Urbit ID and invite friends using [Bridge](https://bridge.urbit.org), the Urbit authentication system. You can also use Bridge to boot the current alpha of Urbit OS. Soon, you’ll be able to use Bridge for payments and to explore the Urbit network.
1616
1717{{ oversize(url="https://media.urbit.org/site/understanding-urbit/project-history/project-history-03%402x.png")}}
1818
19−Urbit OS is a solid alpha. We use it every day to coordinate and chat about the future of Urbit. You’re [welcome to join](@/install.md). Our standards are high, so we aren’t asking everyone to use Urbit OS yet. If you’re someone who wants to customize their own software and experiment with a new system, [check it out](@/install.md). Otherwise, [join the mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;id=be143888d2). We have exciting things planned for 2020.
19+Urbit OS is a solid alpha. We use it every day to coordinate and chat about the future of Urbit. You’re [welcome to join](@/using/install.md). Our standards are high, so we aren’t asking everyone to use Urbit OS yet. If you’re someone who wants to customize their own software and experiment with a new system, [check it out](@/using/install.md). Otherwise, [join the mailing list](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;id=be143888d2). We have exciting things planned for 2020.
2020
2121Urbit OS isn’t just an interface — it’s a complete system. You should also check out the [GitHub repository](https://github.com/urbit/urbit), our [open grants program](https://grants.urbit.org) and the [documentation](@/docs/_index.md).Building a system from scratch is a huge and enormously fun undertaking. There’s a lot going on, and we do all our development in public. Systems programmers, functional programming nerds, anyone who wants to tinker with their software will probably love playing with Urbit.
2222
2323![](https:///media.urbit.org/site/understanding-urbit/project-history/history-4.svg)
2424
25−At the beginning, Urbit was just a few people with the right combination of imagination and discipline to try to rebuild computing. Now it's a community of thousands of address space holders, dozens of open source developers, at least two independent companies ([Tlon](https://tlon.io) — which works mostly on kernel development and interface design, and [urbit.live](https://urbit.live) — which is building services on the platform), and who knows how many fans.
25+At the beginning, Urbit was just a few people with the right combination of imagination and discipline to try to rebuild computing. Now it's a community of thousands of address space holders, dozens of open source developers, at least two independent companies ([Tlon](https://tlon.io) — which works mostly on kernel development and interface design, and [urbit.live](https://urbit.live) — which is building services on the platform), and who knows how many fans.
2626
27+<<<<<<< HEAD
28+![](https://media.urbit.org/site/understanding-urbit/project-history/project-history-05.svg)
29+=======
2730**History**
2831
2932![](https://media.urbit.org/site/understanding-urbit/project-history/project-history-05.svg)
3033
3134**Roadmap**
3235
33−![](https://media.urbit.org/site/understanding-urbit/project-history/project-history-06.svg)
36+![](https://media.urbit.org/site/understanding-urbit/project-history/project-history-06.svg)
37+>>>>>>> 161f70a0fed1632f1bedae9c397d35a409f6255e
content/understanding-urbit/simple-durable-yours.md+9−1
@@ -1,6 +1,6 @@
11+++
22title = "Simple, Durable, Yours"
3−description = "If computers are going to be a part of our lives for generations to come, we need a sound foundation for them."
3+description = "The core ideas that Urbit is built around"
44weight = 1
55+++
66
@@ -24,18 +24,26 @@ We built Urbit from scratch to be a system that’s simple, durable and yours. E
2424
2525What do we mean by simple, durable and yours? Let’s walk through it one by one.
2626
27+<br /><br />
28+
2729## Simple
2830
2931Urbit is designed to be incredibly simple for ordinary users. Your data, applications and connections all live in a single, unified OS that belongs to you. Your Urbit requires no system administration at all and gets all its updates over the air. For developers, Urbit is incredibly compact and efficient. It’s about 50K lines of code — smaller than your average webapp. The entire OS can be understood by a single person and is designed to make building decentralized apps straightforward.
3032
33+<br /><br />
34+
3135## Durable
3236
3337Your Urbit is designed to be durable: both to store your data across generations and to be resilient against crashes. You can't really trust a computer that could disappear or become obsolete. We’ve become accustomed to this distrust, but it’s not the way things should be. Your Urbit is meant to be a permanent digital home. At its foundation, Urbit is designed a bit like a blockchain — making reliability and permanence a priority for the individual.
3438
39+<br /><br />
40+
3541## Yours
3642
3743And, finally, your Urbit belongs to you in every possible way. You own it with a private key, control it completely and can inspect its source code. We want your Urbit to be your digital home. A home you don’t own is just a hotel room.
3844
45+<br /><br />
46+
3947<picture class="full mt4 mb4 c3-11-lg">
4048<source srcset="https://media.urbit.org/site/understanding-urbit/simple-durable-yours/sdy-3.png,
4149https://media.urbit.org/site/understanding-urbit/simple-durable-yours/sdy-3%402x.png 2x">
content/understanding-urbit/technical-overview.md+8−8
@@ -1,6 +1,6 @@
11+++
22title = "Technical Overview"
3−description = "Simple and compact from the kernel up."
3+description = "A quick tour of the technology"
44weight = 6
55+++
66
@@ -10,29 +10,29 @@ https://media.urbit.org/site/understanding-urbit/technical-overview/technical-ov
1010<img src="https://media.urbit.org/site/understanding-urbit/technical-overview/technical-overview-1%402x.png">
1111</picture>
1212
13−Owning a computer, especially a server, can feel like a part time job. Urbit, on the other hand, is engineered to be maintenance free. We figure, if people are actually going to use a new computing platform, it can’t feel like work. At all.
13+Owning a computer, especially a server, can feel like a part time job. Urbit, on the other hand, is engineered to be maintenance free. We figure, if people are actually going to use a new computing platform, it can’t feel like work. At all.
1414
1515So we built our whole stack, starting with the VM, to be as simple and compact as possible. Let’s take a look at what the system looks like from a technical perspective and get a feel for how it’s built.
1616
1717![](https://media.urbit.org/site/understanding-urbit/technical-overview/technical-overview-2.svg)
1818
19−Under the hood, Urbit is two parts: an ID system and an OS. The ID system is live and deployed to Ethereum. The OS is a program that runs on top of any Unix machine with an internet connection.
19+Under the hood, Urbit is two parts: an ID system and an OS. The ID system is live and deployed to Ethereum. The OS is a program that runs on top of any Unix machine with an internet connection.
2020
2121Urbit ID is incredibly simple. An Urbit ID is just a pair of an ID and a public key. Some IDs have the ability to issue a finite number of other IDs. Galaxies, the top-tier of Urbit IDs, have the ability to upgrade the Urbit ID contracts by a majority vote. Each Urbit ID also has a cascade of keys that can perform specific actions which make securing your Urbit ID simple and straightforward. For example, the key for booting Urbit OS is separate from the key for issuing children — keep that one in a safe.
2222
2323All of this is implemented as a [suite of Solidity contracts](https://github.com/urbit/azimuth) that are [deployed to Ethereum](https://etherscan.io/address/azimuth.eth) that we call ‘Azimuth’. We’re not wedded to using Ethereum forever — but it works well for now. Someday we’d like to host Azimuth on Urbit itself.
2424
25−As a compliment to Urbit ID, we implemented the [Urbit HD wallet](https://github.com/urbit/urbit-wallet-generator) which lets most people own their Urbit IDs using a simple passkey that’s easy to remember. This means you own your Urbit ID and can log in to Urbit OS with something like `~ravmel-ropdyl`, `~poldec-tonteg-palfun-foslup`.
25+As a compliment to Urbit ID, we implemented the [Urbit HD wallet](https://github.com/urbit/urbit-wallet-generator) which lets most people own their Urbit IDs using a simple passkey that’s easy to remember. This means you own your Urbit ID and can log in to Urbit OS with something like `~ravmel-ropdyl`, `~poldec-tonteg-palfun-foslup`.
2626
2727Until Urbit OS is completely secure (in the next year or so, we hope), you can interact with Urbit ID through a standalone, browser-based interface called [Bridge](https://bridge.urbit.org). Bridge lets you securely manage your keys, transfer your Urbit ID, log in to Urbit OS and so on.
2828
2929![](https://media.urbit.org/site/understanding-urbit/technical-overview/technical-overview-3.svg)
3030
31−In the simplest terms, Urbit OS is three things: a file, a key and a program. The file is a log of everything that has ever happened to your Urbit. The key is derived from the same key you own your Urbit ID with.
31+In the simplest terms, Urbit OS is three things: a file, a key and a program. The file is a log of everything that has ever happened to your Urbit. The key is derived from the same key you own your Urbit ID with.
3232
33−The program is mostly Arvo — our name for the Urbit OS kernel. Arvo is implemented in Hoon, a functional language that compiles down to Nock, our tiny set of opcodes.
33+The program is mostly Arvo — our name for the Urbit OS kernel. Arvo is implemented in Hoon, a functional language that compiles down to Nock, our tiny set of opcodes.
3434
35−Arvo’s behavior is completely defined by a transition function that goes from `[event, current-state]` to `[effects, next-state]`. An event might be a keypress, an HTTP request, or a UDP message from another Arvo. An effect might be a command to the Unix terminal, an HTTP response, a UDP message to another Arvo or a move to one of Arvo’s kernel modules or vanes.
35+Arvo’s behavior is completely defined by a transition function that goes from `[event, current-state]` to `[effects, next-state]`. An event might be a keypress, an HTTP request, or a UDP message from another Arvo. An effect might be a command to the Unix terminal, an HTTP response, a UDP message to another Arvo or a move to one of Arvo’s kernel modules or vanes.
3636
3737We currently have vanes for networking (`%ames`), timers (`%behn`), a filesystem (`%clay`), a terminal driver (`%dill`), an http server (`%eyre`), a functional build system (`%ford`), an application server (`%gall`) and a module for managing private keys (`%jael`).
3838
@@ -42,4 +42,4 @@ Nock is like a pico-Lisp with no symbols. It's a homoiconic purely functional ma
4242
4343Hoon, the language in which the operating system is implemented is a purely functional, statically typed, strictly evaluated programming language that compiles to Nock. It’s a little quirky, but at its core it’s a macro extension of Nock.
4444
45−Perhaps most interesting: our whole stack (except for Nock and Vere) is designed to be updated over the air. This is what makes it possible for Urbit to be a computer for life — it can grow with you.
45+Perhaps most interesting: our whole stack (except for Nock and Vere) is designed to be updated over the air. This is what makes it possible for Urbit to be a computer for life — it can grow with you.
content/understanding-urbit/urbit-id.md+8−8
@@ -1,6 +1,6 @@
11+++
22title = "Urbit ID"
3−description = "Your identity should feel like a unique and precious object you can always carry with you. So we built one."
3+description = "An overview of the Urbit ID system"
44weight = 4
55+++
66
@@ -14,13 +14,13 @@ We don’t like being owned by someone else. We think your identity and wallet s
1414
1515Urbit ID is meant to feel like a civilizational key. If your Urbit ID were a piece of hardware, you could tap it to unlock a door, swipe it to buy a coffee, and plug it into any computer to log in. It’s a unique, beautiful, object that’s both an address and a wallet. It’s a key to a secret club and the ticket to your digital life.
1616
17−Your Urbit ID isn’t a physical object (yet). Instead, it’s even simpler. Your Urbit ID is a name and passkey that’s easy to memorize.
17+Your Urbit ID isn’t a physical object (yet). Instead, it’s even simpler. Your Urbit ID is a name and passkey that’s easy to memorize.
1818
19−If you wake up in the desert, unsure how you got there, you’ll be fine so long as you remember your Urbit ID and passkey. With it, you still own your digital identity and your digital assets. If you remember your friend’s Urbit ID you can always connect with them and send them money or messages.
19+If you wake up in the desert, unsure how you got there, you’ll be fine so long as you remember your Urbit ID and passkey. With it, you still own your digital identity and your digital assets. If you remember your friend’s Urbit ID you can always connect with them and send them money or messages.
2020
21−Urbit ID is a simple, decentralized system for people to own their digital addresses and crypto wallets. Urbit ID is a system owned by its users, designed to last far into the future, that’s live and usable today.
21+Urbit ID is a simple, decentralized system for people to own their digital addresses and crypto wallets. Urbit ID is a system owned by its users, designed to last far into the future, that’s live and usable today.
2222
23−Urbit ID is a completely separate system from Urbit OS. It’s finished and deployed to Ethereum already. We designed Urbit ID to log in to Urbit OS, but it can be used for anything.
23+Urbit ID is a completely separate system from Urbit OS. It’s finished and deployed to Ethereum already. We designed Urbit ID to log in to Urbit OS, but it can be used for anything.
2424
2525For those curious to understand Urbit ID a bit better, we’ll cover the basics of how Urbit ID works here; how addresses are distributed and who owns what.
2626
@@ -53,7 +53,7 @@ First, there are only so many Urbit IDs, so they cost something. Since they cost
5353<tr><td>1 planet</td><td><span class="fl"> =</span><span class="fr"><code>2<sup>32</sup> (4B)</code> moons</span></td></tr>
5454</table>
5555
56−Second, Urbit IDs are distributed by a sponsorship tree. Each sponsor issues a fixed number of addresses. Since there are lots of sponsors, there are lots of ways to get an Urbit ID — not just one central authority.
56+Second, Urbit IDs are distributed by a sponsorship tree. Each sponsor issues a fixed number of addresses. Since there are lots of sponsors, there are lots of ways to get an Urbit ID — not just one central authority.
5757
5858Urbit IDs need a sponsor even after they’re issued, but you can always change sponsors and sponsors can always reject children. This means bad actors can be banned, and abusive sponsors can be ignored. We think this strikes a nice balance between accountability and freedom.
5959
@@ -67,6 +67,6 @@ Urbit ID isn’t just a design. It’s [live and deployed](https://azimuth.netwo
6767
6868Urbit IDs are digital property. The entire address space of Urbit IDs is like a vast territory of digital land. Over time, we’ve used this land to fund the development of Urbit as a whole by selling some of it to people we felt would be great stewards of this new frontier.
6969
70−When we launched the Urbit ID system, in January of 2019, there were a few thousand different star and galaxy holders. Since then, that number is on the rise.
70+When we launched the Urbit ID system, in January of 2019, there were a few thousand different star and galaxy holders. Since then, that number is on the rise.
7171
72−The scarcity tree of Urbit ID address space drives decentralization even while the project is young, which is great. If Urbit ID is going to last a long time and succeed as neutral infrastructure, it has to be owned and controlled by a wide variety of people.
72+The scarcity tree of Urbit ID address space drives decentralization even while the project is young, which is great. If Urbit ID is going to last a long time and succeed as neutral infrastructure, it has to be owned and controlled by a wide variety of people.
content/understanding-urbit/your-last-computer.md+6−6
@@ -1,6 +1,6 @@
11+++
22title = "Your Last Computer"
3−description = "Think of it as the “back to the land” computing movement."
3+description = "What Urbit should feel like to an everyday user"
44weight = 2
55+++
66
@@ -10,28 +10,28 @@ First, let’s talk about what it should feel like in the future.
1010
1111<picture class="full mt4 mb4 c3-11-lg">
1212<source srcset="https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-1.png,
13−https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-1%402x.png 2x">
13+https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-1%402x.png 2x">
1414<img src="https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-1%402x.png"/>
1515</picture>
1616
1717Imagine that you can login from anywhere with one simple, memorable name and password. And when you do, an entire OS appears for you. Inside is your whole digital life. Every conversation you’ve ever had, all your biometric data — every step and heartbeat. Your personal mesh of devices: your doors, your car, your irrigation. All of your communities, every message you’ve shared with friends and family. Every connection you’ve made and every archival piece of data, in one place. Secure and private, forever.
1818
19−You own and control this OS completely. Your system doesn’t live on someone else’s server, so there’s no risk of leaking it in a mass data breach or losing it when a service shuts down. Your Urbit is a sealed, secure and durable system.
19+You own and control this OS completely. Your system doesn’t live on someone else’s server, so there’s no risk of leaking it in a mass data breach or losing it when a service shuts down. Your Urbit is a sealed, secure and durable system.
2020
2121<picture class="full mt4 mb4 c3-11-lg">
2222<source srcset="https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-2.png,
2323https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-2%402x.png 2x,
24−https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-2%403x.svg 3x">
24+https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-2%403x.svg 3x">
2525<img src="https://media.urbit.org/site/understanding-urbit/your-last-computer/last-computer-2%402x.png"/>
2626</picture>
2727
2828We’re on our way to this future, building it step by step, but we’re not there yet. The Urbit of today is much more stripped down.
2929
30−Urbit starts out as a new kind of social network.
30+Urbit starts out as a new kind of social network.
3131
3232Today, each of our social tools does one thing. And so each of our communities end up spanning multiple services. Urbit OS 1 gives you the tools to bring these together into one place.
3333
34−In Urbit OS 1, a community shares a set of modules. (Think of a module like an app without the data lock-in.) One community may choose to chat and share a forum. Another may choose to chat and watch the crypto markets. And yet another may chat, share links, ebooks and a to-do list. Anyone can develop a module, and anyone can create a community.
34+In Urbit OS 1, a community shares a set of modules. (Think of a module like an app without the data lock-in.) One community may choose to chat and share a forum. Another may choose to chat and watch the crypto markets. And yet another may chat, share links, ebooks and a to-do list. Anyone can develop a module, and anyone can create a community.
3535
3636It’s a simple system for intentional digital communities. A first step away from the ill-formed digital world of today. We like to call it ‘social computing’ — on the surface it feels like a new kind of app, but under the hood it’s an OS. It’s customizable all the way down.
3737
content/using/_index.mdnew file+5
@@ -0,0 +1,5 @@
1++++
2+title = "Using"
3+sort_by = "weight"
4+template = "list.html"
5++++
content/develop.md → content/using/develop.mdrenamed+35−4
@@ -1,6 +1,9 @@
11+++
2−title = "Develop"
2+title = "Developer's Guide"
3+description = "How to get started developing on Urbit."
4+weight = 3
35template = "page_indiced.html"
6+aliases = ["/docs/using/creating-a-development-ship/"]
47+++
58
69There are roughly two kinds of development on Urbit: core development and application development. Urbit applications are still young, but can be fun to experiment with. The kernel is much more stable, but generally more challenging from an engineering standpoint.
@@ -11,7 +14,7 @@ This guide will start by getting you set up to run an Urbit ship, and then tell
1114
1215We assume you’ve gotten a basic introduction to Urbit. If you haven’t, read the [Understanding Urbit](@/understanding-urbit/_index.md) series, or just jump ahead to the [Technical Overview](@/understanding-urbit/technical-overview.md).
1316
14−Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/operations.md#creating-a-comet).
17+Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/using/operations/creating-a-comet.md).
1518
1619When developing, however, we recommend [booting a development ship](#creating-a-development-ship) and working locally -- you may need to make changes that could, in the wrong hands, destroy the ship’s environment, and it’s best to do so in a safe, separate place.
1720
@@ -42,7 +45,7 @@ If you want to see examples of Urbit applications with common functionality requ
4245
4346To do work with Hoon and with the system, we recommended using a "fake" ship -- one not connected to the network.
4447
45−Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/install).
48+Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/using/install).
4649
4750To create a fake ship named `~zod`, run the command below. You can replace `zod` with any valid Urbit ship-name.
4851
@@ -62,4 +65,32 @@ Here are some tutorials written by members of the Urbit community. Some are a li
6265- [A Nock Interpreter](https://jtobin.io/nock) by `~nidsut-tomdun`
6366- [Basic Hoonery](https://jtobin.io/basic-hoonery) by `~nidsut-tomdun`
6467
65−If you want to add something to the list, [shoot us an email](mailto:support@urbit.org) or make a pull request in the [docs repository](https://github.com/urbit/docs).
68+If you want to add something to the list, [shoot us an email](mailto:support@urbit.org) or make a pull request in the [docs repository](https://github.com/urbit/docs).
69+
70+## How else can I contribute? {#how}
71+
72+The Urbit project is a global community of developers, users, and fans. If you’re interested in getting involved, there’s space for you; you don’t have to be a developer to be a part of the project.
73+
74+### Running stars and galaxies
75+
76+There are two ways to participate in the Arvo network: as a user running a planet and as an infrastructure provider running a galaxy or a star.
77+
78+For planets, Urbit is a peer-to-peer network where users can interact with each other via Landscape, or using custom applications that anyone can write.
79+
80+Running a planet helps build Urbit’s community, surfaces bugs, and helps core developers improve Urbit under realistic conditions.
81+
82+Stars and galaxies, however, have additional responsibilities and play a role in peer discovery as well as star and planet distribution. You can think of stars and galaxies as similar to the DNS system in the modern Internet. Most users don’t know it exists, but without it, the web wouldn’t work at all.
83+
84+Running a reliable galaxy or star, and spawning stars and planets from them, are excellent ways to help bootstrap the Urbit network.
85+
86+If you’re interested in running a galaxy or star, you’ll be reliably providing peer discovery for your children just by running your node – and we’re doing our best to make this both easy and profitable. If you’re interested in this, see [Star and Galaxy Operations](/using/operations/stars-and-galaxies.md).
87+
88+If you’re interested in distributing planets, read on.
89+
90+### Distribute points
91+
92+Want to get your friends and family into Urbit? Distribute planets using Bridge with a feature called **delegated sending**.
93+
94+Here’s how it works: any star can grant a number of invites to any of its child planets. Those planets can then send one-time-use invite codes via email to anyone of their choosing.
95+
96+For instructions on how to grant and send invites, check out [Using Bridge](@/using/operations/using-bridge.md).
content/install.md → content/using/install.mdrenamed+6−3
@@ -1,11 +1,14 @@
11+++
2−title = "Install"
2+title = "Install + Setup"
3+weight = 1
4+description = "How to install Urbit."
35template = "page_indiced.html"
6+aliases = ["/docs/getting-started/"]
47+++
58
6−Urbit is not yet ready for wide use for everyday users -- but if you're technically inclined or generally intrepid, feel free to try it out. It's a good place to explore.
9+Urbit is not yet ready for everyday users -- but if you're technically inclined or generally intrepid, feel free to try it out. It's a good place to explore.
710
8−In order to get going on the network, you'll need an [Urbit ID](#id). To try the live network out with a disposable identity, you can always [create a comet](@/operations.md#creating-a-comet).
11+In order to get going on the network, you'll need an [Urbit ID](#id). To try the live network out with a disposable identity, you can always [create a comet](@/using/operations/creating-a-comet.md).
912
1013## Getting an Urbit ID {#id}
1114
content/using/operations/_index.mdnew file+7
@@ -0,0 +1,7 @@
1++++
2+title = "Operations"
3+description = "Instructions on how to use Bridge, your Urbit ship, Stars and Galaxies, and more."
4+sort_by = "weight"
5+weight = 2
6+template = "list.html"
7++++
content/using/operations/creating-a-comet.mdnew file+30
@@ -0,0 +1,30 @@
1++++
2+title = "Creating a Comet"
3+description = "Comets are disposable identities you can use on the live network."
4+weight = 4
5+aliases = ["/docs/using/creating-a-comet/"]
6++++
7+
8+**Comets** are Urbits whose names are 128-bits or 16 syllables, such as:
9+
10+`~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`
11+
12+Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
13+
14+### Booting a comet
15+
16+To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
17+
18+```sh
19+$ ./urbit -c mycomet
20+```
21+
22+This will take a few minutes and will spin out a bunch of boot messages. Toward the end, you'll see something like:
23+
24+```
25+ames: on localhost, UDP 31337.
26+http: live (insecure, public) on 8080
27+http: live ("secure", public) on 8443
28+http: live (insecure, loopback) on 12321
29+~dasres_marzod:dojo>
30+```
content/using/operations/stars-and-galaxies.mdnew file+42
@@ -0,0 +1,42 @@
1++++
2+title = "Star and Galaxy Operations"
3+description = "Additional information and suggested ettiquette for Star and Galaxy owners."
4+weight = 3
5+aliases = ["/docs/using/operating-a-star/"]
6+template = "page_indiced.html"
7++++
8+
9+To boot your galaxy or star, follow our [installation instructions](@/using/install.md).
10+
11+### Hosting your star
12+
13+If you plan to distribute planets in any capacity, you must keep your star running. If you fail to do so, those planets will become orphans that are unable to communicate with the network.
14+
15+To make this as simple as possible, we’re building Terraform-based tooling for star and planet hosting via Google Cloud Platform. Once it’s ready we’ll open source the tooling so you can host stars and planets for yourself and others.
16+
17+In the meantime, there are [existing instructions](@/using/install.md) for those familiar with booting a Linux instance on GCP, AWS, Digital Ocean, etc.
18+
19+### Distributing planets
20+
21+You can distribute planets from your star via [Bridge](https://bridge.urbit.org/). As a reminder if you do distribute planets, please boot and run your star on the Arvo network, otherwise those planets won't be able to connect, which has a negative effect on the network as a whole, as orphan planets are left with very limited functionality.
22+
23+### Software updates
24+
25+By default, your star accepts software updates from its galaxy and routes them to its planets. You can use this mechanism to push custom software to your planets. Keep in mind that planets expect functional, non-breaking software updates, and generally want to be able to communicate with planets that are sponsored by other stars.
26+
27+#### Breaches
28+
29+To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/using/install.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
30+
31+Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using bridge, and then follows the same steps outlined above.
32+
33+### Star-owner etiquette
34+
35+- If you distribute planets, boot and run your star on the Arvo network, or the planets won't be able to boot for the first time or connect.
36+- A star is networking infrastructure. For that reason, the machine running your star or galaxy must have sufficient bandwidth and processing power for your dependent planets.
37+- When messaging others, communicate using your star only when speaking in an official/infrastructural capacity. Otherwise, use your personal planet.
38+
39+### Taxes
40+
41+Urbit address space has value, which means the distribution of address space has tax implications. You should speak with your tax advisor about these implications.
42+
content/using/operations/using-bridge.mdnew file+65
@@ -0,0 +1,65 @@
1++++
2+title = "Using Bridge"
3+template = "page_indiced.html"
4+description = "How to use Bridge to interact with Azimuth and manage your Urbit ID."
5+weight = 1
6+aliases = ["/docs/getting-started/using-bridge/"]
7++++
8+
9+[Bridge](https://github.com/urbit/bridge) is the application we built for interacting with [Azimuth](https://azimuth.network), the Urbit PKI, and managing your Urbit ID. Importantly, Bridge also allows you to generate a keyfile that you will need to boot your ship so that it can use the Arvo network.
10+
11+This guide assumes that you have an Urbit ID, or that you have found someone to send an Urbit ID to your Ethereum address and are looking to claim it.
12+
13+### Online Bridge
14+
15+To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
16+
17+Once you arrive, proceed through the steps presented. You'll eventually arrive at a page with a few choices: `Invite`, `Admin`, and `Boot Arvo`. `Admin` is the only option that you're interested in right now; click on it. On the `Admin` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/using/install.md).
18+
19+### Offline Bridge
20+
21+Alternatively, Bridge can be run locally. It's more complicated, but we recommend this option for managing sufficiently valuable assets, such as several stars or more. To install local Bridge, navigate to the [release page on GitHub](https://github.com/urbit/bridge/releases/). Download the `.zip` file of the latest version. After you download it, follow the instructions below.
22+
23+To use Bridge:
24+
25+- Unzip the .zip file that you downloaded (bridge-$version.zip).
26+- Open up your command line interface (Terminal on OSX, Command Prompt on Windows).
27+- Navigate to the bridge-$version directory, where $version is the appropriate version number.
28+- Run this command: `python3 -m http.server 5000 --bind 127.0.0.1.`
29+
30+You can then use the Bridge app by navigating to `http://localhost:5000` in your internet browser.
31+
32+Note: Bridge allows you to both make reads and writes to the Ethereum blockchain. Writing to the blockchain, such as changing your networking keys, will incur a transaction cost that will require you to have some ETH in your address.
33+
34+Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
35+
36+### Accept your transfer
37+
38+If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
39+
40+After you access your Ethereum address, if a point was sent to that address, you'll come to a page that has an `Incoming Transfers` header, under which is a graphic. Click the `Details ->` link under that graphic.
41+
42+Now you'll be on the management page of your point. The transfer isn't completed yet, so click `Accept incoming transfer`. Then check both boxes and and click their associated `Sign Transaction` and `Send Transaction` buttons.
43+
44+If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
45+
46+### Set your networking keys
47+
48+If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
49+
50+Click the link that says `Set network keys`. The field presented in the resulting page expects a 32-byte hexadecimal string. If it's filled already, no action is required. If it is empty, you will need to generate such a string. You can generate this data any way you please, but in the terminal on MacOS or Linux, you can write
51+
52+```sh
53+hexdump -n 32 -e '4/4 "%08X"' /dev/random
54+```
55+
56+and use the result.
57+
58+It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
59+
60+### Generate your keyfile
61+
62+From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
63+Click `Generate ->`, which will download a keyfile onto your machine.
64+
65+With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/using/install.md).
content/operations.md → content/using/operations/using-your-ship.mdrenamed+32−117
@@ -1,70 +1,61 @@
11+++
2−title = "Operations"
2+title = "Using Your Ship"
3+description = "How to operate your ship, including using your ship's filesystem and messaging applications, starting a moon, or requesting a DNS proxy."
34template = "page_indiced.html"
4−slug = "/operations/"
5+weight = 2
6+aliases = ["docs/using/arvo-network-dns/", "docs/using/messaging/", "docs/using/shell/", "docs/using/admin/"]
57+++
68
7−## Using Bridge {#using-bridge}
8−
9−[Bridge](https://github.com/urbit/bridge) is the application we built for interacting with [Azimuth](https://azimuth.network), the Urbit PKI, and managing your Urbit ID. Importantly, Bridge also allows you to generate a keyfile that you will need to boot your ship so that it can use the Arvo network.
10−
11−This guide assumes that you have an Urbit ID, or that you have found someone to send an Urbit ID to your Ethereum address and are looking to claim it.
12−
13−### Online Bridge
14−
15−To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
16−
17−Once you arrive, proceed through the steps presented. You'll eventually arrive at a page with a few choices: `Invite`, `Admin`, and `Boot Arvo`. `Admin` is the only option that you're interested in right now; click on it. On the `Admin` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/install.md).
9+## DNS proxying {#dns-proxying}
1810
19−### Offline Bridge
11+We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
2012
21−Alternatively, Bridge can be run locally. It's more complicated, but we recommend this option for managing sufficiently valuable assets, such as several stars or more. To install local Bridge, navigate to the [release page on GitHub](https://github.com/urbit/bridge/releases/). Download the `.zip` file of the latest version. After you download it, follow the instructions below.
13+Stars and planets follow the same process DNS proxying process, and galaxies have their own requirements. Moons and comets are not supported.
2214
23−To use Bridge:
15+### Planets and Stars
2416
25−- Unzip the .zip file that you downloaded (bridge-$version.zip).
26−- Open up your command line interface (Terminal on OSX, Command Prompt on Windows).
27−- Navigate to the bridge-$version directory, where $version is the appropriate version number.
28−- Run this command: `python3 -m http.server 5000 --bind 127.0.0.1.`
17+For a planet or star's DNS proxying request to be made and fulfilled, they must be hosting their ship someplace with a public IP address, and its HTTP server must be listening on port 80.
2918
30−You can then use the Bridge app by navigating to `http://localhost:5000` in your internet browser.
19+To get `ship.arvo.network` on a planet or star, you must set up DNS routing with its parent ship by starting the `:dns` app.
3120
32−Note: Bridge allows you to both make reads and writes to the Ethereum blockchain. Writing to the blockchain, such as changing your networking keys, will incur a transaction cost that will require you to have some ETH in your address.
21+To do so, simply run this command in your ship's Dojo:
3322
34−Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
23+```
24+> :dns|request
25+```
3526
36−### Accept your transfer
27+You'll then be prompted to enter the public IP address of your ship. You can also pass the IP address as an argument, using the .0.0.0.0 (`@if`) syntax. For example:
3728
38−If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
29+```
30+> :dns|request .1.2.3.4
31+```
3932
40−After you access your Ethereum address, if a point was sent to that address, you'll come to a page that has an `Incoming Transfers` header, under which is a graphic. Click the `Details ->` link under that graphic.
33+`:dns`, running locally, will make an HTTP request to that IP address on port 80 to confirm that it is itself available at that IP and port. If that fails, you'll receive a `%bail-early` message in `:chat-cli`; this request will retry a few times. If the self-check is successful, the request is relayed to `~zod`, and you'll receive a message saying, `request for DNS sent to ~zod`. Once `~zod` has acknowledged receipt of the request, your local `:dns` app will send a `:chat-cli` message saying `awaiting response from ~zod`.
4134
42−Now you'll be on the management page of your point. The transfer isn't completed yet, so click `Accept incoming transfer`. Then check both boxes and and click their associated `Sign Transaction` and `Send Transaction` buttons.
35+The request will be picked up shortly, and the `ship.arvo.network` DNS record will be set to the given IP address. Once that's set up, `~zod` will be notified and `~zod` will, in turn, notify your ship. That ship will now try to verify that it can reach itself on `ship.arvo.network` over port 80. If it can't, it'll send a message saying, `unable to access via ship.arvo.network`. If it can, it will configure itself with that domain and say `confirmed access via ship.arvo.network`.
4336
44−If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
37+Great! You're set up now. Try accessing your `ship.arvo.network` in your browser to use Landscape; we recommend Chrome or Brave.
4538
46−### Set your networking keys
39+### Galaxies
4740
48−If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
41+Galaxies are already required to have separate DNS entry at galaxy.urbit.org. There's no automated process for getting that binding, so if you're a galaxy-holder, get in touch with us at support@urbit.org.
4942
50−Click the link that says `Set network keys`. The field presented in the resulting page expects a 32-byte hexadecimal string. If it's filled already, no action is required. If it is empty, you will need to generate such a string. You can generate this data any way you please, but in the terminal on MacOS or Linux, you can write
43+There is a command for galaxies that will try to re-use their already-necessary Ames DNS entry for HTTPS:
5144
52−```sh
53−hexdump -n 32 -e '4/4 "%08X"' /dev/random
45+```
46+> :dns|auto
5447```
5548
56−and use the result.
49+This will make HTTP-requests to self-check availability over `galaxy.$AMES-DOMAIN` (currently galaxy.urbit.org), where `galaxy` is the galaxy's name minus the `~`.
5750
58−It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
51+Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, Chat messages, and so on.
5952
60−### Generate your keyfile
53+### More information
6154
62−From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
63−Click `Generate ->`, which will download a keyfile onto your machine.
55+Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:chat-cli` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
6456
65−With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/install.md).
57+The built-in logic for listening on port 80 is similar. Urbit tries to bind port 80; if it cannot, it tries 8080, then increments until it can bind a port. Port 80 is available to unprivileged process on recent version of macOS. Otherwise, the process needs to either be run as root, or be given special permission (CAP\_NET_BIND on Linux).
6658
67−## Using your ship {#urbit-administration}
6859
6960Your urbit (also called your _ship_) is a persistent Unix process that you mainly control from the console.
7061
@@ -201,7 +192,7 @@ moon: ~faswep-navred-sampel-palnet
201192
202193`<keyfile>` will be at `path/to/sampel-palnet/.urb/put/moon.key` and does not need editing to be used with the `-k` option.
203194
204−You can use the resulting output in the same installation flow from the [Installing Urbit](@/install.md) guide, following the same scheme as for booting a planet. That scheme is:
195+You can use the resulting output in the same installation flow from the [Installing Urbit](@/using/install.md) guide, following the same scheme as for booting a planet. That scheme is:
205196
206197```sh
207198$ ./urbit -w <moonname> -G <key> -c <piername>
@@ -238,82 +229,6 @@ Because Urbit networking is stateful we call this a _continuity breach_. Everyth
238229
239230When this happens, back up any files you'd like to save, shut down your urbit, and recreate it (as if you were starting for the first time).
240231
241−## Creating a comet {#creating-a-comet}
242−
243−**Comets** are urbits whose names are 128-bits or 16 syllables, such as:
244−
245−`~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`
246−
247−Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
248−
249−### Booting a comet
250−
251−To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
252−
253−```sh
254−$ ./urbit -c mycomet
255−```
256−
257−This will take a few minutes and will spin out a bunch of boot messages. Toward the end, you'll see something like:
258−
259−```
260−ames: on localhost, UDP 31337.
261−http: live (insecure, public) on 8080
262−http: live ("secure", public) on 8443
263−http: live (insecure, loopback) on 12321
264−~dasres_marzod:dojo>
265−```
266−
267−## DNS proxying {#dns-proxying}
268−
269−We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
270−
271−Stars and planets follow the same process DNS proxying process, and galaxies have their own requirements. Moons and comets are not supported.
272−
273−### Planets and Stars
274−
275−For a planet or star's DNS proxying request to be made and fulfilled, they must be hosting their ship someplace with a public IP address, and its HTTP server must be listening on port 80.
276−
277−To get `ship.arvo.network` on a planet or star, you must set up DNS routing with its parent ship by starting the `:dns` app.
278−
279−To do so, simply run this command in your ship's Dojo:
280−
281−```
282−> :dns|request
283−```
284−
285−You'll then be prompted to enter the public IP address of your ship. You can also pass the IP address as an argument, using the .0.0.0.0 (`@if`) syntax. For example:
286−
287−```
288−> :dns|request .1.2.3.4
289−```
290−
291−`:dns`, running locally, will make an HTTP request to that IP address on port 80 to confirm that it is itself available at that IP and port. If that fails, you'll receive a `%bail-early` message in `:chat-cli`; this request will retry a few times. If the self-check is successful, the request is relayed to `~zod`, and you'll receive a message saying, `request for DNS sent to ~zod`. Once `~zod` has acknowledged receipt of the request, your local `:dns` app will send a `:chat-cli` message saying `awaiting response from ~zod`.
292−
293−The request will be picked up shortly, and the `ship.arvo.network` DNS record will be set to the given IP address. Once that's set up, `~zod` will be notified and `~zod` will, in turn, notify your ship. That ship will now try to verify that it can reach itself on `ship.arvo.network` over port 80. If it can't, it'll send a message saying, `unable to access via ship.arvo.network`. If it can, it will configure itself with that domain and say `confirmed access via ship.arvo.network`.
294−
295−Great! You're set up now. Try accessing your `ship.arvo.network` in your browser to use Landscape; we recommend Chrome or Brave.
296−
297−### Galaxies
298−
299−Galaxies are already required to have separate DNS entry at galaxy.urbit.org. There's no automated process for getting that binding, so if you're a galaxy-holder, get in touch with us at support@urbit.org.
300−
301−There is a command for galaxies that will try to re-use their already-necessary Ames DNS entry for HTTPS:
302−
303−```
304−> :dns|auto
305−```
306−
307−This will make HTTP-requests to self-check availability over `galaxy.$AMES-DOMAIN` (currently galaxy.urbit.org), where `galaxy` is the galaxy's name minus the `~`.
308−
309−Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, Chat messages, and so on.
310−
311−### More information
312−
313−Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:chat-cli` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
314−
315−The built-in logic for listening on port 80 is similar. Urbit tries to bind port 80; if it cannot, it tries 8080, then increments until it can bind a port. Port 80 is available to unprivileged process on recent version of macOS. Otherwise, the process needs to either be run as root, or be given special permission (CAP\_NET_BIND on Linux).
316−
317232## Messaging {#messaging}
318233
319234Let’s get started using the `:chat-cli` application, also known more simply as _Chat_. It's the simplest way to talk to people using the command line interface.
content/what-is-urbit.mddeleted−10
@@ -1,10 +0,0 @@
1−+++
2−title = "What is Urbit?"
3−template = "page_indiced.html"
4−+++
5−
6−## Introduction {#introduction}
7−
8−## Interface {#interface}
9−
10−## Infrastructure {#infrastructure}
templates/index.html+5−14
@@ -53,16 +53,8 @@ content: " ↗"; -->
5353</section>
5454
5555<section class="full c2-7-md c3-7-lg mt6">
56− <h1 class="mb3">Understand Urbit</h1>
57− <p class="lh-copy mt1 mb4">
58− For a quick explanation of what Urbit is and how Urbit works, see the
59− <a class="b--black bb" href="/understanding-urbit">
60− introduction
61− </a>. If you're more technical, feel free to skip ahead to the
62− <a class="b--black bb" href="/understanding-urbit/technical-overview">
63− technical overview.
64− </a>
65− </p>
56+ <h1 class="mb3">Understanding Urbit</h1>
57+ <p class="lh-copy mt1">This sequence of posts will give you a high-level overview of Urbit. They take about <code class="pv1 bg-gray4">~12m</code> to read.</p>
6658 <ul class="list">
6759 <li class="mt3">
6860 <a class="b--black bb" href="/understanding-urbit/">Introduction</a>
@@ -100,9 +92,8 @@ content: " ↗"; -->
10092
10193<section class="full c2-7-md c3-7-lg mv6">
10294 <h1 class="mb3">Follow Us</h1>
103− <p class="lh-copy mt1 mb4">
104− Urbit is actively being built, explored, and experimented with. To
105− follow our progress you can:
95+ <p class="lh-copy mt1 mb4">Urbit is actively being built, explored, and experimented with.
96+ To follow our progress you can:
10697 </p>
10798 <ul class="list">
10899 <li class="mt2">
@@ -117,7 +108,7 @@ content: " ↗"; -->
117108 </li>
118109 </ul>
119110 <p class="lh-copy">
120− or boot Urbit and join <code class="table dt bg-gray4">~dopzod/urbit-help</code>
111+ or boot Urbit and join <code class="dt bg-gray4">~dopzod/urbit-help</code>
121112 </p>
122113</section>
123114
templates/list.htmlnew file+36
@@ -0,0 +1,36 @@
1+{% extends "base.html" %}
2+{% block title %} {{ section.title }} {% endblock title %}
3+{% block content %}
4+<!-- header -->
5+<nav class="mt4 full fourth-1-lg mb3 mb0-m mb0-l mb0-xl">
6+ <a class="gray3" href="/">Urbit</a>
7+ <span class="gray3"> / </span>
8+ <a href="/{{ section.components[0] }}{% if section.components[2] %}/{{ section.components[1] }}{% endif %}">
9+ {{ section.title }}
10+ </a>
11+ {% include "partials/navigation-search.html" %}
12+</nav>
13+<!-- content -->
14+<article class="mt4 mb7 c1-12 c4-12-lg">
15+ <ul class="posts">
16+ {% set posts = get_section(path=section.relative_path) %}
17+ {% for page in posts.pages %}
18+ <li class="mb4">
19+ <h2 class="f4 fw4 mt0 mb0"><a class="bb-0" href="{{ page.permalink }}">{{ page.title }}</a></h2>
20+ <p class="mt0">{{ page.description }}</p>
21+ <span class="mono f5">
22+ {% if page.extra.ship %}<address class="mono f5 ml2">{{ page.extra.ship }}</address> {% endif %}
23+ </span>
24+ </li>
25+ {% endfor %}
26+ {% for s in posts.subsections %}
27+ {% set subsection = get_section(path=s) %}
28+ <li class="mb4">
29+ <h2 class="f4 fw4 mt0 mb0"><a class="bb-0" href="{{ subsection.permalink }}">{{ subsection.title }}</a></h2>
30+ <p class="mt0">{{ subsection.description }}</p>
31+ </li>
32+ {% endfor %}
33+ </ul>
34+</article>
35+{% include "partials/footer.html" %}
36+{% endblock content %}
templates/page.html+6−3
@@ -15,8 +15,11 @@
1515<nav class="mt4 full fourth-1-md fourth-1-lg mb3 mb0-m mb0-l mb0-xl">
1616 <a class="gray3" href="/">Urbit</a>
1717 <span class="gray3"> / </span>
18− <a href="/{{ page.components[0] }}">
18+ <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
19+ {% if page.components[1] %}{{ page.components[1] | capitalize }}
20+ {% else %}
1921 {{ page.components[0] | capitalize }}
22+ {% endif %}
2023 </a>
2124 {% include "partials/navigation-search.html" %}
2225</nav>
@@ -37,8 +40,8 @@
3740{% endif %}
3841
3942<article class="mt4 mb4 c1-12 c4-12-lg">
40− <h1>{{ page.title }}</h1>
41− {% if page.extra.author %}
43+ {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
44+ {% if page.extra.author %}
4245 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
4346 {% if page.extra.ship %}
4447 <address class="mono">{{ page.extra.ship }}</address>
templates/page_indiced.html+8−3
@@ -12,7 +12,8 @@
1212
1313<!-- header -->
1414<!-- content -->
15−{% if page.title %}
15+{% set lowercasetitle = page.title | lower %}
16+{% if section or lowercasetitle == page.components[0] %}
1617<nav class="mt4 pb4 fixed-xl full fourth-1-md fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
1718 <a class="gray3" href="/">Urbit</a>
1819 <span class="gray3"> / </span>
@@ -26,8 +27,11 @@
2627<nav class="mt4 fixed-xl full fourth-1-md fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
2728 <a class="gray3" href="/">Urbit</a>
2829 <span class="gray3"> / </span>
29− <a href="/{{ page.components[0] }}">
30− {{ page.title }}
30+ <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
31+ {% if page.components[2] %}{{ page.components[1] | capitalize }}
32+ {% else %}
33+ {{ page.components[0] | capitalize }}
34+ {% endif %}
3135 </a>
3236
3337 {% include "partials/navigation-search.html" %}
@@ -47,6 +51,7 @@
4751{% endfor %}
4852</nav>
4953 <article class="mt4 mb6 c1-12 c5-10-md c4-10-lg">
54+ {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
5055 {% if page.extra.author %}
5156 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
5257 {% if page.extra.ship %}
templates/partials/footer.html+18−24
@@ -1,55 +1,49 @@
11<footer class="full-bleed mt4 grid12 bg-black white full pb6">
22 <section class="full grid12 mb4">
33 <nav class="c3-5-md c3-5-lg half-1 mt5">
4− <h3 class="mt0 mb0 pt0 pb0">Understanding Urbit</h3 class="mt0 mb0 pt0 pb0">
4+ <h3 class="mt0 mb0 pt0 pb0">Understanding Urbit</h3>
55 <li class="mt2"><a href="/understanding-urbit">Introduction</a></li>
66 <li class="mt2"><a href="/understanding-urbit/urbit-id">Urbit ID</a></li>
77 <li class="mt2"><a href="/understanding-urbit/technical-overview">Technical Overview</a></li>
88 <li class="mt2"><a href="/understanding-urbit/project-history">Project Status + History</a></li>
99 </nav>
10+
1011 <nav class="c5-7-md c5-7-lg half-2 mt5">
11− <h3 class="mt0 mb0 pt0 pb0">Using Urbit</h3 class="mt0 mb0 pt0 pb0">
12− <li class="mt2"><a href="/contributing">How can I contribute?</a></li>
13− <li class="mt2"><a href="/operations">Using Bridge and Ships</a></li>
14− <li class="mt2"><a href="/contributing#galaxies-and-stars">Operating Galaxies and Stars</a></li>
15− <li class="mt2"><a href="/contributing#governance">Governance</a></li>
12+ <h3 class="mt0 mb0 pt0 pb0">Learn more</h3>
13+ <li class="mt2"><a href="/essays">Essays</a></li>
14+ <li class="mt2"><a href="/updates">Updates</a></li>
15+ <li class="mt2"><a href="/media">Media</a></li>
16+ <li class="mt2"><a href="/faq">FAQ</a></li>
1617 </nav>
1718
1819 <nav class="c7-9-md c7-9-lg half-1 mt5">
19− <h3 class="mt0 mb0 pt0 pb0">Install Urbit</h3 class="mt0 mb0 pt0 pb0">
20− <li class="mt2"><a href="/install#id">Getting an Urbit ID</a></li>
21− <li class="mt2"><a href="/install#urbit">Install</a></li>
22− </nav>
20+ <h3 class="mt0 mb0 pt0 pb0">Using + Contributing</h3>
21+ <li class="mt2"><a href="/using/install">Install + Setup</a></li>
22+ <li class="mt2"><a href="/using/develop">Developer's Guide</a></li>
23+ <li class="mt2"><a href="/using/operations">Operations Manual</a></li>
24+ </nav>
2325 <nav class="c9-11-md c9-11-lg half-2 mt5">
24− <h3 class="mt0 mb0 pt0 pb0">Community</h3 class="mt0 mb0 pt0 pb0">
26+ <h3 class="mt0 mb0 pt0 pb0">Community</h3>
2527 <li class="mt2"><a href="https://groups.google.com/a/urbit.org/forum/#!forum/dev">urbit-dev</a></li>
2628 <li class="mt2"><a href="/hoonschool">Hoon School ↗</a></li>
2729 <li class="mt2"><a href="https://www.meetup.com/urbit-sf/">Meetups</a></li>
30+ <li class="mt2"><a href="/governance">Governance</a></li>
2831 </nav>
2932 </section>
3033 <section class="full-bleed full grid12">
3134 <nav class="c3-5-md c3-5-lg half-1 mt4 mb5">
32− <h3 class="mt0 mb0 pt0 pb0">Learn More</h3 class="mt0 mb0 pt0 pb0">
33− <li class="mt2"><a href="/essays">Essays</a></li>
34− <li class="mt2"><a href="/updates">Updates</a></li>
35− <li class="mt2"><a href="/media">Media</a></li>
36− <li class="mt2"><a href="/faq">FAQ</a></li>
37− </nav>
38− <nav class="c5-7-md c5-7-lg half-2 mt4 mb5">
39− <h3 class="mt0 mb0 pt0 pb0">Developers</h3 class="mt0 mb0 pt0 pb0">
35+ <h3 class="mt0 mb0 pt0 pb0">Developers</h3>
4036 <li class="mt2"><a href="/docs">Documentation</a></li>
41− <li class="mt2"><a href="/develop#core">Core Development</a></li>
42− <li class="mt2"><a href="/develop#application">Application Development</a></li>
4337 <li class="mt2"><a href="https://grants.urbit.org">Grants</a></li>
4438 <li class="mt2"><a href="/bounties">Security Bounties</a></li>
4539 </nav>
46− <nav class="c7-9-md c7-9-lg half-1 mt4 mb5">
40+ <nav class="c5-7-md c5-7-lg half-2 mt4 mb5">
4741 <h2 class="mb3 mt0">About Urbit.org</h2>
4842 <li class="mt2"><a href="/tos">Terms of Service</a></li>
4943 <li class="mt2"><a href="/privacy#scope">Privacy Policy</a></li>
5044 </nav>
51− <nav class="c9-11-md c9-11-lg half-2 mt4 mb5">
52− <h2 class="mb3">Need Help?</h2>
45+ <nav class="c7-9-md c7-9-lg half-1 mt4 mb5">
46+ <h2 class="mb3">Need help?</h2>
5347 <li class="mt2"><a href="mailto:support@urbit.org">support@urbit.org ↗</a></li>
5448 <li class="mt2"><a href="https://discord.gg/bkEX6EU">Discord</a></li>
5549 <li class="mt2"><a href="https://github.com/urbit">Github</a></li>
templates/understanding-urbit/list.html+3
@@ -33,6 +33,7 @@
3333 <img src="../assets/intro/social-software.svg" />
3434 <figcaption class="measure home tl mt5">
3535 Your Urbit is a purpose built tool for your own social software, not MEGACORP social networking.
36+ <br /><br />
3637 On Urbit, you run (or build) your own software to connect and communicate with your friends and family.
3738 </figcaption>
3839 </figure>
@@ -41,6 +42,7 @@
4142 <img src="../assets/intro/rock.svg" />
4243 <figcaption class="measure home tl mt5">
4344 Your Urbit is a permanent, private archive.
45+ <br /><br />
4446 Your Urbit can store all your data and digital assets safely, privately, forever.
4547 </figcaption>
4648 </figure>
@@ -49,6 +51,7 @@
4951 <img src="../assets/intro/yours-forever.svg" />
5052 <figcaption class="measure home tl mt5">
5153 You own your Urbit like you own Bitcoin.
54+ <br /><br />
5255 Each Urbit is a piece of a new network that’s owned and controlled by its users.
5356 </figcaption>
5457 </figure>