---
title: Developers
description: Build apps, use the API, self-host, or contribute to the codebase.
---

import { CardTitle } from "/snippets/card-title.mdx"

<CardGroup cols={3}>
  <Card href="/developers/extend/apps/getting-started/quick-start" img="/images/user-guide/halftone/dev-apps.png">
    <CardTitle>Apps</CardTitle>
    Extend Twenty with custom objects, server-side logic, UI components, and AI agents — all as TypeScript packages.
  </Card>

  <Card href="/developers/extend/api" img="/images/user-guide/halftone/dev-api.png">
    <CardTitle>API</CardTitle>
    REST and GraphQL APIs, webhooks, and OAuth.
  </Card>

  <Card href="/developers/self-host/capabilities/docker-compose" img="/images/user-guide/halftone/dev-self-host.png">
    <CardTitle>Self-Host</CardTitle>
    Run Twenty on your own infrastructure.
  </Card>

  <Card href="/developers/contribute/capabilities/local-setup" img="/images/user-guide/halftone/dev-contribute.png">
    <CardTitle>Contribute</CardTitle>
    Set up the monorepo locally and submit PRs.
  </Card>
</CardGroup>
