Next Steps

Overview

Teaching: 15 min
Exercises: 0 min
Questions
  • What should I do next to contribute to the Urbit community?

Objectives
  • Install the app on another ship (planet, moon, or comet).

What Else is There?

We have had a whirlwind tour of developing basic %gall agents for Urbit. We have necessarily had to leave out some important topics, including:

  1. Graph Store operations and data format
  2. Endpoint operations using %eyre
  3. Detailed JSON production and parsing
  4. Remote subscriptions and kicks
  5. Front-end development (à la Landscape)
  6. Threading for transient data requests
  7. Composition of store/hook/view arrangement

For a demonstration of a few of these, I suggest you examine dcSpark/authenticate-with-urbit-id, which is a small agent that demonstrates parsing JSON input, subscribing to Graph Store, and some other simple elements of %gall agents.

For a more complex single-purpose example including front-end development, you should examine yosoyubik/canvas, a peer-to-peer drawing app with a browser frontend and an Urbit backend.

To learn more about threads, read about Spider in the docs and examine ted/example-fetch.hoon in your own Urbit. Threading is particular useful for handling complicated IO outside of an agent without compromising the agent’s internal state.

Concrete Next Steps

  1. Talk to everyone here. Find out what’s going on, what folks are working on, and how you can plug into the bigger picture.
  2. Identify new ways to use what Urbit offers within your sphere of influence and responsibility.
  3. Just start making things! Lots of small projects are helpful for you to grow and become comfortable with the shifts in mental model and frame that Urbit affords.

Joining the Urbit Developer Community

Discovery

Contributing

The Urbit ecosystem is primarily developed by Tlon Corporation, a few companies (Urbit.Live, Tirrel, dcSpark, and some hosting companies), and an army of open-source contributors. The types of projects which you can contribute to include:

  1. End-user applications (“userspace”, %gall)\
  2. Operating system functionality (Arvo & vanes)
  3. Runtime (king/serf, jets)

As the Urbit developer community grows, there will be opportunities as well for various types of services, ranging from service hosts to star and galaxy owners.

The Tlon contributor’s guide largely focuses on kernel contributor discipline, but provides a good framework for approaching development of any part of the ecosystem.

If you have not participated in an open-source project before, please check these resources as well:

Main Groups

Some community-facing groups which you can use to learn more about programming and developing in Urbit include:

Urbit Foundation Opportunities

The Urbit Foundation maintains an active developer outreach including:

  1. Bounties
  2. Apprenticeships
  3. Grants

Talk to Josh Lehman ~wolref-podlex for more information.

Resources

Key Points

  • The Urbit software distribution service affords a straightforward way to deploy, update, and remove %gall apps.