9. Summary

That's it! We've built our agent and React front-end, put together a desk and published it. We hope this walkthrough has helped you see how all the pieces for together for building and distributing an app in Urbit.

The reference material for each section of this walkthrough is listed below, the source code for our app is available here, and it can be installed from ~pocwet/journal.

In this guide we've built a separate React app for the front-end, but Hoon also has a native domain-specific language for composing HTML structures called Sail. Sail allows you to compose a front-end inside a Gall agent and serve it directly. See the Sail guide for details.

Along with @urbit/http-api, there's also the @urbit/api NPM package, which contains a large number of helpful functions for dealing with Hoon data types and interacting with a number of agents - particularly those used by the Groups app. Its source code is available here.

Reference material

Here is the reference material for each section of this walkthrough.

Types

Agent

  • App School I - App School I covers all aspects of writing Gall agents in detail.

  • Ordered map functions in zuse.hoon - This section of zuse.hoon contains all the functions for working with mops, and is well commented.

  • /lib/agentio.hoon - The agentio library in the %base desk contains a large number of useful functions which making writing Gall agents easier.

JSON

  • The JSON Guide - The stand-alone JSON guide covers JSON encoding/decoding in great detail.

  • The Zuse Reference - The zuse.hoon reference documents all JSON-related functions in detail.

  • ++enjs:format reference - This section of the zuse.hoon documentation covers all JSON encoding functions.

  • ++dejs:format reference - This section of the zuse.hoon documentation covers all JSON decoding functions.

  • Eyre Overview - This section of the Eyre vane documentation goes over the basic features of the Eyre vane.

Marks

Eyre

React App Setup and Logic

Desk and Glob

Edit this page on GitHub

Last modified October 8, 2023