> For the complete documentation index, see [llms.txt](https://geolytix.gitbook.io/xyz-developer-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://geolytix.gitbook.io/xyz-developer-guide/master.md).

# Introduction

A [Node.js](https://nodejs.org/) framework to develop web applications and APIs for spatial data.

Here is a public accessible deployment: **​**[**https://geolytix.xyz/open**](https://geolytix.xyz/open)**​**

The XYZ framework is designed to serve spatial data from [PostGIS](https://postgis.net/) data sources without the need of additional services. The framework is modular with dependencies on third party open source modules such as the open GIS engine [Turf](https://github.com/Turfjs/turf), the [Leaflet](https://github.com/Leaflet/Leaflet) javascript engine for interactive maps as well as the [jsoneditor](https://github.com/josdejong/jsoneditor) library used for the modification of JSON workspaces.

XYZ is built with a [PfaJn stack](https://medium.com/@goldrydigital/a-fine-pfajn-stack-to-put-maps-on-the-web-bf1a531cae93) using [Fastify](https://www.fastify.io/) as web server and [JsRender](https://www.jsviews.com/) for server side rendering of views.

The code repository should work out of the box (zero-configuration) as [serverless deployments with Zeit Now](https://medium.com/@goldrydigital/the-zeit-is-now-for-serverless-web-mapping-77edebfaf17e).

This documentation is for site administrators as well as developers who would like to contribute to the project. A [**user guide for the XYZ frontend**](https://geolytix.gitbook.io/xyz-user-guide) is hosted in a separate GitBook.

{% hint style="info" %}
**Nomenclature**

The XYZ project consists of a [**backend**](/xyz-developer-guide/infrastructure/server.md) and [**frontend**](/xyz-developer-guide/infrastructure/client.md) component. The frontend will also be referred to as the **client** or **browser** in this documentation. The frontend interface contains a **map control**. Due to the serverless nature of XYZ deployments, we attempt to limit the use of server or serverside when referring to the backend.

[**Environment Settings**](/xyz-developer-guide/environment-settings.md) define the setup of the backend to serve a [**client application**](/xyz-developer-guide/infrastructure/client.md) and [**API**](broken://pages/-LMr2MyKpfRT-dSNygDZ).

[**Workspaces**](/xyz-developer-guide/workspaces.md) are a set of instructions which define the use of data as layers and locations to be used by the client application and API.

An [object **entry**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) is a [JSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON) key/value pair. The **key** being the identifier to look up an entry and retrieve its value. A key must have a **value** associated. Key and value are separated by a colon. Keys must be a string. Values may be a string, numeric, boolean, an array or objects.

[**Locales**](/xyz-developer-guide/workspaces/locales.md) are a collection of regional bounds, gazetteer and layers.

[**Layers**](/xyz-developer-guide/workspaces/layers.md) are data tables which can be displayed and interacted with.

[**Locations**](/xyz-developer-guide/workspaces/infoj.md) are features in data tables which can be selected and interacted with.

[**Deployment**](/xyz-developer-guide/deploying.md) is act of deploying code from the repository to run as an XYZ instance.

[**Endpoints**](/xyz-developer-guide/routes.md) (also [**routes**](/xyz-developer-guide/routes.md)) make up the XYZ application interface. Distinct endpoints can be used to request data and edit data or make changes to the application settings themselves. The domain route (root /) will request the client interface (frontend) which links a graphic user interface and map control to backend endpoints.

[**Token**](/xyz-developer-guide/infrastructure/security/jwt-token.md) (also **acccess token**) is a signed JSON Web Token used to transmit information about a user account from the client to the XYZ backend.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://geolytix.gitbook.io/xyz-developer-guide/master.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.
