# 12. Next Steps

We've now covered all the arms of a Gall agent, and everything you need to know to start writing your own agent.

The things haven't touched on yet are front-end development and integration, Eyre's HTTP API for communicating with agents from the web, and dealing with JSON data. The [full-stack walkthrough](/build-on-urbit/app-school-full-stack.md) covers these aspects of Urbit app development, and it also puts into practice many of the concepts we've discussed in this guide, so you might like to work through that next. In addition to that walkthrough, you can refer to the following documents for help writing a web front-end for your app:

* [Eyre's external API reference](/urbit-os/kernel/eyre/external-api-ref.md) - This explains Eyre's HTTP API, through which a browser or other HTTP client can interact with a Gall agent.
* [Eyre's usage guide](/urbit-os/kernel/eyre/guide.md) - This walks through examples of using Eyre's HTTP API.
* [JSON guide](/hoon/json-guide.md) - This walks through the basics of converting Hoon data structures to JSON, for use with a web client. It also covers JSON conversion methods in mark files.
* [Zuse reference](/hoon/zuse.md) - This contains documentation of all JSON encoding and decoding functions included in the `/sys/zuse.hoon` utility library.
* [The software distribution guide](/build-on-urbit/userspace/dist/software-distribution.md) - This covers everything you need to know to distribute apps to other ships. It includes details of bundling a web front-end and serving it to the user in the browser.
* [The HTTP API guide](/build-on-urbit/tools/js-libs/http-api-guide.md) - This is a reference and guide to using the `@urbit/http-api` NPM module.
* [The Sail guide](/hoon/sail.md) - Sail is a domain-specific language for composing XML structure in Hoon. It can be used to compose front-ends for Urbit apps directly in agents, as an alternative approach to having a separate Javascript app.

In addition to these documents about creating a web-based user interface for your app, there are some other guides you might like to have a look at:

* [Threads guide](/urbit-os/base/threads/basics/fundamentals.md) - Threads are like transient agents, typically used for handling complex I/O functionality for Gall agents - like interacting with an external HTTP API.
* [The software distribution guide](/build-on-urbit/userspace/dist/software-distribution.md) - This explains how to set up a desk for distribution, so other people can install your app.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.urbit.org/build-on-urbit/app-school/12-next-steps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
