on master help sign in
Fixes
e672becSamuel Henriquez
content/campus/_index.md+104−4
@@ -1,9 +1,109 @@
1+++
1+++
2−title = "Introduction"
2+title = "Software Developers"
3−description = "We think the internet can’t be saved."
3+description = "Getting started as a software developer on Urbit"
4sort_by = "weight"
4sort_by = "weight"
5+++
5+++
6
6
7−[Get on Urbit copy goes here]
7+Imagine how easy it would be to write and deploy software in a world where every user had their own server, networking protocols were simple and universal, and the primitives [weren’t destined to a never ending spiral of breaking changes](https://developers.urbit.org/reference/glossary/kelvin). So much of the path dependency that has made writing software today a matter of hacking at an ugly morass of load-bearing arcana could be wiped away, and you could focus on clean business logic and seamless UX.
8
8
9−Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
9+Now stop imagining, because we’ve already built it.
10+
11+Like anything else, the best way to go about learning how to build on Urbit is self-discovery. [Get on the network](https://airtable.com/shrmfUVpMskWw145u) and try clicking around this website. If you attended a Campus Outreach event and remember a term that you didn’t understand, go to the search bar in the top right and see what comes up. Here are a few links to help get you started:
12+
13+
14+
15+
16+{% link href="https://developers.urbit.org/overview" %}
17+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
18+{% div className="flex flex-col p-4"%}
19+**The Docs**
20+
21+The full documentation. Regularly updated with a number of useful writeups geared towards beginners
22+
23+{% /div %}
24+{% /div %}
25+{% /link %}
26+
27+<br>
28+
29+{% link href="https://developers.urbit.org/guides/quickstart/intro" %}
30+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
31+{% div className="flex flex-col p-4"%}
32+**Lightning Tutorials**
33+
34+Get a feel for the process of making and deploying an Urbit app in half an hour
35+
36+{% /div %}
37+{% /div %}
38+{% /link %}
39+
40+<br>
41+
42+{% link href="https://developers.urbit.org/guides/core" %}
43+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
44+{% div className="flex flex-col p-4"%}
45+**Core Curriculum**
46+
47+Structured lessons to learn the Urbit stack at your own pace
48+
49+{% /div %}
50+{% /div %}
51+{% /link %}
52+
53+<br>
54+
55+The Foundation also regularly runs a series of cohort-based live courses that go over the core curriculum, free and open to all. One lesson per week for ~8 weeks that can easily be worked into even the busiest schedules. You can also get help with the Urbit stack on the network at New Hooniverse.
56+
57+{% link href="/guides/star-buyers-guide?id=buying-a-star" %}
58+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
59+{% div className="flex flex-col p-4"%}
60+**Live Courses**
61+
62+Learn the Urbit stack from a teacher with others
63+
64+{% /div %}
65+{% /div %}
66+{% /link %}
67+
68+<br>
69+
70+{% link href="https://urbit.org/groups/~hiddev-dannut/new-hooniverse" %}
71+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
72+{% div className="flex flex-col p-4"%}
73+**New Hooniverse**
74+
75+Discussion group for the Urbit stack. Open to beginner, intermediate, and advanced developers
76+
77+{% /div %}
78+{% /div %}
79+{% /link %}
80+
81+<br>
82+
83+Fledgling developers may also be interested in a framework that allows Urbit apps to be built entirely in Javascript from Holium, as well as the Foundation’s grants program that provides opportunities for junior devs to tackle challenges at their level and take ownership of some of the Urbit address space.
84+
85+{% link href="https://holium.gitbook.io/tomedb/" %}
86+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
87+{% div className="flex flex-col p-4"%}
88+**TomeDB**
89+
90+A framework for building Urbit apps with Javascript
91+
92+{% /div %}
93+{% /div %}
94+{% /link %}
95+
96+<br>
97+
98+{% link href="/grants" %}
99+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
100+{% div className="flex flex-col p-4"%}
101+**Grants**
102+
103+Build on Urbit and get rewarded for it
104+
105+{% /div %}
106+{% /div %}
107+{% /link %}
108+
109+<br>
content/campus/blockchain-enthusiasts.md+41−2
@@ -9,6 +9,45 @@ hide_previous_title = "true"
9image = "https://media.urbit.org/site/understanding-urbit/urbit-id/urbit-id-cards%402x.png"
9image = "https://media.urbit.org/site/understanding-urbit/urbit-id/urbit-id-cards%402x.png"
10+++
10+++
11
11
12−[Blockchain Enthusiast copy goes here]
12+After 15 years, the unsolved part of blockchains is still off-chain interaction. Sure, we have centralized platforms that will allow users to wear an NFT as a badge, and some even more centralized attempts at governance tooling, but we have yet to see the promised Cambrian explosion of general-purpose decentralized applications. What happened?
13
13
14−Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
14+It turns out that without full-stack sovereignty — which is to say, without Urbit — attempts at anything more than simple transaction and representation are compromised from the onset, and the ultimate realization of Web3 is restricted to those with the sysadmin skills to to run confusing systems themselves. So despite predating Bitcoin by about 5 years, Urbit’s vision of sound, easy-to-use decentralized computing dovetails neatly with that of sound, easy-to-use, decentralized money.
15+
16+{% link href="/bitcoin" %}
17+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
18+{% div className="flex flex-col p-4"%}
19+**Bitcoin on Urbit: The Sovereign Stack**
20+
21+Build on Urbit and get rewarded for it
22+
23+{% /div %}
24+{% /div %}
25+{% /link %}
26+
27+<br>
28+
29+{% link href="https://uqbar.network/" %}
30+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
31+{% div className="flex flex-col p-4"%}
32+**Uqbar**
33+
34+The Urbit-native layer 2 Ethereum rollup
35+
36+{% /div %}
37+{% /div %}
38+{% /link %}
39+
40+<br>
41+
42+{% link href="https://developers.urbit.org/reference/azimuth/azimuth" %}
43+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
44+{% div className="flex flex-col p-4"%}
45+**Azimuth**
46+
47+Urbit’s PKI system on Ethereum
48+
49+{% /div %}
50+{% /div %}
51+{% /link %}
52+
53+<br>
content/campus/creatives.mdnew file+23
@@ -0,0 +1,23 @@
1++++
2+title = "Creatives"
3+description = "What Urbit feels like to an everyday user"
4+weight = 5
5+[extra]
6++++
7+
8+Look, this thing is being built in flight. Most of the low-hanging fruit is still there, waiting to be picked by those with the technical chops to do so. Opportunities outside that are limited.
9+
10+Still, even in its relatively nascent state, it is already exceedingly obvious that Urbit will become the premier places for communities to organize on their own terms. There are already publishing tools that allow individuals to wholly replace monopolistic platforms, chief among them being Studio from Tirrel.
11+
12+{% link href="https://urbit.studio/" %}
13+{% div className="display inline-callout flex items-center bg-wall-100 rounded-xl pl-4 mt-4" %}
14+{% div className="flex flex-col p-4"%}
15+**Grants**
16+
17+Publish and earn on Urbit
18+
19+{% /div %}
20+{% /div %}
21+{% /link %}
22+
23+<br>
content/campus/everyone-else.mddeleted−10
@@ -1,10 +0,0 @@
1−+++
2−title = "Everyone Else"
3−description = "What Urbit feels like to an everyday user"
4−weight = 5
5−[extra]
6−+++
7−
8−[Everyone Else copy goes here]
9−
10−Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
content/campus/software-developers.mddeleted−11
@@ -1,11 +0,0 @@
1−+++
2−title = "Software Developers"
3−description = "What Urbit should feel like to an everyday user"
4−weight = 3
5−[extra]
6−image = "https://media.urbit.org/site/understanding-urbit/intro/intro-5.jpg"
7−+++
8−
9−[Software Developer copy goes here]
10−
11−Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
content/events/2023-05-20-campus-foobar2.md+1−1
@@ -6,7 +6,7 @@ image = "https://news.berkeley.edu/wp-content/uploads/2020/07/APA-aerial19_054_F
6registration_url = "https://www.google.com/"
6registration_url = "https://www.google.com/"
7description = ""
7description = ""
8timezone = "America/Los_Angeles"
8timezone = "America/Los_Angeles"
9−starts = "2023-05-20T20:00:00.000-07:00"
9+starts = "2023-05-20T20:00"
10dark = true
10dark = true
11darken_image = true
11darken_image = true
12youtube = ""
12youtube = ""
pages/campus/[[...slug]].js+15−23
@@ -109,38 +109,29 @@ export default function Home({
109 */}
109 */}
110
110
111
111
112− <Section className="pb-12">
112+ <Section narrow className="pb-12">
113 <div className="flex flex-col space-y-4 md:space-y-0 md:flex-row md:space-x-4">
113 <div className="flex flex-col space-y-4 md:space-y-0 md:flex-row md:space-x-4">
114− <Link href="/campus/software-developers#reading">
114+ <Link href="https://airtable.com/shrmfUVpMskWw145u">
115− <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
116− <div className="flex flex-col p-4 h-full relative">
117− <div className="pt-1">
118− <p className="mb-2 font-semibold leading-5">Urbit for Software Developers</p>
119− <p className="text-sm leading-5">Learn how to build on the clean-slate OS and network for the 21st century</p>
120− </div>
121− </div>
122− </div>
123− </Link>
124− <Link href="/campus/blockchain-enthusiasts#reading">
125 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
115 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
126 <div className="flex flex-col p-4 h-full relative">
116 <div className="flex flex-col p-4 h-full relative">
127 <div className="pt-1">
117 <div className="pt-1">
128− <p className="mb-2 font-semibold leading-5">Urbit for Blockchain Enthusiasts</p>
118+ <p className="mb-2 font-semibold leading-5">Get on Urbit</p>
129− <p className="text-sm leading-5">Learn how sound computing and sound digital money fit together</p>
119+ <p className="text-sm leading-5">Start exploring the network and OS — for free</p>
130 </div>
120 </div>
131 </div>
121 </div>
132 </div>
122 </div>
133 </Link>
123 </Link>
134− <Link href="/campus/everyone-else#reading">
124+ <Link href="https://developers.urbit.org/courses">
135 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
125 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
136 <div className="flex flex-col p-4 h-full relative">
126 <div className="flex flex-col p-4 h-full relative">
137 <div className="pt-1">
127 <div className="pt-1">
138− <p className="mb-2 font-semibold leading-5">Urbit for Everyone Else</p>
128+ <p className="mb-2 font-semibold leading-5">Courses</p>
139− <p className="text-sm leading-5">For those without the technical chops</p>
129+ <p className="text-sm leading-5">Sign up for one of the Foundation's cohort-based courses in Urbit development</p>
140 </div>
130 </div>
141 </div>
131 </div>
142 </div>
132 </div>
143 </Link>
133 </Link>
134+
144 <Link href="#events">
135 <Link href="#events">
145 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
136 <div className="cursor-pointer bg-wall-100 rounded-xl min-h-0 flex-1">
146 <div className="flex flex-col p-4 h-full relative">
137 <div className="flex flex-col p-4 h-full relative">
@@ -158,7 +149,7 @@ export default function Home({
158
149
159
150
160 {
151 {
161− //embedding test w/ overview page:
152+ //funnel, repurposed from /overview page:
162 }
153 }
163
154
164 <Section>
155 <Section>
@@ -239,7 +230,7 @@ export default function Home({
239const childPages = (thisLink, children, level = 0) => {
230const childPages = (thisLink, children, level = 0) => {
240 const router = useRouter();
231 const router = useRouter();
241
232
242− const isThisPage = router.asPath === thisLink;
233+ const isThisPage = router.asPath === thisLink || router.asPath === `${thisLink}#reading`;
243
234
244 const pageItemClasses = classnames({
235 const pageItemClasses = classnames({
245 "text-base type-ui": level === 0,
236 "text-base type-ui": level === 0,
@@ -249,8 +240,8 @@ const childPages = (thisLink, children, level = 0) => {
249 return (
240 return (
250 <ul className="">
241 <ul className="">
251 <li className="pb-2">
242 <li className="pb-2">
252− <Link href="/campus">
243+ <Link href="/campus#reading">
253− <a className={`${pageItemClasses} cursor-pointer`}>Get on Urbit</a>
244+ <a className={`${pageItemClasses} cursor-pointer`}>Software Developers</a>
254 </Link>
245 </Link>
255 </li>
246 </li>
256 {children?.map((child) => (
247 {children?.map((child) => (
@@ -265,7 +256,8 @@ const childPages = (thisLink, children, level = 0) => {
265const pageTree = (thisLink, tree, level = 0) => {
256const pageTree = (thisLink, tree, level = 0) => {
266 const router = useRouter();
257 const router = useRouter();
267
258
259+
268− const isThisPage = router.asPath === thisLink;
260+ const isThisPage = router.asPath.includes(thisLink);
269
261
270 const pageItemClasses = classnames({
262 const pageItemClasses = classnames({
271 "text-base type-ui": level === 0,
263 "text-base type-ui": level === 0,
@@ -275,7 +267,7 @@ const pageTree = (thisLink, tree, level = 0) => {
275
267
276 return (
268 return (
277 <>
269 <>
278− <Link href={thisLink}>
270+ <Link href={thisLink + "#reading"}>
279 <a className={`${pageItemClasses} cursor-pointer`}>{tree.title}</a>
271 <a className={`${pageItemClasses} cursor-pointer`}>{tree.title}</a>
280 </Link>
272 </Link>
281 </>
273 </>