on master help sign in
Merge branch 'gc/feb-spotlight' of https://github.com/urbit/urbit.org into gc/feb-spotlight
commit687e5499b6919889877fe57d7cb120a3c2125cd8 authorGordon <gordon@hey.com> dateFri 3 Feb 2023, 11:14 (4 years ago) parent8dbf9fefc0b216
31 files changed+998−345
components/ContentArea.js+1−1 components/DocsSidebar.js+1−1 components/Header.js+2−2 content/applications/~bacwyl-samweg/templeochess.md+3−3 content/applications/~larryx-woldyr/urbhue.md+17 content/applications/~marnec-dozzod-marzod/groups.md → content/applications/~sogryp-dister-dozzod-marzod/groups.md+4−2 content/applications/~sogryp-dister-dozzod-marzod/talk.md+14 content/communities/urbit-denver.md+2 content/getting-started/_index.md+19−16 content/getting-started/cli.md+14−13 content/getting-started/cloud-hosting.md+468 content/getting-started/get-planet.md → content/getting-started/get-id.md+29−38 content/getting-started/getting-around.md+24−44 content/getting-started/home-servers.md+27 content/getting-started/hosted.md+19−16 content/getting-started/hosting-providers.md+26 content/getting-started/installing-applications.md+16−16 content/getting-started/interfaces.md+10 content/getting-started/joining-groups.md+18−14 content/getting-started/self-host.md+33 content/grants/2022/app-store.md+9−7 content/grants/2022/filesharer.md+1 content/grants/2022/gnosis-safe.md+1−1 content/grants/2022/slaw-scot-jets.md+2−2 content/grants/2023/generator-doccords.md+46 content/grants/2023/school-support-23q1.md+1−1 content/groups/~rondev/group-discovery.md−10 pages/decentralized-discord.js−5 pages/getting-started/[[...slug]].js+181−150 pages/index.js+1−1 vercel.json+9−2
components/ContentArea.js+1−1
@@ -66,7 +66,7 @@ export default function ContentArea(props) {
6666 <div className="mb-16">
6767 <h2 className="mt-24">{props.title}</h2>
6868 {props?.description && (
69− <p className="text-wall-400 font-bold text-xl">
69+ <p className="text-wall-400 font-regular mt-2 text-xl">
7070 {props.description}
7171 </p>
7272 )}
components/DocsSidebar.js+1−1
@@ -9,7 +9,7 @@ export default function Sidebar(props) {
99 <div className="hidden md:flex flex-col w-96 bg-wall-100 max-h-screen h-screen">
1010 <header className="flex shrink-0 justify-between items-center pl-6 pt-12 mt-5 pb-8">
1111 <Link href="/" passHref>
12− <a className="type-ui text-wall-500">Urbit</a>
12+ <a className="font-semibold antialiased text-lg text-wall-500">Urbit</a>
1313 </Link>
1414 </header>
1515 <div className="overflow-y-auto p-6 pt-16">
components/Header.js+2−2
@@ -8,7 +8,7 @@ function ActiveLink({ children, href, className, currentPath }) {
88 const firstCrumb = currentPath.split("/")[1];
99
1010 const activeClassName = classnames({
11− "text-wall-600": "/" + firstCrumb === href,
11+ "text-wall-900": "/" + firstCrumb === href,
1212 "text-wall-500": "/" + firstCrumb !== href,
1313 });
1414
@@ -48,7 +48,7 @@ export default function Header(props) {
4848 <nav className="items-center hidden md:flex">
4949 <ActiveLink
5050 currentPath={currentPath}
51− className="mr-5 text-green-400 type-ui button-text"
51+ className="mr-5 type-ui"
5252 href="/getting-started"
5353 >
5454 Get Started
content/applications/~bacwyl-samweg/templeochess.md+3−3
@@ -1,9 +1,9 @@
11+++
22title = "Temple O Chess"
3−shortcode = "~ropmer-nosnux-bacwyl-samweg/templeochess"
3+shortcode = "~bacwyl-samweg/templeochess"
44license = "MIT"
5−image = "https://templeos.org/Templeos-header.png"
6−bgColor = "#11FFFF"
5+image = "https://0x0.st/oFuT.png"
6+bgColor = "#FFFF55"
77developer = "~bacwyl-samweg"
88website = "https://youtu.be/Raej8C2yIEc"
99+++
content/applications/~larryx-woldyr/urbhue.mdnew file+17
@@ -0,0 +1,17 @@
1++++
2+title = "Hue"
3+shortcode = "~larryx-woldyr/urbhue"
4+license = "MIT"
5+image = "https://i.imgur.com/czmkmoK.png"
6+bgColor = "#F0B43D"
7+developer = "~larryx-woldyr"
8+website = "https://ajlamarc.com"
9++++
10+
11+In this prototype, Philips Hue Lightbulbs and groups can be controlled from a standard Urbit application by using the Hue Remote API.
12+
13+History and logging of the bulb are collected to provoke consideration of what should be controlled and tracked by the people living in a smart home.
14+
15+This app will hopefully inspire people to think of the potential utility of Urbit in the smart home, inspire non-Urbit users to think of Urbit in non-community driven scenarios, and be a small step forward in understanding the affordances for Urbit in the home.
16+
17+For more information on `%urbhue`, check out our Urbit group: `~pilwyc-fastec/communal-computing-for-urbit`
content/applications/~marnec-dozzod-marzod/groups.md → content/applications/~sogryp-dister-dozzod-marzod/groups.mdrenamed+4−2
@@ -1,6 +1,6 @@
11+++
22title = "Groups"
3−shortcode = "~marnec-dozzod-marzod/groups"
3+shortcode = "~sogryp-dister-dozzod-dozzod/groups"
44license = "MIT"
55image = "https://bootstrap.urbit.org/icon-groups.svg"
66bgColor = "#EFF0F4"
@@ -9,4 +9,6 @@ website = "https://github.com/tloncorp/landscape-apps"
99description = "Groups is a decentralized platform that integrates with Talk, Notebook, and Gallery for a full, communal suite of tools."
1010+++
1111
12−Start, host, and cultivate communities. Own your communications, organize your resources, and share documents. Groups is a decentralized platform that integrates with Talk, Notebook, and Gallery for a full, communal suite of tools.
12+Start, host, and cultivate communities. Own your communications, organize your resources, and share documents. Groups is a decentralized platform that integrates with Talk, Notebook, and Gallery for a full, communal suite of tools.
13+
14+![](https://storage.googleapis.com/media.urbit.org/site/ecosystem/applications/groups-screenshot.png)
content/applications/~sogryp-dister-dozzod-marzod/talk.mdnew file+14
@@ -0,0 +1,14 @@
1++++
2+title = "Talk"
3+shortcode = "~sogryp-dister-dozzod-dozzod/talk"
4+license = "MIT"
5+image = "https://bootstrap.urbit.org/icon-talk.svg"
6+bgColor = "#2B5DC0"
7+developer = "Tlon"
8+website = "https://github.com/tloncorp/landscape-apps"
9+description = "Talk is a decentralized chat app that integrates with Groups, Notebook, and Gallery for a full, communal suite of tools."
10++++
11+
12+Send encrypted direct messages to one or many friends. Talk is a simple chat tool for catching up, getting work done, and everything in between.
13+
14+![](https://storage.googleapis.com/media.urbit.org/site/ecosystem/applications/talk-screenshot.png)
content/communities/urbit-denver.md+2
@@ -15,3 +15,5 @@ And for those wondering what the heck is Urbit? Urbit is an ambitious reimaginin
1515~nospex-larsut/mile-high-mars
1616
1717[Meetup page](https://www.meetup.com/mile-high-mars-denver-urbit-group/)
18+
19+[Organizer's Twitter](https://twitter.com/OnAPersonaLevel)
content/getting-started/_index.md+19−16
@@ -1,25 +1,28 @@
11+++
2−title = "Overview"
2+title = "Introduction"
33weight = 0
44description = ""
55+++
66
7−### Introduction
7+The goal of Urbit is to make peer-to-peer software easy for developers to write
8+and for users to run on their own. The code is [completely open
9+source](https://github.com/urbit), [actively
10+maintained](https://github.com/urbit/urbit/graphs/code-frequency), supported by
11+a [growing ecosystem](https://urbit.org/ecosystem), and [used daily by
12+thousands](https://network.urbit.org).
813
9−Nothing about building a new OS from scratch has been easy. Or creating an identity system that adequately replaces the IP address.
14+Urbit consists of two high-level components: an operating
15+system (Urbit OS) and an identity system (Urbit ID). Urbit OS enables its user to communicate directly with others using Urbit OS via their Urbit ID's. You can think of these like phone numbers &mdash; meaningless
16+but memorizable, and likely to identify the same person reliably through time.
1017
11−Getting on Urbit isn't always easy, either. The onboarding process hasn't been optimized by product managers in search of maximal profit. There's no checkbox for your interests—you have to discover them yourself.
18+Using Urbit requires having access to a running **ship**: an Urbit OS running
19+with a supplied Urbit ID. You can run Urbit yourself if you're comfortable at a
20+command-line or willing to learn. Otherwise you should probably use a hosting
21+provider &mdash; that is, someone that provides you with an Urbit as a service.
1222
13−But we like to think this hard work is exactly what makes Urbit special. **Consider yourself warned.**
23+## Next steps
1424
15−### Why Urbit?
16−
17−**As a user**, you can explore the people, community, and sheer novelty of the Urbit ecosystem while owning your entire experience. Your data, your messages, your apps.
18−
19−**As a developer**, you can now build apps, a protocol for a whole suite of apps, or an entire online subculture, and distribute your work directly to your users' operating systems. No middlemen, no MEGACORPs, and no lock-in.
20−
21−Someone once said, "All the smart people I know disappear into Urbit." If you're smart, you will too — not just installing and running Urbit, but taking the first step toward deploying your Final Computer.
22−
23−### Launch into Urbit
24−
25−Choose how you want to disappear into Urbit.
25+- [Run Urbit yourself](/getting-started/self-host) or select a [hosting provider](/getting-started/hosted)
26+- Meet friendly people by [joining groups](/getting-started/joining-groups)
27+- [Install apps](/getting-started/installing-applications) to experiment with
28+- Explore [interfaces](/getting-started/interfaces) for Urbit
content/getting-started/cli.md+14−13
@@ -1,17 +1,18 @@
11+++
2−title = "Command line app"
3−weight = 2
4−description = "Installation instructions for power users."
2+title = "Command-line install"
3+weight = 3
4+description = "Installation instructions for technical users"
5+tag = "selfhost"
56+++
67
7−If you're a power user, you can run the Urbit runtime (Vere) using the command
8−line. This can be run on your local machine or a server in the cloud, we
9−just cover the local case here. The runtime is what interprets the Urbit kernel
10−code (Arvo) into commands your specific machine (macOS or Linux) understands.
8+This guide covers running the Urbit runtime (Vere) using the command line. This
9+can be run on your local machine or a server in the cloud, we just cover the
10+local case here. The runtime is what interprets the Urbit kernel code (Arvo)
11+into commands your specific machine (macOS or Linux) understands.
1112
1213Note there is a much more comprehensive [cloud hosting
13−guide](https://operators.urbit.org/manual/running/hosting) which walks through
14−setting up Urbit on a [Digital Ocean](https://www.digitalocean.com/) VPS.
14+guide](/getting-started/cloud-hosting) which walks through setting up Urbit on a
15+[Digital Ocean](https://www.digitalocean.com/) VPS.
1516
1617### 1. System Requirements {% #about-swap-space %}
1718
@@ -98,8 +99,8 @@ and planets.
9899 unlimited number of comets, planets are more scarce (preventing spamming,
99100 among other things). This scarcity means they usually aren't free (though
100101 sometimes nice people give them away). This guide will assume you've already
101− acquired a planet. If you haven't, you can refer to the ["Get a planet"
102− guide](https://urbit.org/getting-started/get-planet) before continuing.
102+ acquired a planet. If you haven't, you can refer to the ["Get an Urbit ID"
103+ guide](/getting-started/get-id) before continuing.
103104
104105Follow the instructions for your case:
105106
@@ -283,7 +284,7 @@ You can do this with the following command:
283284Then `.run` should work as expected and future runtime upgrades can be done via
284285`next`.
285286
286−### Next steps
287+## Next steps
287288
288289Learn how to [get around your
289−urbit](https://urbit.org/getting-started/getting-around).
290+urbit](/getting-started/getting-around).
content/getting-started/cloud-hosting.mdnew file+468
@@ -0,0 +1,468 @@
1++++
2+title = "Cloud hosting"
3+weight = 4
4+description = "How to host your ship in the cloud so you can access it from any device"
5+tag = "selfhost"
6++++
7+
8+The goal of this guide is to have clear and easy to follow best practices for
9+deploying an Urbit node to a server you control in the cloud. Deploying in the
10+cloud allows you to access your Urbit from any device.
11+
12+Most Urbit users start out running their ship locally on one machine in order to
13+play with it, but this means when your machine is offline your Urbit node is
14+offline too (and can't get updates). You can also only access your Urbit from
15+that one machine.
16+
17+This guide uses Digital Ocean as the cloud provider, but others can be used. If
18+using another provider, the setup script provided and other server configuration
19+instructions may need to be modified or done manually.
20+
21+## 1. Create a Droplet
22+
23+Create an account on [Digital Ocean](https://digitalocean.com). Once you make an
24+account, choose "Deploy a virtual machine".
25+
26+You should see the page below where you can create your Droplet, aka Virtual Machine:
27+
28+![do screenshot](https://media.urbit.org/operators/manual/running/hosting/do-screenshot.png)
29+
30+Fill out the options like so:
31+
32+#### Image
33+
34+Ubuntu 22.04 x64
35+
36+#### Plan
37+
38+- Shared CPU: Basic
39+- CPU options: Regular with SSD
40+- 2GB / 1 CPU ($12/mo)
41+
42+You can choose a more powerful option if you'd like but the $12 option should be
43+sufficient. Note Urbit needs 2GB of memory; it's possible to choose a cheaper
44+option and run it with less memory by using swap but it will impact performance.
45+
46+#### Add block storage
47+
48+The $12 plan includes 50GB which should be sufficient for quite some time, so
49+you can skip this.
50+
51+#### Datacenter region
52+
53+Choose the region closest to you.
54+
55+#### VPC Network
56+
57+Leave this as default.
58+
59+#### Authentication
60+
61+In the "Authentication" field, select "SSH keys" and hit "New SSH Key". Run the
62+following command in the terminal on your local machine, replacing
63+`riclen-tinlyr` with the name of your ship (sans the leading `~`):
64+
65+```bash {% copy=true %}
66+SHIP="riclen-tinlyr" bash -c 'ssh-keygen -q -N "" -C $SHIP -f ~/.ssh/$SHIP && cat ~/.ssh/$SHIP.pub'
67+```
68+
69+It should spit out a long string of letters and numbers beginning with `ssh-rsa`
70+and ending with your ship name. Copy the whole thing and paste it into the "SSH
71+key content" field on Digital Ocean. In the "Name" field, enter your ship name.
72+
73+#### Additional options
74+
75+Click "User data" and paste the script below into the field provided. This
76+will automatically configure the server and install necessary software.
77+
78+```bash {% copy=true %}
79+#!/bin/bash
80+
81+# configure swap
82+fallocate -l 2G /swapfile
83+chmod 600 /swapfile
84+mkswap /swapfile
85+swapon /swapfile
86+echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
87+
88+# setup firewall
89+ufw allow OpenSSH
90+ufw allow www
91+ufw allow https
92+ufw allow 34543/udp
93+ufw enable
94+
95+# create and configure user
96+useradd -s /bin/bash -d /home/urbit -m -G sudo urbit
97+passwd -d urbit
98+echo "urbit ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
99+
100+# configure ssh keys for user
101+mkdir -p /home/urbit/.ssh
102+chmod 700 /home/urbit/.ssh
103+cp /root/.ssh/authorized_keys /home/urbit/.ssh/authorized_keys
104+chmod 600 /home/urbit/.ssh/authorized_keys
105+chown -R urbit:urbit /home/urbit/.ssh
106+
107+# configure sshd
108+mkdir -p /etc/ssh/sshd_config.d
109+cat > /etc/ssh/sshd_config.d/override.conf <<EOF
110+PermitRootLogin no
111+PubkeyAuthentication yes
112+PasswordAuthentication no
113+EOF
114+
115+# fetch and extract urbit binary
116+curl -L https://urbit.org/install/linux-x86_64/latest | tar xzk --transform='s/.*/urbit/g' -C /home/urbit/
117+chown urbit:urbit /home/urbit/urbit
118+
119+# install tmux
120+apt -y update
121+apt install -y tmux
122+
123+# reboot
124+systemctl reboot
125+```
126+
127+#### How many Droplets?
128+
129+1
130+
131+#### Choose a hostname
132+
133+This will be the name the server calls itself locally, you can put in whatever
134+you want. Your planet name is a good choice.
135+
136+#### Add tags
137+
138+Leave empty.
139+
140+#### Select project
141+
142+Leave as the default.
143+
144+#### Create Droplet
145+
146+Hit this button to create the droplet.
147+
148+## 2. Prepare for upload
149+
150+{% callout %}
151+
152+**Note**
153+
154+This step is necessary if you already have a ship running locally and want to
155+move it to the cloud. If you don't, you can skip this step.
156+
157+{% /callout %}
158+
159+In the Dojo, use either `"CTRL + D"` or `|exit` to shut down your ship.
160+
161+Archive your pier by running `tar cvzf riclen-tinlyr.tar.gz ~/path/to/your/pier`
162+(substitute your own ship name and pier location).
163+
164+## 3. Connect to the server
165+
166+To make connecting simple, you can add an alias to `~/.ssh/config` on your local
167+machine. Open `~/.ssh/config` in an editor (you may need to create it if the
168+file doesn't exist), and add the following to the bottom of the file (replacing
169+the ship name with your own and the IP address with that of your droplet):
170+
171+``` {% copy=true %}
172+Host riclen-tinlyr
173+ HostName 161.35.148.247
174+ User urbit
175+ IdentityFile ~/.ssh/riclen-tinlyr
176+ IdentitiesOnly yes
177+```
178+
179+{% tabs %}
180+
181+{% tab label="If you have an existing pier" %}
182+
183+
184+Copy the archived pier to the server with the following (substituting your ship
185+name and Host):
186+
187+```bash {% copy=true %}
188+scp riclen-tinlyr.tar.gz riclen-tinlyr:
189+```
190+
191+It may take a while to upload if your pier is large and/or your internet is
192+slow.
193+
194+{% /tab %}
195+
196+{% tab label="If you have a key file" %}
197+
198+If you have obtained a planet and want to boot it for the first time, you'll
199+need to upload its key file to the server. These instructions assume you've
200+received an invite. If you've got a planet by another method, you can also login
201+to [Bridge](https://bridge.urbit.org) and download the key file from there.
202+
203+If you've received a planet invite via email or a claim link like
204+`https://bridge.urbit.org/#labfur-batteg-dapnex-binsup-riclen-tinlyr`, open it
205+in a browser and you should see a page like the following:
206+
207+![claim planet screenshot](https://media.urbit.org/operators/manual/running/hosting/claim-planet.png)
208+
209+If you hit "Claim", it'll bring you here:
210+
211+![download passport
212+screenshot](https://media.urbit.org/operators/manual/running/hosting/download-passport.png)
213+
214+Hit "Download Backup (Passport)" and it'll have you download a file named like
215+`riclen-tinlyr-passport.zip`.
216+
217+Unzip the file with:
218+
219+```bash {% copy=true %}
220+unzip ~/path/to/download/folder/riclen-tinlyr-passport.zip
221+```
222+
223+It'll create a folder called `riclen-tinlyr-passport` which will contain three files:
224+
225+- `riclen-tinlyr-1.key`
226+- `riclen-tinlyr-Management Proxy.png`
227+- `riclen-tinlyr-Master Ticket.png`
228+
229+You can physically print out the two `.png` files and store them in a safe and
230+secure location. Importantly, you should ensure the *master ticket* (which will
231+look something like `~tarnes-pilryd-dassed-sogsul`) is securely and safely
232+stored. If anyone gains access to the master ticket they'll have ownership and
233+control of your Urbit ID, and if you lose it you'll irreversibly lose ownership
234+and control of your Urbit ID.
235+
236+The next screen on the claim page will ask you to re-enter the master ticket to
237+ensure you've recorded it accurately, and then the claim process is complete.
238+Once you've securely, physically backed up the master ticket and the `.png`
239+passports, it's a good idea to delete the `riclen-tinlyr-passport.zip` file and
240+the two `.png` files, so if someone gains access to your computer, your Urbit ID
241+will be safe.
242+
243+This will leave only the `riclen-tinlyr-1.key` file. The key file contains your
244+planet's private keys, which are necessary to boot it up for the first time.
245+You'll need to copy that file to the server with the following command (again,
246+replacing `riclen-tinlyr` with your own ship and Host):
247+
248+```bash {% copy=true %}
249+scp riclen-tinlyr-passport/riclen-tinlyr-1.key riclen-tinlyr:
250+```
251+
252+Note: you should keep the `riclen-tinlyr-1.key` until you've completed this
253+guide and your ship is booted to be sure it was copied successfully, but
254+afterwards you should also delete that file for security.
255+
256+{% /tab %}
257+
258+{% /tabs %}
259+
260+Once you've either uploaded your pier or uploaded your key file as the case may
261+be, you can connect to your server:
262+
263+```bash {% copy=true %}
264+ssh riclen-tinlyr
265+```
266+You'll be taken to the shell on your server.
267+
268+## 5. Boot your ship
269+
270+{% tabs %}
271+
272+{% tab label="If you have an existing pier" %}
273+
274+In the previous section you ssh'd into the server. In the same ssh session,
275+extract the pier archive you previously uploaded, then delete the archive:
276+
277+```bash {% copy=true %}
278+tar xvzf riclen-tinlyr.tar.gz && rm riclen-tinlyr.tar.gz
279+```
280+
281+You'll now have a folder called `riclen-tinlyr`, which is your pier. Urbit is
282+best run in a tmux or screen session so it's easy to keep it running when
283+you disconnect. In this case we'll use tmux, which has already been installed
284+by the setup script.
285+
286+Run tmux:
287+
288+```bash {% copy=true %}
289+tmux
290+```
291+
292+You should now be in tmux. First, dock your ship:
293+
294+```bash {% copy=true %}
295+./urbit dock riclen-tinlyr
296+```
297+
298+That will copy the `urbit` runtime inside the pier, so you can now delete the
299+separate binary:
300+
301+```bash {% copy=true %}
302+rm urbit
303+```
304+
305+{% /tab %}
306+
307+{% tab label="If you have a key file" %}
308+
309+In the previous section you ssh'd into the server. In the same ssh session,
310+start tmux:
311+
312+```bash {% copy=true}
313+tmux
314+```
315+
316+You should now be in tmux. Boot a new ship with the following command,
317+specifying the ship name and key file, as well as the Ames port that was
318+previously opened in the firewall by the setup script:
319+
320+```bash {% copy=true %}
321+./urbit -w riclen-tinlyr -k riclen-tinlyr-1.key -p 34543
322+```
323+
324+It may take several minutes to boot the new ship. Eventually, it'll take you to
325+the Dojo (Urbit's shell) and show a prompt like `~riclen-tinlyr:dojo>`. Once
326+booted, shut the ship down again by typing `|exit` in the Dojo. After it quits,
327+it should print something like "docked successfully", which means the binary has
328+been copied inside the pier. This means you can delete the separate binary:
329+
330+```bash {% copy=true %}
331+rm urbit
332+```
333+
334+The key file is only needed when you first boot the ship, so it's good practice
335+to delete it after first boot:
336+
337+```bash {% copy=true %}
338+rm riclen-tinlyr-1.key
339+```
340+
341+{% /tab %}
342+
343+{% /tabs %}
344+
345+Run the following to allow the runtime to bind ports 80 and 443:
346+
347+```bash {% copy=true %}
348+sudo setcap 'cap_net_bind_service=+ep' riclen-tinlyr/.run
349+```
350+
351+Now you can start your ship up with the following:
352+
353+```bash {% copy=true %}
354+./riclen-tinlyr/.run -p 34543
355+```
356+
357+After a few moments it'll show the Dojo prompt like `~riclen-tinlyr:dojo>`.
358+
359+## 6. Get a domain
360+
361+To make accessing the web interface convenient, you should request an
362+`arvo.network` domain name. To do so, run the following command in the Dojo,
363+replacing the IP address with your droplet's:
364+
365+``` {% copy=true %}
366+-dns-address [%if .161.35.148.247]
367+```
368+
369+This will request a subdomain of your ship like `riclen-tinlyr.arvo.network`.
370+
371+The domain should be registered almost instantly, but sometimes it takes a while
372+for it to propagate to other DNS servers. You might therefore see the following:
373+
374+```
375+> -dns-address [%if .161.35.148.247]
376+dns: request for DNS sent to ~deg
377+dns: awaiting response from ~deg
378+http: fail (13, 504): unknown node or service
379+http: fail (14, 504): unknown node or service
380+http: fail (15, 504): unknown node or service
381+http: fail (16, 504): unknown node or service
382+http: fail (17, 504): unknown node or service
383+dns: unable to access via riclen-tinlyr.arvo.network
384+XX confirm port 80
385+XX check via nslookup
386+0
387+```
388+
389+If that happens, wait five or ten minutes and then try again. You should
390+eventually see:
391+
392+```
393+> -dns-address [%if .161.35.148.247]
394+dns: request for DNS sent to ~deg
395+dns: awaiting response from ~deg
396+[%key iter=0 width=2.047]
397+[%key iter=1 width=2.047]
398+[%key iter=2 width=2.047]
399+[%key iter=3 width=2.047]
400+acme: requesting an https certificate for riclen-tinlyr.arvo.network
401+dns: confirmed access via riclen-tinlyr.arvo.network
402+0
403+acme: received https certificate for riclen-tinlyr.arvo.network
404+http: restarting servers to apply configuration
405+http: web interface live on https://localhost:443
406+http: web interface live on http://localhost:80
407+http: loopback live on http://localhost:12321
408+```
409+
410+That means the domain has been registered and an SSL certificate has been
411+installed, so you can access the web interface securely with HTTPS.
412+
413+## 7. Log in to Landscape
414+
415+In order to login to the web interface, you need to get the web login code. Run
416+the following in the Dojo:
417+
418+``` {% copy=true %}
419++code
420+```
421+
422+It'll spit out something like `ropnys-batwyd-nossyt-mapwet`. That's your web
423+login code, you can copy that and save it in a password manager or similar. Note
424+that the web login code is separate from the master ticket.
425+
426+The server configuration should now be complete, and you can access Landscape in
427+the browser. Navigate to the domain you configured previously, in this case
428+`riclen-tinlyr.arvo.network`. You should see the Landscape login screen:
429+
430+![landscape login screen](https://media.urbit.org/operators/manual/running/hosting/landscape-login.png)
431+
432+Enter the web login code and you'll be taken to your ship's homescreen. Your
433+ship is now running in the cloud, and you can access it from any device by
434+visiting its URL.
435+
436+## 8. Disconnect
437+
438+You can now disconnect from the tmux session by hitting `CTRL+b d` (that is, you
439+hit `CTRL+b`, release it, and then hit `d`). You'll be taken back to the
440+ordinary shell, but the ship will still be running in the background. If you
441+want to get back to the Dojo again, you can reattach the tmux session with:
442+
443+```bash {% copy=true %}
444+tmux a
445+```
446+
447+Finally, you can disconnect from the ssh session completely by hitting `CTRL+d`.
448+
449+## 9. Cleanup
450+
451+If you booted a new ship by uploading a key file, it's a good idea to now delete
452+the key file on your local machine.
453+
454+If you uploaded an existing pier, you should delete the old copy of both the
455+pier directory and the `.tar.gz` archive on your local machine. You might be
456+tempted to keep one of these as a backup, but note that **you must never again
457+boot the old copy on the live network**. Doing so will create unfixable
458+networking problems and require you to perform a factory reset through Bridge,
459+wiping your ship's data. We therefore don't recommend you keep duplicates of
460+your pier lying around.
461+
462+
463+## Next steps
464+
465+- Kep your Urbit runtime up-to-date to take advantage of the latest Landscape and Application over-the-air updates. See [Step #5 in the CLI guide](/getting-started/cli#5-runtime-upgrades) to update your runtime.
466+
467+- Learn how to [get around your
468+urbit](/getting-started/getting-around).
content/getting-started/get-planet.md → content/getting-started/get-id.mdrenamed+29−38
@@ -1,46 +1,45 @@
11+++
2−title = "Get a planet"
3−weight = 1
4−description = "How to acquire a planet, or an Urbit ID"
5−tag = "additional"
2+title = "Get an Urbit ID"
3+weight = 2
4+description = "How to acquire an Urbit ID"
5+tag = "selfhost"
66+++
77
8−### What's a planet?
8+### Types of ID
99
10−Planets are a type of [Urbit ID](/understanding-urbit/urbit-id) that is useful for providing individuals long-term access to the Urbit network.
10+There are [five different
11+types](https://operators.urbit.org/guides/which-id-should-i-buy) of Urbit ID, but here we'll just be discussing two types called comets and planets.
1112
12−### Where to get a planet
13+**Comets** are free, temporary identities that you can issue yourself and are best-suited for
14+short-term usage. **Planets** are permanent identities that are suitable for long-term use.
1315
14−There are a few ways to get your own planet:
16+![](https://storage.googleapis.com/media.urbit.org/site/getting-started/comet-planet.png)
1517
16−- Getting an invitation from a friend (or stranger)
17−- Purchasing a planet, including hosting, from a hosting provider
18−- Manually setting up and hosting a planet purchased from a third party marketplace
18+Planets have a unique, four syllable phonetic name and a [sigil](https://urbit.org/blog/creating-sigils), a visual representation of the name.
1919
20−### Hosting Providers {% #hosting-providers %}
2120
22−Hosting providers will often sell you a planet and run it for you. This option is very simple but will probably cost a regular fee.
2321
24−Urbit is designed to be portable. This means that if you sign up for hosting now but later want to leave your hosting provider and run your Urbit yourself, you should be able to work with them to obtain all of your data and boot your planet back up without losing anything.
22+### Where to get a planet
2523
26−Using hosting does mean that you're trusting your provider with your data, but so long as you have your planet, you'll always own your identity.
24+There are a few ways to get your own planet:
2725
28−Current hosting providers are:
26+- Receiving one from a friend
27+- Asking on Twitter (if you're lucky)
28+- Booting a comet and being friendly in [Urbit Community](https://urbit.org/groups/~bitbet-bolbel/urbit-community)
29+- Purchasing one from a marketplace
2930
30−- [UrbitHost](https://urbithost.com)
31−- [escape pod store](https://www.escapepod.store/)
32−- [Third Earth](https://third.earth/)
33−- [Tlon Corporation](https://tlon.io)
31+This guide will cover the last case and what to do after receiving one.
3432
3533### Buying a planet
3634
37−There are many places to buy a planet using either cryptocurrency or fiat.
35+There are many places to buy a planet using either crypto or fiat currency.
3836
39−Layer 1 planets are the most available through marketplaces, however they can be expensive due to Ethereum gas fees. You will need an Ethereum wallet such as Metamask to purchase these planets, and will later need to sign in to Bridge with your wallet to configure your planet.
37+Layer 1 planets are the most available through marketplaces, however they can be expensive due to Ethereum gas fees. You will need an Ethereum wallet such as Metamask to purchase planets, and will later need to sign in to Bridge with your wallet to configure your planet.
4038
41−Layer 2 planets do not require any crypto wallet management, but are at present less readily available on marketplaces.
39+Layer 2 planets do not require any crypto wallet management, but are only available on specific marketplaces.
4240
43−Don’t worry, both types work the same on the network.
41+There is no difference between Layer 1 or Layer 2 in the quality of experience
42+when using Urbit.
4443
4544Here are a few of the places where you can buy planets:
4645{% table .w-full .my-4 %}
@@ -64,7 +63,7 @@ Here are a few of the places where you can buy planets:
6463
6564**Layer 2 for planets**
6665
67−Learn more about [layer 2 for planets](/using/id/layer-2-for-planets) in the User's Manual page on the topic.
66+Learn more about [layer 2 for planets](https://operators.urbit.org/manual/id/layer-2-for-planets) in the User's Manual page on the topic.
6867
6968{% /callout %}
7069
@@ -75,7 +74,7 @@ An invitation to claim your planet comes in one of two forms.
7574
7675The first is an email invitation with an Urbit ID and a Master Ticket.
7776
78−The second, only recently made available through our [L2 solution](/using/id/layer-2-for-planets), is an activation code or a link to activate on [Bridge](https://bridge.urbit.org), which can be thought of as an Urbit account management tool.
77+The second, made available through our [L2 solution](https://operators.urbit.org/manual/id/layer-2-for-planets), is an activation code or a link to activate on [Bridge](https://bridge.urbit.org), the Urbit ID management tool.
7978
8079![](https://media.urbit.org/site/getting-started/Server-setup-1.jpg)
8180
@@ -103,20 +102,12 @@ Now that you have your planet, you can create your keyfile (eg. `sample-palnet.k
103102- **L1 Planet Purchasers**
104103 Log in to Bridge with your Ethereum wallet using Metamask or the wallet of your choice with WalletConnect. Click the “OS” box on the bottom of the page to open the OS page, and then click the **Download Keyfile** button.
105104
106−
107105### Next steps
108106
109−Got your planet?
110−
111−Get it up and running with one of these options:
112−
113−- Let a [hosting provider](/getting-started/hosted) do the hard work for you.
107+Now that you have a keyfile let's move on to booting the Urbit OS.
114108
115−- For power users, check out the [command line install
116− guide](/getting-started/cli) and run your urbit from the terminal.
109+- [CLI instructions](/getting-started/cli) – Set up Vere, the Urbit runtime, using the command line.
117110
118−- If you have a bit of Linux server experience, the [cloud hosting
119− guide](https://operators.urbit.org/manual/running/hosting) will help you set
120− up Urbit on a Digital Ocean VPS, so you can access it from anywhere.
111+- [Install on the cloud](/getting-started/cloud-hosting) – A step-by-step guide to setting up Urbit on a VPS.
121112
122−Remember, your planet is yours and you can always change how you run your urbit in the future.
113+- [Set up a home server](/getting-started/home-servers) – Explore options for running your own dedicated physical Urbit computer.
content/getting-started/getting-around.md+24−44
@@ -1,75 +1,55 @@
11+++
2−title = "Getting around"
3−description = "Get around your urbit"
4−weight = 4
2+title = "Overview"
3+description = "Getting around your urbit"
4+tag = "around"
5+weight = 0
56+++
67
78### 1. Get oriented
89
9−After you've logged into your Urbit for the first time, you're officially an Urbiter! You've unlocked the entire Urbit network with your newly-minted ID — the key to your new digital life.
10+After you've logged into your Urbit for the first time, you'll an interface called Landscape – a way interact with the network and applications. You'll also see a few pre-installed applications: Terminal, Groups, and Talk. More on them in a moment.
1011
11−![](https://media.urbit.org/site/additional-guides/groups-1.png)
12+![](https://storage.googleapis.com/media.urbit.org/site/getting-started/get-oriented.png)
1213
13−You'll see your Home and a few pre-installed applications: Terminal, Groups, and Bitcoin. More on them in a moment.
14+Above those are buttons to view System Preferences and check out notifications for messages and application activity. The search bar helps you surface applications you already have installed, or discover developers and applications across the Urbit network.
1415
15−Above those are buttons to view System Preferences and Help and Support and check out notifications for newly-installed or recently-updated applications, respectively. The search bar helps you surface applications you already have installed, or discover developers and applications across the Urbit network.
16+![](https://storage.googleapis.com/media.urbit.org/site/getting-started/about-system.png)
1617
17−You'll likely want to focus on finding and joining new communities, which you can do with the **Groups** app. Click on the box to open the application.
18+You'll likely want to focus on finding and joining new communities, which you can do with the **Groups** app.
1819
19−### 2. Join a few groups with fellow Urbiters
20+### 2. Join a few groups
2021
21−No two people will ever have the same experience on Urbit. That depends entirely on who you find and where they invite you to join them. But we can set you down a good path.
22+Joining public groups is simple – just search for the group host's Urbit ID, and click join. Check out a walk-through of this process in the [Joining groups](/getting-around/joining-groups) guide.
2223
23−First, Open the Groups app.
24−
25−Then click on "Find Groups" in the left column. Enter [~bitbet-bolbel/urbit-community](/groups/~bitbet-bolbel/urbit-community) — the official Urbit community. Click the "Join" button when you see the group listing.
26−
27−Give it a minute, and the group will load its default channels. To join additional channels in the group, click the "All Channels" button.
28−
29−Here are a few more useful groups to join:
30−
31−- [`~rondev/group-discovery`](/groups/~rondev/group-discovery): A group for finding other groups.
32−- [`~middev/the-forge`](/groups/~middev/the-forge): A group for sharing, discussing, and discovering new Urbit applications.
33−- [`~hocwyn-tipwex/uqbar-event-horizon`](/groups/~hocwyn-tipwex/uqbar-event-horizon): A community around [Uqbar](https://uqbar.network), a company creating applications and experiences on top of Urbit — notably EScape, which is an alternative to the default Groups application for joining communities and messaging with other Urbiters.
34−
35−### 3. Get more Urbit apps
24+### 3. Install some applications
3625
3726Groups are great, but Urbit goes way deeper with apps that are developed specifically for Urbit and use P2P networking for everything.
3827
39−We'll use [Canvas](/applications/~dister-norsyr-torryn/canvas) — a collaborative app for creating pixel art with others — as an example to show the process.
40−
41−Head back to your Urbit's home — the URL you used to log in and view your preinstalled apps. From there, click on the search bar and enter `~dister-norsyr-torryn/canvas`. Click on the first result, which shows you details about the developer, the license, a website for more information, and when the app was last updated.
28+Check out the [Installing apps](/getting-around/installing-applications) guide for a walk-through on the process of installing Urbit applications.
4229
43−Click **Get App**, then **Get "Canvas"** to continue. Your Urbit gets to work, and once installation is finished, click Open App to see it in action.
4430
45−Some popular apps to get things moving:
31+### 4. Explore interfaces
4632
47−- [EScape](/applications/~dister-fabnev-hinmur/escape): An alternative UI to the core groups, communities, and messaging capabilities in Urbit.
48−- [Studio](/applications/~tirrel/studio): Run a blog on your urbit.
49−- [Wrdu](/applications/~magped-magped-rabsef-bicrym/wrdu): A Wordle clone.
33+The default Urbit experience is using Landscape in the browser, but Urbit is also available on native mobile and desktop applications through alternative interfaces. [Learn more about Urbit interfaces](/getting-started/interfaces).
5034
51−Discover more applications on the [Ecosystem page](https://urbit.org/ecosystem?type=applications).
5235
53−### 4. Get help
36+### 5. Getting help
5437
55−If you need help getting around Urbit, the best place to go is the official Urbit community: [`~bitbet-bolbel/urbit-community`](/groups/~bitbet-bolbel/urbit-community). Those in the Help channel are willing to troubleshoot or provide links to resources to help you get out of a jam.
38+If you need help getting around Urbit, the best place to go is the official Urbit community: [`~bitbet-bolbel/urbit-community`](/groups/~bitbet-bolbel/urbit-community). Those in the Help channel are willing to troubleshoot or provide links to resources to help you get out of a jam. Note that Urbit Community can take a long time to join due to its size.
5639
57−That community isn't for every support request, however. If your question involves an app, you're better served reaching out to the developer — for example, if you have an issue with EScape's notifications feature, reach out to Uqbar in [`~hocwyn-tipwex/uqbar-event-horizon`](/groups/~hocwyn-tipwex/uqbar-event-horizon).
40+If your question involves an app, you're better served reaching out to the developer. Many [developers](/ecosystem?type=organizations) have dedicated groups on the network explicitly for this purpose.
5841
59−If you're having trouble with your planet or the hosting provider that's running your ship, try their support, as they'll have more context and resources to help solve your issue.
42+If you're having trouble with your planet or the hosting provider that's running your ship, try their support, as they'll have more context and resources to help solve your issue. And you can always email support@urbit.org if you're having trouble getting onto the network.
6043
61−And if you can't get through this guide and launch into Urbit, you may have luck with the [Urbit Live community](https://t.me/UrbitLiveGroup) on Telegram.
6244
63−### 5. What's next?
6445
65−You made it! You did the work and now have your Final Computer.
46+### 6. Next steps
6647
67−What you do with it is up to you. Where you go from here is up to you. No two experiences on Urbit will be the same, so we encourage you to follow your own intuition and explore.
6848
69−**Learn more about using Urbit**: Check out the [Operators Site](https://operators.urbit.org/) to learn more about running your own Urbit and how the network functions.
49+**Learn more**: Check out the [Operators Site](https://operators.urbit.org/) to learn more about running your own Urbit and how the network functions.
7050
71−**Get updates about Urbit**: [Subscribe](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2) to the Urbit Newsletter for news, blog posts, and events from the Urbit Foundation.
51+**Stay updated**: [Subscribe](https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&id=be143888d2) to the Urbit Newsletter for news, blog posts, and upcoming events.
7252
73−**Join an event or meetup**: Many of the organizations and people behind Urbit host virtual and in-person events on a regular basis — check out the latest on our [Events feed](/events/), or a local [Meetup group](/ecosystem?type=communities).
53+**Meet up**: Many of the organizations and people behind Urbit host virtual and in-person events on a regular basis — check out the latest on our [Events feed](/events/), or a local [Meetup group](/ecosystem?type=communities).
7454
75−**Learn how to build on Urbit**: If you're the kind of person who wants to build applications directly for discerning communities with built-in identity and networking primitives, or even jump into the Urbit kernel's core, we have the most comprehensive information to get you started on the [Urbit Developers Site](https://developers.urbit.org/).
55+**Build**: If you're the kind of person who wants to build applications directly for discerning communities with built-in identity and networking primitives, or even jump into the Urbit kernel's core, visit [Urbit Developers](https://developers.urbit.org/) to learn more.
content/getting-started/home-servers.mdnew file+27
@@ -0,0 +1,27 @@
1++++
2+title = "Home servers"
3+weight = 5
4+description = "Options for hosting with a home server"
5+tag = "selfhost"
6++++
7+
8+There are a variety of tools that make running Urbit at home straightforward on dedicated hardware. If your enjoy hardware ownership and full embracing the spirit of decentralization, then these tools are for you.
9+
10+
11+## Native Planet
12+
13+[![Native Planet Tellurian](https://storage.googleapis.com/media.urbit.org/site/getting-started/native-planet.jpg)](https://www.nativeplanet.io/hardware)
14+
15+Purchase a [computer designed to run Urbit](https://www.nativeplanet.io/hardware), out of the box.
16+
17+## Groundseg & Startram
18+
19+[![Groundseg UI](https://storage.googleapis.com/media.urbit.org/site/getting-started/groundseg.png)](https://www.nativeplanet.io/software)
20+
21+Install these [Native Planet software packages](https://www.nativeplanet.io/software) to turn a Linux computer into an urbit that's accessible from anywhere in the world.
22+
23+## Umbrel
24+
25+[![Umbrel Screenshot](https://storage.googleapis.com/media.urbit.org/site/getting-started/umbrel.png)](https://umbrel.com/)
26+
27+Install the [Urbit application](https://subject.network/posts/urbit-apps-umbrel/) on a Raspberry Pi running [Umbrel](https://umbrel.com/).
content/getting-started/hosted.md+19−16
@@ -1,27 +1,30 @@
11+++
2−title = "Hosted urbit"
3−description = "Run Urbit on a managed service"
4−weight = 1
2+title = "Overview"
3+weight = 0
4+description = "Running Urbit with a hosting provider"
5+tag = "hostprov"
56+++
67
7−### 1. Select a hosting provider
8+Hosting providers are companies that offer "Urbit as a Service". They do the work of setting up your urbit in the cloud and making sure it's up to date and you don't have perform any technical steps or maintenance.
89
9−Hosting providers can sell you a planet and manage the hosting for you for a regular fee. Two important points one should know about hosting providers:
10+![Hosting Providers](https://storage.googleapis.com/media.urbit.org/site/getting-started/hosting-providers.png)
1011
11−- Because the provider has access to the resources that run your Urbit experience, you must trust them with your data.
12+Generally, you'll get an Urbit ID by signing up with a hosting provider, but some allow you to bring your own Urbit ID, or even your pier (all your urbit data.)
1213
13−- Urbit has portable data, so you should be able to work with a hosting provider to download all your data and boot up elsewhere if you choose to migrate or start self-hosting.
14+While hosting providers offer convenience and customer support, hosting does
15+mean trusting your provider with your data, just as you would any internet
16+service company. Unlike typical internet services however, Urbit makes it
17+possible to leave a hosting provider with your Urbit ID, which you can then use
18+to switch hosting provider or self-host.
1419
15−Some hosting providers we like include:
16−- [Tlon](https://tlon.network/)
17−- [ThirdEarth](https://third.earth/)
18−- [Planet One](https://planet.one/)
20+The two important points one should remember about hosting providers:
1921
22+- Because the provider has access to the resources that run your Urbit
23+ experience, you must trust them with your data.
24+- Urbit is designed to be portable, so your hosting provider will allow you to
25+ export all your data and boot up elsewhere if you choose.
2026
21−### 2. Log in
2227
23−The exact steps for logging into your Urbit will depend on your hosting provider's infrastructure and the flow they've developed. If you have questions about logging into your hosted Urbit ship, contact their support.
28+## Next steps
2429
25−### Next steps
26−
27−Learn how to [get around your urbit](/getting-started/getting-around).
30+[Explore Hosting Providers -&gt;](/getting-started/hosting-providers)
content/getting-started/hosting-providers.mdnew file+26
@@ -0,0 +1,26 @@
1++++
2+title = "Hosting Providers"
3+weight = 2
4+description = "Companies that provide Urbit hosting as a service"
5+tag = "hostprov"
6++++
7+
8+
9+## Tlon
10+[Tlon](https://tlon.io) is the company responsible for creating Urbit, Landscape, Groups and Talk. They also offer hosting services that seamlessly integrate with the rest of their products. [Tlon Hosting](https://tlon.network/) offers Urbit hosting for $20/month.
11+
12+[![Tlon Hosting](https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/tlon-hosting-provider.png)](https://tlon.network/)
13+
14+
15+## Third Earth
16+
17+[ThirdEarth](https://third.earth) offers hosting for $11.99/month. Third Earth is the only hosting provider that allows you to join with an existing Urbit ID and pier, i.e. a planet that you have already booted elsewhere. If you don't have a planet yet, they can also provide you with one.
18+
19+[![Third Earth Hosting](https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/thirdearth-hosting.png)](https://third.earth/)
20+
21+
22+## Planet One
23+
24+[Planet One](https://planet.one), a [Tirrel](https://urbit.org/organizations/tirrel) service, offers Urbit hosting for $15/month. You can also obtain hosting through their native Desktop application, [Scene](https://planet.one/scene).
25+
26+[![Planet One Hosting](https://storage.googleapis.com/media.urbit.org/site/ecosystem/organizations/planetone-hosting.png)](https://planet.one/)
content/getting-started/installing-applications.md+16−16
@@ -1,39 +1,39 @@
11+++
22title = "Installing apps"
3−tag = "additional"
3+tag = "around"
44weight = 3
55+++
66
7−### 1. Get on the network
7+Installing Urbit applications is simple. Search for the developer and download the application directly from them. We'll walk you through it.
88
9−First, you’ll need to get on Urbit.
9+### 1. Finding applications
1010
11−Check out our [Getting Started guide](https://urbit.org/install) to find the best way for you.
11+To install an application, you'll need to know the ship it is distributed from, which is often its developer's Urbit ID, *e.g.* `~paldev` or `~dister-fabnev-hinmur`. If you know the application, you can enter the full shortcode, e.g. `~paldev/pals`.
1212
13−### 2. Finding applications
13+You can find a [public directory of applications](/ecosystem?type=applications) in the Ecosystem section of urbit.org.
1414
15−Urbit is still in its early stages, so you’ll need to join groups and browse around the network to discover new applications as they are being brought up.
15+Not all applications are listed on urbit.org, so you’ll discover more by actively using Urbit and meeting people.
1616
1717However, we can get started a simple app from Urbit developer [`~paldev`](/ids/~paldev).
1818
19−### 3. Search for a Developer
19+### 2. Search for a Developer
2020
21−Once you’re on the network, you’ll see and large tiled interface with a few applications installed and a search bar on the top of the page.
21+Once you’re on the network, you’ll see a large tiled interface with a few applications and a search bar on the top of the page.
2222
2323Click and the search bar and search for the software provider’s Urbit ID.
2424
25−For example, to install the picture application, search for `~paldev` and then click on the result for `~paldev` to show his applications.
25+For example, to install the pals application, search for `~paldev` and then click on the result for `~paldev` to show the applications.
2626
27−![](https://media.urbit.org/site/additional-guides/Installing-apps-1.jpg)
27+![](https://media.urbit.org/site/getting-started/install-apps-1.png)
2828
29−![](https://media.urbit.org/site/additional-guides/Installing-apps-2.jpg)
29+![](https://media.urbit.org/site/getting-started/install-apps-2.png)
3030
31−### 4. Get the Application
31+### 3. Get the Application
3232
33−After selecting the “picture” app, a pane will open that shows some information about the application. Go ahead and click the “Get App” button, and confirm the following modal window to begin the installation process.
33+Select the pals app, and a modal window will open that shows some information about the application. Go ahead and click the “Get App” button, and confirm the following modal window to begin the installation process.
3434
35−Soon you’ll have a new application tile on your home screen that will let you upload and display a picture to your home screen.
35+Soon you’ll have a new application tile on your home screen. Now you can add people you know on the network as your pals just by entering their Urbit ID.
3636
37−![](https://media.urbit.org/site/additional-guides/Installing-apps-3.jpg)
37+![](https://media.urbit.org/site/getting-started/install-apps-3.png)
3838
39−![](https://media.urbit.org/site/additional-guides/Installing-apps-4.jpg)
39+![](https://media.urbit.org/site/getting-started/install-apps-4.png)
content/getting-started/interfaces.mdnew file+10
@@ -0,0 +1,10 @@
1++++
2+title = "Interfaces"
3+weight = 4
4+description = "Ways to interact with Urbit"
5+tag = "around"
6++++
7+
8+Urbit ships by default with [Landscape](https://tlon.io/landscape), a web-based interface for managing your ship and the software installed on it, and launching other web-based applications. However, there are many ways to interact with your Urbit.
9+
10+There's [EScape](https://urbit.org/applications/~fabnev-hinmur/escape), a fork of Groups that is also has an accompanying mobile application. [Scene](https://tirrel.io/scene/index.html) and the (soon to be released) [Realm](https://www.holium.com/) offer native desktop window managers for your urbit. Lastly, there's the [Dojo](https://developers.urbit.org/overview/dojo) CLI interface for developers
content/getting-started/joining-groups.md+18−14
@@ -1,24 +1,29 @@
11+++
22title = "Joining groups"
3−tag = "additional"
3+tag = "around"
44weight = 2
55+++
66
7−### 1. Get on the network
7+Joining public groups is straightforward: search for the group host's Urbit ID, and join. Some groups are private, so you'll need approval to join.
88
9−First, you’ll need to get on Urbit.
9+And still other groups are secret! Which means you can't find them, and you'll need to be invited to join.
1010
11−Check out our [Getting Started guide](https://urbit.org/install) to find the best way for you.
11+Let's walk through the process of finding and joining a public group.
1212
13−### 2. Open the Groups app
1413
15−Once you’re on the network, you’ll see and large tiled interface with a few applications installed: Talk, Terminal, Groups, and Bitcoin. Click on Groups.
14+### 1. Open the Groups app
1615
17−![](https://media.urbit.org/site/additional-guides/groups-1.png)
16+Once you’re on the network, you’ll see Landscape, which is filled with large applications tiles: Talk, Terminal, and Groups. Click on Groups.
1817
19−### 3. Enter the group shortcode
18+![](https://storage.googleapis.com/media.urbit.org/site/getting-started/get-oriented.png)
2019
21−We’ll start by joining UF, the official group of the Urbit Foundation.
20+### 2. Enter the group shortcode
21+
22+To join a group, you'll need to know its host Urbit ID (e.g. ~bitbet-bolbel) or its full Urbit address, also called a shortcode.
23+
24+Check out some public groups in the [urbit.org groups directory](/ecosystem?type=groups)
25+
26+As an example, we’ll start by joining UF, the Urbit Foundation's official group.
2227
2328In the Groups app, click on "Find Groups" in the left column and enter `~halbex-palheb/uf-public`
2429
@@ -26,9 +31,10 @@ Then click on the "Join" button once the group appears.
2631
2732![](https://media.urbit.org/site/additional-guides/groups-2.png)
2833
29−### 4. Join channels
3034
31−Now, you'll see the first default channel of the group.
35+### 3. Join channels
36+
37+After a few moments the default channels will load. For groups with a large backlog, such as Urbit Community (~bitbet-bolbel/urbit-community), this may take a few minutes.
3238
3339![](https://media.urbit.org/site/additional-guides/groups-3.png)
3440
@@ -39,12 +45,10 @@ We can join more channels in the group by clicking on the "All Channels" link in
3945
4046
4147
42−### 5. Chat and post on the network
48+### 4. Chat and post on the network
4349
4450In addition to posting text, you can now react, start threads, and reference messages by hovering over chat messages. And you can leave comments in notebooks if they are enabled.
4551
4652Remember to be nice, and have fun.
4753
4854![](https://media.urbit.org/site/additional-guides/groups-4.png)
49−
50−
content/getting-started/self-host.mdnew file+33
@@ -0,0 +1,33 @@
1++++
2+title = "Overview"
3+weight = 1
4+description = "Running your own urbit"
5+tag = "selfhost"
6++++
7+
8+
9+To run Urbit on your own you need to be comfortable using a command line
10+interface (CLI), and should have a basic understanding of how to interact with
11+the Ethereum blockchain.
12+
13+Urbit OS is comprised of a virtual operating system (Arvo) and a runtime called
14+(Vere). The runtime has official versions targeting Linux and macOS, although
15+workarounds exist for Windows.
16+
17+Running Urbit locally is good for experimentation, but in the long term you'll
18+want to run it as a server — always on and accessible from anywhere. The nice
19+thing about Urbit is that's easy to start local, and later move to cloud hosting
20+or a home server. Or you can start with the latter options.
21+
22+**Remember, never run your Urbit in more than one place!** Doing so will necessitate
23+a [factory reset](https://operators.urbit.org/manual/id/guide-to-resets).
24+
25+## Next Steps
26+
27+- [Get an Urbit ID](/getting-started/get-id) – Get a planet, a permanent Urbit ID, for the best networked experience.
28+
29+- [CLI instructions](/getting-started/cli) – Set up Vere, the Urbit runtime, using the command line.
30+
31+- [Install on the cloud](/getting-started/cloud-hosting) – A step-by-step guide to setting up Urbit on a VPS.
32+
33+- [Set up a home server](/getting-started/home-servers) – Explore options for running your own dedicated physical Urbit computer.
content/grants/2022/app-store.md+9−7
@@ -128,16 +128,18 @@ ETA: November 4th 2022.
128128
129129- Building the front end in ReactJS according to our design from Milestone 2.
130130- Connect the front end to the back end, so that all roles can do everything they did in Milestone 2, but through a UI
131−- Add a search bar on the front end. It will be able to search by app name, Developer ship ID, tags, and possibly also pattern match through app descriptions.
132−
133−**Milestone 4** - Front end customization and publication.
134−ETA: January 6st 2023.
135−
136−- Enable Developers and Curators to customize their pages. They will probably have a CSS file to customize which will be funneled to the User and be served on the User’s front end.
131+- Add a search bar on the front end. It will be able to search by app name, Developer ship ID, tags, and possibly also pattern match through app descriptions.
132+
133+**Milestone 4** - Groups discovery and mobile view optimization.
134+
135+- As a curator, I want to list groups in my collection for users to browse
136+- As a user, I want to browse through a list of groups that a curator recommends to me
137+- As a user, I want to see a group’s name, description, and host, and join the group easily from the app store
138+- As a user, I want a mobile-optimized experience the app store so I can easily use the app inside the EScape mobile app or in a mobile browser
137139- App Store will be published and downloadable on urbit
138140- There will be detailed documentation for App Store, describing how it works and how to use it
139141- A github pull request will be submitted to [https://urbit.org/applications/submit](https://urbit.org/applications/submit)
140−
142+
141143### About Us
142144
143145I was looking for stuff to do which might actually do some good for the world. So here I am. My name is Jurij Jukić, ~dilryd-mopreg. I have about a year of programming experience, mostly in Python. I recently quit my job to come work on Urbit full time. I just finished App School Live and I’m looking to build and learn.
content/grants/2022/filesharer.md+1
@@ -13,6 +13,7 @@ reward = "2 stars"
1313assignee = ["~tinden-pontev"]
1414grant_id = "P0102"
1515completed = false
16+canceled = true
1617link = ""
1718+++
1819
content/grants/2022/gnosis-safe.md+1−1
@@ -14,7 +14,7 @@ reward = "2-3 stars"
1414assignee = ["~witfyl-ravped"]
1515champion = ["~dinleb-rambep"]
1616grant_id = "P0154"
17−completed = false
17+completed = true
1818canceled = false
1919work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0154&prefill_Grant+Name=Gnosis%20Safe"
2020
content/grants/2022/slaw-scot-jets.md+2−2
@@ -10,8 +10,8 @@ grant_category = [ "Core Dev" ]
1010image = ""
1111description = "Tune slaw/scot jets for better perfomance."
1212reward = "1 star"
13−mentor = ["~master-morzod"]
14−assignee = [""]
13+mentor = ["~lagrev-nocfep"]
14+assignee = ["~ponmep-litsem"]
1515grant_id = "B0137"
1616completed = false
1717work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0164&prefill_Grant+Name=Tune%20slaw%2Fscot%20Jets"
content/grants/2023/generator-doccords.mdnew file+46
@@ -0,0 +1,46 @@
1++++
2+title = "Doccord Compliant Comments in all Generators"
3+date = "2023-01-31"
4+
5+[taxonomies]
6+grant_type = ["Bounty"]
7+grant_category = ["Core Dev"]
8+
9+[extra]
10+image = ""
11+assignee = [""]
12+description = "Adapt the comments in the default generators to take advantage of the new doccord features."
13+reward = "1 star"
14+grant_id = "B0231"
15+completed = false
16+canceled = false
17+work_request_link = "https://airtable.com/shr4qt9t9kz7RaOIa?prefill_Grant+ID=B0231&prefill_Grant+Name=Doccord%20Compliant%20Comments%20for%20All%20Generators"
18++++
19+
20+## Overview
21+
22+The base desk comes with a variety of generators and threads that are useful for debugging and development. Documentation and usage guidance for these is scattered between inline comments (accessible via the `+help` generator) and [operators.urbit.org](https://operators.urbit.org/manual/os/dojo-tools) We propose to take advantage of the [newly released doccords](https://groups.google.com/a/urbit.org/g/dev/c/iqT0wgbFkPA) feature to consolidate the documentation and provide an introduction to the doccords utility for users.
23+
24+## Implementation
25+
26+For every "dojo tool" covered in [the docs](https://github.com/urbit/operators.urbit.org/blob/master/content/manual/os/dojo-tools.md), move the documentation into the source code in accordance with the doccord [style guide](https://github.com/urbit/urbit/blob/develop/pkg/arvo/lib/deco.hoon).
27+
28+Rewrite the `+help` generator to display the relevant doccords.
29+
30+Currently you need to do the following to see inline doccords.
31+
32+```
33+=file -build-file %/path/to/file/hoon
34+# file
35+```
36+
37+This should be improved to be:
38+
39+```
40++help %example-generator
41+> formatted comments
42+```
43+
44+## Payment
45+
46+1 Star
content/grants/2023/school-support-23q1.md+1−1
@@ -12,7 +12,7 @@ image = ""
1212description = "Supporting online course teaching and composing grading apps."
1313reward = "2 stars"
1414assignee = ["~tamlut-modnys"]
15−champion = ["~lagrev-nocfrp"]
15+champion = ["~lagrev-nocfep"]
1616grant_id = "B0225"
1717completed = false
1818canceled = false
content/groups/~rondev/group-discovery.mddeleted−10
@@ -1,10 +0,0 @@
1−+++
2−title = "Group Discovery"
3−shortcode = "~rondev/group-discovery"
4−description = "A group for finding other groups"
5−type = "Public"
6−tile = "https://urbit.me/images/icons/icon-512x512.png"
7−participant_range = "1000+"
8−+++
9−
10−A group for finding other groups
pages/decentralized-discord.js−5
@@ -281,11 +281,6 @@ export async function getStaticProps() {
281281 ["title", "slug", "shortcode", "description", "tile"],
282282 "groups/~tirrel"
283283 ),
284− getPostBySlug(
285− "group-discovery",
286− ["title", "slug", "shortcode", "description", "tile"],
287− "groups/~rondev"
288− ),
289284 getPostBySlug(
290285 "other-life",
291286 ["title", "slug", "shortcode", "description", "tile"],
pages/getting-started/[[...slug]].js+181−150
@@ -22,21 +22,29 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
2222 });
2323 };
2424
25− let menu = [{ title: "Overview", slug: "", weight: 0 }],
26− additional = [];
25+ let started = [{ title: "Introduction", slug: "", weight: 0 }],
26+ around = [],
27+ selfhost = [],
28+ hostprov = [];
2729
2830 posts.pages.map((post) => {
29− if (post?.tag === "additional") {
30− additional.push(post);
31− } else {
32− menu.push(post);
31+ if (post?.tag === "around") {
32+ around.push(post);
33+ } else if (post?.tag === "selfhost") {
34+ selfhost.push(post);
35+ } else if (post?.tag === "hostprov") {
36+ hostprov.push(post);
37+ } else if (post?.tag === "started") {
38+ started.push(post);
3339 }
3440 });
3541
36− menu.sort((a, b) => a.weight > b.weight);
37− additional.sort((a, b) => a.weight > b.weight);
42+ started.sort((a, b) => a.weight > b.weight);
43+ selfhost.sort((a, b) => a.weight > b.weight);
44+ hostprov.sort((a, b) => a.weight > b.weight);
45+ around.sort((a, b) => a.weight > b.weight);
3846
39− const rootClasses = "pl-0 font-semibold text-base hover:text-green-400";
47+ const rootClasses = "pl-0 font-semibold antialiased text-base hover:text-green-400";
4048
4149 return (
4250 <>
@@ -46,11 +54,8 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
4654 </Head>
4755 <div className="flex h-screen min-h-screen w-screen sidebar">
4856 <Sidebar search={search}>
49− <p className="uppercase pb-1 font-bold text-xs text-wall-400">
50− Getting Started
51− </p>
5257 <ul>
53− {menu.map((post) => (
58+ {started.map((post) => (
5459 <li>
5560 <Link href={post.slug} passHref>
5661 <a className={`relative ${select(post.slug)} ${rootClasses}`}>
@@ -60,11 +65,39 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
6065 </li>
6166 ))}
6267 </ul>
63− <ul className="mt-8">
64− <p className="uppercase pb-1 font-bold text-xs text-wall-400">
65− Additional Guides
68+ <ul className="mt-6">
69+ <p className="uppercase pb-1 font-bold antialiased text-xs text-wall-400">
70+ Run Yourself
6671 </p>
67− {additional.map((post) => (
72+ {selfhost.map((post) => (
73+ <li>
74+ <Link href={post.slug} passHref>
75+ <a className={`relative ${select(post.slug)} ${rootClasses}`}>
76+ {post.title}
77+ </a>
78+ </Link>
79+ </li>
80+ ))}
81+ </ul>
82+ <ul className="mt-6">
83+ <p className="uppercase pb-1 font-bold antialiased text-xs text-wall-400">
84+ Hosting
85+ </p>
86+ {hostprov.map((post) => (
87+ <li>
88+ <Link href={post.slug} passHref>
89+ <a className={`relative ${select(post.slug)} ${rootClasses}`}>
90+ {post.title}
91+ </a>
92+ </Link>
93+ </li>
94+ ))}
95+ </ul>
96+ <ul className="mt-6">
97+ <p className="uppercase pb-1 font-bold antialiased text-xs text-wall-400">
98+ Getting Around
99+ </p>
100+ {around.map((post) => (
68101 <li>
69102 <Link href={post.slug} passHref>
70103 <a className={`relative ${select(post.slug)} ${rootClasses}`}>
@@ -87,7 +120,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
87120 <div className="markdown">
88121 <Markdown.render content={JSON.parse(markdown)} />
89122 </div>
90− {!params?.slug && <LaunchCards />}
123+ {/* {!params?.slug && <LaunchCards />} */}
91124 </ContentArea>
92125 </div>
93126 </>
@@ -96,9 +129,7 @@ export default function UsingLayout({ posts, data, params, search, markdown }) {
96129
97130const breadcrumbs = (posts, paths) => {
98131 const results = [
99− <Link href="/">Urbit</Link>,
100− <span className="px-1">/</span>,
101− <Link href="/getting-started">Getting Started</Link>,
132+ <Link href="/getting-started">Getting Started</Link>
102133 ];
103134 let thisLink = "/getting-started";
104135 for (const path of paths) {
@@ -112,135 +143,135 @@ const breadcrumbs = (posts, paths) => {
112143 return results;
113144};
114145
115−function LaunchCards() {
116− const info = [
117− {
118− title: "Hosted urbit",
119− subtitle: "Deploy Urbit on a managed service",
120− points: [
121− {
122− title: "Benefits",
123− content: [
124− "Accessibility from anywhere",
125− "Streamlined setup for ownership and identity",
126− "No technical proficiency required",
127− ],
128− },
129− {
130− title: "Considerations",
131− content: [
132− "Requires monthly subscription",
133− "Requires trust in your service provider",
134− ],
135− },
136− ],
137− svg: (
138− <svg
139− width="50"
140− height="50"
141− viewBox="0 0 50 50"
142− fill="none"
143− xmlns="http://www.w3.org/2000/svg"
144− >
145− <rect width="50" height="23.1481" rx="10" className="fill-wall-600" />
146− <rect
147− y="26.8519"
148− width="50"
149− height="23.1481"
150− rx="10"
151− className="fill-wall-600"
152− />
153− <ellipse
154− cx="40.4167"
155− cy="11.5741"
156− rx="2.91667"
157− ry="3.24074"
158− className="fill-white"
159− />
160− <ellipse
161− cx="40.4167"
162− cy="38.4259"
163− rx="2.91667"
164− ry="3.24074"
165− className="fill-white"
166− />
167− </svg>
168− ),
169− href: "/getting-started/hosted",
170− },
171− {
172− title: "Command line app",
173− subtitle: "Run Urbit from the terminal",
174− points: [
175− {
176− title: "Benefits",
177− content: ["Greater control", "Reliable", "Smaller footprint"],
178− },
179− {
180− title: "Considerations",
181− content: ["Requires familiarity with the command line"],
182− },
183− ],
184− svg: (
185− <svg
186− width="55"
187− height="55"
188− viewBox="0 0 66 50"
189− fill="none"
190− xmlns="http://www.w3.org/2000/svg"
191− >
192− <path
193− fill-rule="evenodd"
194− clip-rule="evenodd"
195− d="M52.9288 0.03125H3.07125C1.39393 0.03125 0.03125 1.39393 0.03125 3.07125V52.9288C0.03125 53.7333 0.351879 54.5081 0.921894 55.0781C1.49191 55.6481 2.26671 55.9688 3.07125 55.9688H52.9288C53.7333 55.9688 54.5081 55.6481 55.0781 55.0781C55.6481 54.5081 55.9688 53.7333 55.9688 52.9288V3.07125C55.9688 2.26671 55.6481 1.49189 55.0781 0.921894C54.5081 0.351894 53.7333 0.03125 52.9288 0.03125V0.03125ZM12.8 38.7912L20.78 30.7368L12.8 22.7568L17.1314 18.4254L27.2402 28.6079C27.8191 29.1779 28.1456 29.9586 28.1456 30.7721C28.1456 31.5885 27.8191 32.3693 27.2402 32.9393L17.0577 43.0481L12.8 38.7912ZM38.9425 43.1226H27.0113V37.0426H38.8688L38.9425 43.1226Z"
196− className="fill-wall-600"
197− />
198− </svg>
199− ),
200− href: "/getting-started/cli",
201− }
202− ];
203− return (
204− <div className="flex flex-col space-y-8 mt-8">
205− {info.map((e) => {
206− return (
207− <div className="p-8 bg-wall-100 rounded-xl max-w-screen-md flex flex-col">
208− <div className="flex">
209− <div className="pl-4 pr-8 justify-center items-center flex">
210− {e.svg}
211− </div>
212− <div className="flex flex-col">
213− <h4 className="text-2xl">{e.title}</h4>
214− <p className="font-light text-lg">{e.subtitle}</p>
215− </div>
216− </div>
217− <div className="flex mt-8 border-b-neutral-300 pt-2 pb-5 ">
218− {e.points.map((section) => {
219− return (
220− <div className="basis-1/2">
221− <p className="uppercase font-bold text-sm text-black">
222− {section.title}
223− </p>
224− <ul className="mx-8 my-2 list-disc text-sm flex flex-col space-y-2">
225− {section.content.map((point) => (
226− <li>{point}</li>
227− ))}
228− </ul>
229− </div>
230− );
231− })}
232− </div>
233− <Link href={e.href} passHref>
234− <a className="button-lg max-w-fit text-white mt-4 bg-green-400">
235− Get Started
236− </a>
237− </Link>
238− </div>
239− );
240− })}
241− </div>
242− );
243−}
146+// function LaunchCards() {
147+// const info = [
148+// {
149+// title: "Hosted urbit",
150+// subtitle: "Deploy Urbit on a managed service",
151+// points: [
152+// {
153+// title: "Benefits",
154+// content: [
155+// "Accessibility from anywhere",
156+// "Streamlined setup for ownership and identity",
157+// "No technical proficiency required",
158+// ],
159+// },
160+// {
161+// title: "Considerations",
162+// content: [
163+// "Requires monthly subscription",
164+// "Requires trust in your service provider",
165+// ],
166+// },
167+// ],
168+// svg: (
169+// <svg
170+// width="50"
171+// height="50"
172+// viewBox="0 0 50 50"
173+// fill="none"
174+// xmlns="http://www.w3.org/2000/svg"
175+// >
176+// <rect width="50" height="23.1481" rx="10" className="fill-wall-600" />
177+// <rect
178+// y="26.8519"
179+// width="50"
180+// height="23.1481"
181+// rx="10"
182+// className="fill-wall-600"
183+// />
184+// <ellipse
185+// cx="40.4167"
186+// cy="11.5741"
187+// rx="2.91667"
188+// ry="3.24074"
189+// className="fill-white"
190+// />
191+// <ellipse
192+// cx="40.4167"
193+// cy="38.4259"
194+// rx="2.91667"
195+// ry="3.24074"
196+// className="fill-white"
197+// />
198+// </svg>
199+// ),
200+// href: "/getting-started/hosted",
201+// },
202+// {
203+// title: "Command line app",
204+// subtitle: "Run Urbit from the terminal",
205+// points: [
206+// {
207+// title: "Benefits",
208+// content: ["Greater control", "Reliable", "Smaller footprint"],
209+// },
210+// {
211+// title: "Considerations",
212+// content: ["Requires familiarity with the command line"],
213+// },
214+// ],
215+// svg: (
216+// <svg
217+// width="55"
218+// height="55"
219+// viewBox="0 0 66 50"
220+// fill="none"
221+// xmlns="http://www.w3.org/2000/svg"
222+// >
223+// <path
224+// fill-rule="evenodd"
225+// clip-rule="evenodd"
226+// d="M52.9288 0.03125H3.07125C1.39393 0.03125 0.03125 1.39393 0.03125 3.07125V52.9288C0.03125 53.7333 0.351879 54.5081 0.921894 55.0781C1.49191 55.6481 2.26671 55.9688 3.07125 55.9688H52.9288C53.7333 55.9688 54.5081 55.6481 55.0781 55.0781C55.6481 54.5081 55.9688 53.7333 55.9688 52.9288V3.07125C55.9688 2.26671 55.6481 1.49189 55.0781 0.921894C54.5081 0.351894 53.7333 0.03125 52.9288 0.03125V0.03125ZM12.8 38.7912L20.78 30.7368L12.8 22.7568L17.1314 18.4254L27.2402 28.6079C27.8191 29.1779 28.1456 29.9586 28.1456 30.7721C28.1456 31.5885 27.8191 32.3693 27.2402 32.9393L17.0577 43.0481L12.8 38.7912ZM38.9425 43.1226H27.0113V37.0426H38.8688L38.9425 43.1226Z"
227+// className="fill-wall-600"
228+// />
229+// </svg>
230+// ),
231+// href: "/getting-started/cli",
232+// }
233+// ];
234+// return (
235+// <div className="flex flex-col space-y-8 mt-8">
236+// {info.map((e) => {
237+// return (
238+// <div className="p-8 bg-wall-100 rounded-xl max-w-screen-md flex flex-col">
239+// <div className="flex">
240+// <div className="pl-4 pr-8 justify-center items-center flex">
241+// {e.svg}
242+// </div>
243+// <div className="flex flex-col">
244+// <h4 className="text-2xl">{e.title}</h4>
245+// <p className="font-light text-lg">{e.subtitle}</p>
246+// </div>
247+// </div>
248+// <div className="flex mt-8 border-b-neutral-300 pt-2 pb-5 ">
249+// {e.points.map((section) => {
250+// return (
251+// <div className="basis-1/2">
252+// <p className="uppercase font-bold text-sm text-black">
253+// {section.title}
254+// </p>
255+// <ul className="mx-8 my-2 list-disc text-sm flex flex-col space-y-2">
256+// {section.content.map((point) => (
257+// <li>{point}</li>
258+// ))}
259+// </ul>
260+// </div>
261+// );
262+// })}
263+// </div>
264+// <Link href={e.href} passHref>
265+// <a className="button-lg max-w-fit text-white mt-4 bg-green-400">
266+// Get Started
267+// </a>
268+// </Link>
269+// </div>
270+// );
271+// })}
272+// </div>
273+// );
274+// }
244275
245276export async function getStaticProps({ params }) {
246277 let posts = GettingStartedTree;
pages/index.js+1−1
@@ -51,7 +51,7 @@ export default function Home({
5151 <Section className="pb-36">
5252 <div className="space-y-8">
5353 <h1>A clean-slate OS and network for the 21st&nbsp;century.</h1>
54− <Link href="/trial" passHref><a className="bg-green-400 text-white button-lg max-w-fit">Try Urbit Now</a></Link>
54+ <Link href="/getting-started" passHref><a className="bg-green-400 text-white button-lg max-w-fit">Get Started</a></Link>
5555 </div>
5656 </Section>
5757 {
vercel.json+9−2
@@ -11,6 +11,9 @@
1111 "source": "/getting-around",
1212 "destination": "/getting-started/getting-around"
1313 },
14+ {"source": "/getting-started/get-planet",
15+ "destination": "/getting-started/get-id"
16+ },
1417 {
1518 "source": "/docs/getting-started",
1619 "destination": "/getting-started"
@@ -39,9 +42,13 @@
3942 "source": "/grants/Faux",
4043 "destination": "/grants/faux"
4144 },
45+ {
46+ "source": "/using/id/layer-2-for-planets",
47+ "destination": "https://operators.urbit.org/manual/id/layer-2-for-planets"
48+ },
4249 {
4350 "source": "/getting-started/layer-2-for-planets",
44− "destination": "/using/id/layer-2-for-planets"
51+ "destination": "https://operators.urbit.org/manual/id/layer-2-for-planets"
4552 },
4653 {
4754 "source": "/guides/getting-an-urbit-id",
@@ -251,4 +258,4 @@
251258 "permanent": true
252259 }
253260 ]
254−}
261+}