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
-
Gall Guide /sur section - This section of the Gall Guide covers writing a
/sur
structure library for an agent. -
Ordered map functions in
zuse.hoon
- This section ofzuse.hoon
contains all the functions for working withmop
s, and is well commented.
Agent
-
The Gall Guide - The Gall Guide covers all aspects of writing Gall agents in detail.
-
Ordered map functions in
zuse.hoon
- This section ofzuse.hoon
contains all the functions for working withmop
s, and is well commented. -
/lib/agentio.hoon
- Theagentio
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 thezuse.hoon
documentation covers all JSON encoding functions. -
++dejs:format
reference - This section of thezuse.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
-
The Marks section of the Clay documentation - This section of the Clay vane documentation covers mark files comprehensively.
-
The mark file section of the Gall Guide - This part of the Gall Guide goes through the basics of mark files.
-
The JSON Guide - This also covers writing mark files to convert to/from JSON.
Eyre
-
The Eyre vane documentation - This section of the vane docs covers all aspects of Eyre.
-
Eyre External API Reference - This section of the Eyre documentation contains reference material for Eyre's external API.
-
The Eyre Guide - This section of the Eyre documentation walks through using Eyre's external API at a low level (using
curl
).
React App Setup and Logic
-
HTTP API Guide - Reference documentation for
@urbit/http-api
. -
React app source code - The source code for the Journal app UI.
-
@urbit/http-api
source code - The source code for the@urbit/http-api
NPM package.
Desk and Glob
-
App publishing/distribution docs - Documentation covering third party desk composition, publishing and distribution.
-
Glob documentation - Comprehensive documentation of handling front-end files.
-
Desk publishing guide - A step-by-step guide to creating and publishing a desk.