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
App School /sur section - This section of App School 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
App School I - App School I 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 App School 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.