---
title: "Application Developers"
description: "This path is for developers building external applications that use ZeyOS as the central source of business data and business logic."
canonical_url: "https://www.zeyos.com/guide/tutorials/application-developers"
markdown_url: "https://www.zeyos.com/ai/guide/guide/tutorials/application-developers.md"
section: "guide"
authority: "guide"
language: "en"
source_repository: "zeyos/client"
source_path: "docs/05-tutorials/00-application-developers.md"
source_revision: "465c2c7016f5028405c987b17704f3491a597857"
---

# Application Developers

This path is for developers building external applications that use ZeyOS as the central source of business data and business logic.

For v1, the scope is explicitly **external integrations**:

- browser UIs
- server-side services
- automation backends
- connected internal tools

These docs do **not** cover authoring native ZeyOS platform artifacts.

## Choose Your Starting Point

| Goal | Start here | Why |
|------|------------|-----|
| Decide between browser, token, and server architectures | [Integration Architecture](https://www.zeyos.com/guide/tutorials/integration-architecture) | Compares auth and deployment models before you write code |
| Build a browser UI or internal tool | [Browser UI Playbook](https://www.zeyos.com/guide/tutorials/build-your-own-zeyos-frontend) | Covers session mode, controlled browser token mode, list queries, CRUD, and UI-safe patterns |
| Build a backend, worker, or scheduled integration | [Server-Side Integrations](https://www.zeyos.com/guide/tutorials/server-side-integrations) | Covers token storage, refresh, low-level requests, and sync jobs |
| Reuse working implementation patterns | [Sample Applications](https://www.zeyos.com/guide/sample-apps/kanban) | Shows reusable frontend patterns without framework lock-in |
| Need the full generated surface | [JavaScript Client](https://www.zeyos.com/guide/javascript-client/getting-started) | Full API coverage and low-level request escape hatch |

## Recommended Defaults

- Prefer `@zeyos/client` for JavaScript applications.
- Use `filters` in client code unless you have a reason to stay with raw API `filter`.
- Use `visibility: 0` on resources that **have** the column — `accounts`, `contacts`, `tickets`, `tasks`, `projects`, `items`, `documents`, `notes`, `opportunities`, `appointments`, `campaigns`, `mailinglists`, `storages`, `contracts`, `ledgers` — unless you want archived (`1`) or deleted (`2`) records. **Most other resources have no `visibility` column** — `transactions` (and every billing/procurement entity), `payments`, `messages`, `actionsteps`, `addresses`, `users`, `prices`, `dunning` — and filtering on it there returns an opaque HTTP 400. Check with `zeyos describe <entity>` when unsure.
- Use explicit `body` objects for update operations that also include path parameters such as `ID`.
- Treat `extdata` and `expand` as separate concepts:
  - `extdata` exposes custom fields
  - `expand` inlines JSON or binary columns

## Next Steps

- Read [Integration Architecture](https://www.zeyos.com/guide/tutorials/integration-architecture)
- Pick either the [Browser UI Playbook](https://www.zeyos.com/guide/tutorials/build-your-own-zeyos-frontend) or [Server-Side Integrations](https://www.zeyos.com/guide/tutorials/server-side-integrations)
- Use the [API Reference](https://www.zeyos.com/guide/api-reference/data-retrieval) and [JavaScript Client docs](https://www.zeyos.com/guide/javascript-client/making-requests) as the detailed reference layers
