---
title: Overview
description: Build, test, and ship your app — CLI commands, integration tests, CI, and publishing to a server or to npm.
icon: "rocket"
---

The **operations layer** is everything you do *to* your app rather than *with* it: invoking CLI commands, running integration tests against a real Twenty server, configuring CI, and shipping releases — either as a tarball deployed to a single server or as an npm package listed in the marketplace.

```text
   develop ─▶ test ─▶ build ─▶ deploy / publish
   ───────    ────    ─────    ─────────────────
   yarn       yarn    yarn     yarn twenty app:publish --private  (tarball → one server)
   twenty     test    twenty
   dev                dev:build    yarn twenty app:publish         (npm → marketplace)
```

## In this section

<CardGroup cols={2}>
  <Card title="CLI" icon="terminal" href="/developers/extend/apps/operations/cli">
    `yarn twenty` reference — exec, logs, uninstall, remotes.
  </Card>
  <Card title="Syncing & recovery" icon="compass" href="/developers/extend/apps/operations/sync-and-recovery">
    Which command when, reading the sync diff, and a recovery ladder.
  </Card>
  <Card title="Testing" icon="flask" href="/developers/extend/apps/operations/testing">
    Vitest setup, integration tests, type checking, CI workflow.
  </Card>
  <Card title="Publishing" icon="upload" href="/developers/extend/apps/operations/publishing">
    Build, deploy a tarball, publish to npm, install.
  </Card>
</CardGroup>
