on master help sign in
text edits
340478eGordon
content/campus/_index.md+10−18
@@ -5,41 +5,33 @@ description = "Getting started as a software developer on Urbit"
5sort_by = "weight"
5sort_by = "weight"
6+++
6+++
7
7
8−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. 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.
9
8
10−Now stop imagining, because we’ve already built it.
9+Urbit offers foundational primitives that make it easy to build decentralized applications. This means developers can focus on creativity and application logic instead of operations to make sure the server or database doesn't go down.
11
10
12−Like anything else, the best way to go about learning how to build on Urbit is to forge your own path. [Get on the network](https://airtable.com/shrmfUVpMskWw145u), clicking around this website. If you attended a Campus Outreach event and remember a term you didn’t understand, go to the search bar in the top right and see what comes up.
13
11
14−Here are a few links to help get you started:
12+Here are a few links to resources for developers:
15
13
16−—
17
14
18### [Urbit Developers Overview](https://developers.urbit.org/)
15### [Urbit Developers Overview](https://developers.urbit.org/)
19−An overview of using Urbit for development
16+An overview of using Urbit for development.
20
17
21### [Lightning Tutorials](https://developers.urbit.org/guides/quickstart/intro)
18### [Lightning Tutorials](https://developers.urbit.org/guides/quickstart/intro)
22−Get a feel for the process of making and deploying an Urbit app in half an hour, no previous experience required
19+Get a feel for the process of making and deploying an Urbit app in half an hour, no previous experience required.
23
20
24### [Core Curriculum](https://developers.urbit.org/guides/core)
21### [Core Curriculum](https://developers.urbit.org/guides/core)
25−Learn the Urbit stack at your own pace
22+Learn the Urbit stack at your own pace.
26
23
27−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 the New Hooniverse group on Urbit.
24+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 over the course of about eight weeks.
28−
29−—
30
25
31### [Live Courses](https://developers.urbit.org/courses)
26### [Live Courses](https://developers.urbit.org/courses)
32−Learn the Urbit stack as part of a group
27+Learn the Urbit stack as part of a group.
33
28
34### [New Hooniverse](https://urbit.org/groups/~hiddev-dannut/new-hooniverse)
29### [New Hooniverse](https://urbit.org/groups/~hiddev-dannut/new-hooniverse)
35−Discussion group for learning the Urbit stack. Open to beginner, intermediate, and advanced developers
30+Discussion group for learning the Urbit stack. Open to beginner, intermediate, and advanced developers.
36−
37−Fledgling developers may also be interested in a new framework from [Holium](https://www.holium.com/) that allows Urbit apps to be built entirely in Javascript, 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.
38
31
39−—
40
32
41### [TomeDB](https://holium.gitbook.io/tomedb/)
33### [TomeDB](https://holium.gitbook.io/tomedb/)
42−A framework for building Urbit apps solely with Javascript
34+A framework for building Urbit apps solely with Javascript.
43
35
44### [Grants](https://urbit.org/grants)
36### [Grants](https://urbit.org/grants)
45−Build on Urbit and take ownership of the network in the process
37+Build on Urbit and take ownership of the network in the process.
content/campus/blockchain-enthusiasts.md+3−2
@@ -10,10 +10,11 @@ hide_previous_title = "true"
10image = "https://media.urbit.org/site/understanding-urbit/urbit-id/urbit-id-cards%402x.png"
10image = "https://media.urbit.org/site/understanding-urbit/urbit-id/urbit-id-cards%402x.png"
11+++
11+++
12
12
13−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+We have yet to see the promised Cambrian explosion of general-purpose decentralized applications promised by blockchains. What happened?
14
14
15−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+While blockchains are good for some problems, there remain others where a more general purpose computing solution is more useful. This is precisely what Urbit is for. Urbit’s vision of sound, easy-to-use, decentralized computing dovetails neatly with that of sound, easy-to-use, decentralized money.
16
16
17+Learn more on how Urbit and blockchains work together:
17
18
18### [Bitcoin on Urbit: The Sovereign Stack](https://urbit.org/bitcoin)
19### [Bitcoin on Urbit: The Sovereign Stack](https://urbit.org/bitcoin)
19How Urbit and Bitcoin fit together
20How Urbit and Bitcoin fit together
content/campus/creatives.md+2−2
@@ -6,9 +6,9 @@ weight = 5
6[extra]
6[extra]
7+++
7+++
8
8
9−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.
9+Urbit offers creatives the means to truly own the distribution of their work. An application becomes a tool you own rather than a service whose terms can change overnight. And with digital ownership on a decentralized network, the incentives of advertising based centralized services and an attention economy no longer apply.
10
10
11−Still, even in its relatively nascent state, it is already exceedingly obvious that Urbit will become the premier platform for communities to organize and build on their own terms.
11+What would the world look like with more decentralized digital ownership? Check out the links below for a preview.
12
12
13### [Tirrel Studio](https://urbit.studio)
13### [Tirrel Studio](https://urbit.studio)
14
14
pages/campus/[[...slug]].js+17−19
@@ -66,7 +66,7 @@ export default function Home({
66 <h1 className="max-w-prose">
66 <h1 className="max-w-prose">
67 Campus Outreach Program
67 Campus Outreach Program
68 </h1>
68 </h1>
69− <h3 className="">
69+ <h3 className="max-w-prose">
70 Leave your mark on the future. Build on Urbit.
70 Leave your mark on the future. Build on Urbit.
71 </h3>
71 </h3>
72 </div>
72 </div>
@@ -77,25 +77,20 @@ export default function Home({
77 {/* Brief explanatory paragraph */}
77 {/* Brief explanatory paragraph */}
78 <Section className="sm:flex sm:space-x-8 space-y-8 sm:space-y-0">
78 <Section className="sm:flex sm:space-x-8 space-y-8 sm:space-y-0">
79
79
80− <div className="sm:w-2/3 space-y-8">
80+ <div className="space-y-8">
81 <div className="space-y-4">
81 <div className="space-y-4">
82− <p className="type-ui">
82+ <p className="type-ui max-w-prose">
83− For those with the will to think outside the box: a complete reimagining of networked computing from the OS up, designed to facilitate the construction
83+ The Urbit Foundation’s Campus Outreach Program aims to find ambitious students interested in reimagining the possibilities of decentralized systems and networked computing.
84− of powerful, enduring, and decentralized systems.
85 </p>
84 </p>
85+
86− <p className="type-ui">
86+ <p className="type-ui max-w-prose">
87− The Urbit Foundation’s Campus Outreach Program aims to find ambitious students interested in leaving the old
88− world behind and providing them with the information and resources to help build a better future.
89− If you fit that description and want us to come to your university,{" "}
87+ Do you fit that description and want us to come to your university?{" "}
90 <Link href="/campus#contact" passHref>
88 <Link href="/campus#contact" passHref>
91− <a>get in touch.</a>
89+ <a>Get in touch.</a>
92 </Link>{" "}
90 </Link>{" "}
93 </p>
91 </p>
94 </div>
92 </div>
95
93
96− </div>
97−
98− <div className="sm:w-1/3">
99
94
100 <Link href="https://airtable.com/shrmfUVpMskWw145u" passHref>
95 <Link href="https://airtable.com/shrmfUVpMskWw145u" passHref>
101 <a className="button-lg bg-green-400 text-white type-ui max-w-fit">
96 <a className="button-lg bg-green-400 text-white type-ui max-w-fit">
@@ -103,6 +98,7 @@ export default function Home({
103 </a>
98 </a>
104 </Link>
99 </Link>
105
100
101+
106 </div>
102 </div>
107 </Section>
103 </Section>
108
104
@@ -116,17 +112,19 @@ export default function Home({
116 {
112 {
117 //funnel, repurposed from /overview page:
113 //funnel, repurposed from /overview page:
118 }
114 }
119− <div id="reading"></div>
115+ <div id="learn"></div>
120
116
121 <Section>
117 <Section>
122
118
123− <h2 className="pb-16">Learn about Urbit for</h2>
119+ <h2 className="pb-16">Why use Urbit?</h2>
124
120
125 <div className="flex justify-between sidebar md:space-x-8">
121 <div className="flex justify-between sidebar md:space-x-8">
126 <Sidebar search={search}>
122 <Sidebar search={search}>
127 {childPages("/campus", posts.pages)}
123 {childPages("/campus", posts.pages)}
128 </Sidebar>
124 </Sidebar>
129 <div className={'markdown max-w-prose ' + data.slug }>
125 <div className={'markdown max-w-prose ' + data.slug }>
126+
127+ <h2>{ data.title }</h2>
130 <Markdown.render content={JSON.parse(markdown)} />
128 <Markdown.render content={JSON.parse(markdown)} />
131 </div>
129 </div>
132 </div>
130 </div>
@@ -167,7 +165,7 @@ export default function Home({
167
165
168 <div className="sm:pl-2 align-middle">
166 <div className="sm:pl-2 align-middle">
169 <h2 className=" text-2xl pb-2" >Get in touch</h2 >
167 <h2 className=" text-2xl pb-2" >Get in touch</h2 >
170− <p className="max-w-prose pb-4">
168+ <p className="max-w-prose type-ui pb-4">
171 Not sure how to get started after attending an event? Want to schedule one at your university?
169 Not sure how to get started after attending an event? Want to schedule one at your university?
172 Don't be a stranger. Reach out at the email below, or{" "}
170 Don't be a stranger. Reach out at the email below, or{" "}
173 <Link href="https://urbit.org/groups/~tidren-nosryg/campus-outreach" passHref>
171 <Link href="https://urbit.org/groups/~tidren-nosryg/campus-outreach" passHref>
@@ -198,7 +196,7 @@ export default function Home({
198const childPages = (thisLink, children, level = 0) => {
196const childPages = (thisLink, children, level = 0) => {
199 const router = useRouter();
197 const router = useRouter();
200
198
201− const isThisPage = router.asPath === thisLink || router.asPath === `${thisLink}#reading`;
199+ const isThisPage = router.asPath === thisLink || router.asPath === `${thisLink}#learn`;
202
200
203 const pageItemClasses = classnames({
201 const pageItemClasses = classnames({
204 "text-base type-ui": level === 0,
202 "text-base type-ui": level === 0,
@@ -208,7 +206,7 @@ const childPages = (thisLink, children, level = 0) => {
208 return (
206 return (
209 <ul className="">
207 <ul className="">
210 <li className="pb-2">
208 <li className="pb-2">
211− <Link href="/campus#reading">
209+ <Link href="/campus#learn">
212 <a className={`${pageItemClasses} cursor-pointer`}>Software Developers</a>
210 <a className={`${pageItemClasses} cursor-pointer`}>Software Developers</a>
213 </Link>
211 </Link>
214 </li>
212 </li>
@@ -235,7 +233,7 @@ const pageTree = (thisLink, tree, level = 0) => {
235
233
236 return (
234 return (
237 <>
235 <>
238− <Link href={thisLink + "#reading"}>
236+ <Link href={thisLink + "#learn"}>
239 <a className={`${pageItemClasses} cursor-pointer`}>{tree.title}</a>
237 <a className={`${pageItemClasses} cursor-pointer`}>{tree.title}</a>
240 </Link>
238 </Link>
241 </>
239 </>