# Documentation > Guides for getting started, daily work, and publishing your projects on the Application Platform, split into a beginner path and a developer path. Grouped Markdown links for every documentation page, in sidebar order. ## Quickstart - [Quickstart](https://www.application-platform.com/en/docs/quickstart/index.md): Four steps onto the platform: install the ap CLI, add the agent plugin, import or create a project, run and publish. ## For beginners - [What is the Application Platform?](https://www.application-platform.com/en/docs/what-is-the-platform/index.md): The Application Platform takes care of repositories, pipelines, servers, and deployments so that you can concentrate on your application. - [Terms you will come across](https://www.application-platform.com/en/docs/basics/index.md): Repository, commit, pipeline, server, Docker, and workspace are terms you will meet constantly on the Application Platform, and each of them is explained briefly and in relation to the platform. - [Create your first project](https://www.application-platform.com/en/docs/getting-started/index.md): You register, create an organization, and create your first project in the wizard, which the platform generates with repositories in GitLab. - [Bring in an existing project](https://www.application-platform.com/en/docs/import-existing-project/index.md): A folder you built with Claude Code, Cursor, or Codex comes onto the Application Platform with one prompt, provided its tech stack is supported. - [Set up your computer or work in the browser](https://www.application-platform.com/en/docs/setup-your-computer/index.md): You either work on your own computer, which the setup app prepares, or in a remote workspace in the cloud, and both paths lead to the same project folder. - [Open and run your project](https://www.application-platform.com/en/docs/open-and-run/index.md): You open the project folder in the editor, start a terminal, run the application with ap run-local, and view it in the browser. - [Work with an AI agent](https://www.application-platform.com/en/docs/work-with-ai-agents/index.md): Claude Code, Cursor, and Codex know the rules of your project and talk to the platform directly through the agent plugin. - [Save changes and publish](https://www.application-platform.com/en/docs/save-and-publish/index.md): With a commit and a push your changes land in GitLab, the pipeline brings them to the dev server, and you release production with a click. - [When something does not work](https://www.application-platform.com/en/docs/get-help/index.md): Most typical stumbling blocks when getting started can be checked yourself, and if that is not enough, support helps. - [What is GitLab?](https://www.application-platform.com/en/docs/what-is-gitlab/index.md): GitLab is where the code of your projects lives and where the pipelines run, and day to day you only need a few of its functions. - [What are pipelines?](https://www.application-platform.com/en/docs/what-are-pipelines/index.md): A pipeline tests, versions, builds, and distributes your application after every push to main, and you start the last step to production yourself. ## For developers - [Overview in five minutes](https://www.application-platform.com/en/docs/developer-overview/index.md): Organizations, projects and the generated repositories, the path from push to production, and the two ways of working form the frame in which you work with the platform as a developer. - [CLI and agent plugin](https://www.application-platform.com/en/docs/cli-and-agent-plugin/index.md): The ap CLI is your access to the platform from the terminal, and the agent plugin gives Cursor, Claude Code and Codex the same functions as MCP tools. - [Create a new project](https://www.application-platform.com/en/docs/create-project/index.md): A new project is created in the wizard of the web interface or as JSON through the ap CLI and the MCP tools of the agent plugin. - [Import an existing repository](https://www.application-platform.com/en/docs/agent-project-import/index.md): A local folder becomes a platform project with repositories, pipelines and deployment, either through the agent or with ap platform projects import-local. - [Local development](https://www.application-platform.com/en/docs/local-development/index.md): In the cloned workspace you start every application with ap run-local, use the runtimes from .tool-versions and follow the rules for generated and custom files, which apply to AI agents as well. - [Git workflow and deployment](https://www.application-platform.com/en/docs/git-workflow/index.md): A push to main starts the pipeline, which derives the version from the commit messages, rolls out dev automatically and releases production through a manual job; an earlier state can be restored the same way. ## Development environment - [Working locally](https://www.application-platform.com/en/docs/working-locally/index.md): The setup app prepares your machine and clones all repositories of a project into one shared folder where editors and AI agents see the whole project. - [Requirements](https://www.application-platform.com/en/docs/local-requirements/index.md): A machine running macOS, Windows, or Linux, administrator rights, and your account are all you need, because the setup app installs the development tools during developer setup. - [The setup app](https://www.application-platform.com/en/docs/local-app/index.md): The setup app prepares your machine, clones projects, and opens them in the editor of your choice, while the ap CLI starts applications from the terminal and connects you to the platform. - [Remote workspace](https://www.application-platform.com/en/docs/workspaces-overview/index.md): A remote workspace is a prepared Ubuntu VM in the cloud where you work on your projects without installing anything on your own computer. - [Create a workspace](https://www.application-platform.com/en/docs/create-workspace/index.md): Administrators create a workspace in the web interface, pick the project and the person, and let the platform provision the VM. - [Connect to a workspace](https://www.application-platform.com/en/docs/workspace-vm-access/index.md): You reach your workspace through the private Tailscale network, either via RDP or VNC on the desktop or with VS Code in the browser. - [Set up Tailscale](https://www.application-platform.com/en/docs/workspace-vm-tailscale/index.md): Tailscale connects your device to the private workspace network and is required for RDP, SSH, and the workspace apps in the browser. - [macOS](https://www.application-platform.com/en/docs/workspace-vm-tailscale-macos/index.md): On a Mac you install the Tailscale app and sign it in to the platform's workspace network through an alternate server. - [Linux](https://www.application-platform.com/en/docs/workspace-vm-tailscale-linux/index.md): On Linux you install Tailscale with the official script and sign in to the platform's workspace network from the terminal. - [Windows](https://www.application-platform.com/en/docs/workspace-vm-tailscale-windows/index.md): On Windows you install Tailscale and sign in to the platform's workspace network from PowerShell or through the app's settings. - [iOS](https://www.application-platform.com/en/docs/workspace-vm-tailscale-ios/index.md): On iPhone and iPad you set up Tailscale with the platform's coordination server, mainly for status checks and light access. - [Android](https://www.application-platform.com/en/docs/workspace-vm-tailscale-android/index.md): On Android you set up Tailscale with the platform's coordination server and use it on the go mainly for status checks. - [Desktop via RDP](https://www.application-platform.com/en/docs/workspace-rdp/index.md): With an RDP client you open the graphical Ubuntu desktop of your workspace from Windows, macOS, or Linux. - [Desktop via VNC](https://www.application-platform.com/en/docs/workspace-vnc/index.md): VNC is an alternative way to reach the same Ubuntu desktop, provided your workspace offers it. - [Workspace VMs](https://www.application-platform.com/en/docs/workspace-vms/index.md): Workspace VMs are the Ubuntu machines behind a remote workspace, with a desktop, tools, a workspace start page, and Code Server per project. - [Working with projects](https://www.application-platform.com/en/docs/workspace-vm-project-work/index.md): In the workspace, all repositories of a project sit next to each other, and you start, commit, and push as you would on a local computer. - [Installed software](https://www.application-platform.com/en/docs/workspace-ubuntu-software/index.md): The Ubuntu workspace comes with editors, AI agents, runtimes, Docker, and Git, so you can work without installing anything yourself. - [Troubleshooting](https://www.application-platform.com/en/docs/workspace-vm-troubleshooting/index.md): Checks for workspaces when the RDP connection fails, a tool is missing, a port is in use, or a project folder is missing. - [Starting applications](https://www.application-platform.com/en/docs/workspace-ubuntu-dev-scripts/index.md): You start every application of a project with ap run-local in the root of its repository, and the command works the same locally on your machine and in the remote workspace. - [Environment variables](https://www.application-platform.com/en/docs/environment-setup/index.md): The platform writes the generated env files, your own values belong in the custom files, and the deployment to dev and prod is configured in the gitops-configuration repository. ## Editors and AI agents - [Choose your editor](https://www.application-platform.com/en/docs/choosing-your-ide/index.md): VS Code is the recommended starting point, and Cursor, Antigravity, JetBrains, Claude Code and Codex work with the same configuration from local-configuration. - [Cursor, VS Code and Antigravity](https://www.application-platform.com/en/docs/vscode-cursor-antigravity/index.md): The Application Platform extension and the configuration from local-configuration work the same way in VS Code, Cursor and Antigravity, and Cursor adds the agent plugin. - [JetBrains](https://www.application-platform.com/en/docs/jetbrains/index.md): IntelliJ IDEA and other JetBrains IDEs work with platform projects, though with a leaner integration than VS Code. - [Claude Code](https://www.application-platform.com/en/docs/claude-code/index.md): Claude Code works in the terminal or as a desktop app, reads CLAUDE.md and .claude from local-configuration, and gets the agent plugin through its marketplace. - [Codex](https://www.application-platform.com/en/docs/codex/index.md): Codex runs as a CLI, desktop app or VS Code extension, reads AGENTS.md from local-configuration directly, and gets the agent plugin through its marketplace. - [Your own rules for AI agents](https://www.application-platform.com/en/docs/ai-instructions/index.md): In AGENTS.md and the editor rules from local-configuration you give all AI agents in your project your own working instructions, which apply to the whole team. ## Connections and services - [Connections](https://www.application-platform.com/en/docs/connections/index.md): Under Connections you store access to Sentry, Firebase, Cloudflare, IONOS, Kubernetes, and email delivery once for your whole organization. - [Firebase: credentials](https://www.application-platform.com/en/docs/firebase-credentials/index.md): You connect Firebase to your organization with a service account JSON or through OAuth so that the platform can create Firebase projects for push notifications and write the configuration into your apps. - [DNS with Cloudflare](https://www.application-platform.com/en/docs/dns-cloudflare/index.md): If your domain is hosted at Cloudflare, you connect an API token once and the platform writes the A and CNAME records into your zone itself. - [DNS with IONOS](https://www.application-platform.com/en/docs/dns-ionos/index.md): Connect an IONOS API key once – the platform writes A and CNAME records into your zone. - [Kubernetes access](https://www.application-platform.com/en/docs/kubernetes-integration/index.md): You can store access to your Kubernetes cluster under Connections today, even though applications keep running with Docker on the server until the next step. - [Docker Apps from the catalog](https://www.application-platform.com/en/docs/hosted-apps/index.md): Under Docker Apps you run existing software such as WordPress, Nextcloud, or n8n on your own server without setting up a project of your own. - [Email delivery](https://www.application-platform.com/en/docs/email-delivery/index.md): Backends in your projects send email through a mail account that you store for the organization, either as a Mailtrap connection or as a generic SMTP account. - [SMTP with Mailtrap](https://www.application-platform.com/en/docs/smtp-mailtrap-setup/index.md): You create an API token at Mailtrap, store it under Connections, and then monitor status and sending domains directly in the platform. - [SMTP, IMAP and co.](https://www.application-platform.com/en/docs/email-protocols-smtp-imap/index.md): The platform only needs SMTP to send email, while IMAP and POP3 concern mailboxes and play no role in the connection. - [Error tracking](https://www.application-platform.com/en/docs/error-tracking/index.md): Errors from apps, homepages, and backends land in your own Sentry account with stack trace and release version once you have connected it and enabled it per component. - [Sentry: credentials](https://www.application-platform.com/en/docs/sentry-credentials/index.md): You connect your Sentry account to your organization either through OAuth for Sentry Cloud or with an API token, which also works for a self-hosted instance. - [Working with Sentry](https://www.application-platform.com/en/docs/working-with-sentry/index.md): You open Sentry from the project overview, read issues with stack trace and frequency, and check after each release which errors are new. ## Publishing - [Servers](https://www.application-platform.com/en/docs/servers/index.md): Backends, web apps, and websites run on a server that you connect to the platform in one of four ways. - [Your own server (SSH)](https://www.application-platform.com/en/docs/own-server/index.md): You connect an existing Linux server to the platform over SSH, and the platform then sets it up and uses it for deployments. - [Create an SSH key](https://www.application-platform.com/en/docs/create-ssh-key/index.md): You generate an SSH key pair in the terminal, place the public key on the server, and store the private key in the platform. - [Web space (FTP/SFTP)](https://www.application-platform.com/en/docs/webspace-ftp/index.md): Projects that consist of homepages only are uploaded by the pipeline to an existing webspace over FTP or SFTP, so no Docker server is needed. - [Cloud servers](https://www.application-platform.com/en/docs/cloud-servers/index.md): The platform creates and sets up servers in your own Hetzner or Hostinger account, so the servers belong to you and you pay the provider directly. - [Hetzner](https://www.application-platform.com/en/docs/hetzner-tutorial/index.md): You generate an API token in the Hetzner Cloud Console, store it in the platform, and let the platform create a server in your Hetzner account with it. - [Hostinger](https://www.application-platform.com/en/docs/hostinger-tutorial/index.md): You generate an API token in the Hostinger hPanel, store it in the platform, and let the platform create a VPS in your Hostinger account with it. - [Managed server](https://www.application-platform.com/en/docs/managed-server/index.md): The platform provisions, sets up, and operates a managed server itself and bills it through your subscription, so you do not need an account with a cloud provider. - [Domain](https://www.application-platform.com/en/docs/domain/index.md): To make your project reachable under a name of its own, you enter a domain and set the DNS records the platform shows you at your domain provider. - [Buy a domain](https://www.application-platform.com/en/docs/buy-domain/index.md): The platform does not sell domains, so you buy one from a registrar and make sure above all that you can edit its DNS zone yourself. - [Configure DNS](https://www.application-platform.com/en/docs/domain-how-to/index.md): You copy the DNS records from the platform's domain detail into your domain provider's DNS management and wait until a check mark appears in the Status column. - [DNS with Cloudflare](https://www.application-platform.com/en/docs/dns-cloudflare/index.md): If your domain is hosted at Cloudflare, you connect an API token once and the platform writes the A and CNAME records into your zone itself. - [DNS with IONOS](https://www.application-platform.com/en/docs/dns-ionos/index.md): Connect an IONOS API key once – the platform writes A and CNAME records into your zone. - [Apps (iOS and Android)](https://www.application-platform.com/en/docs/publish-apps/index.md): The pipeline builds and signs your app, distributes it to TestFlight and the Internal Track, and then waits for you to release it to the store. - [Store accounts](https://www.application-platform.com/en/docs/store-accounts/index.md): The platform only uploads builds to Apple and Google when your organization has given it access to App Store Connect and the Google Play Console. - [Developer account](https://www.application-platform.com/en/docs/app-store-developer-account/index.md): Before you can create an API key for the platform, you need a membership in the Apple Developer Program and access to App Store Connect. - [Credentials](https://www.application-platform.com/en/docs/app-store-credentials/index.md): How to create an App Store Connect API key and store it in the platform together with the team ID and team name. - [Bundle identifiers](https://www.application-platform.com/en/docs/app-store-bundle-identifiers/index.md): For iOS and macOS, the platform offers the bundle identifiers of your Apple team for selection; you create new identifiers in the Apple Developer portal. - [Developer account](https://www.application-platform.com/en/docs/google-play-developer-account/index.md): For Android releases through Google Play you need a developer account in the Google Play Console before you can create a service account for the platform. - [Credentials](https://www.application-platform.com/en/docs/play-store-credentials/index.md): How to create a Google Cloud service account for the Google Play Android Developer API, grant it access in the Play Console, and store the JSON key in the platform. - [Package names](https://www.application-platform.com/en/docs/play-store-package-names/index.md): For Android, the platform offers the apps of your Play Store account for selection; you create a new app with its package name in the Google Play Console. - [Import upload key](https://www.application-platform.com/en/docs/android-keystore-import/index.md): An app that is already on Google Play must keep being signed with its original upload key; you import that key into the platform once. - [Store metadata](https://www.application-platform.com/en/docs/store-metadata/index.md): All store texts and images of your app live version-controlled in the app repository, and the pipeline uploads them every time it publishes. - [Review notes](https://www.application-platform.com/en/docs/app-store-review/index.md): Apple and Google review every submission before the app appears in the store; a demo account for the reviewers and complete metadata prevent the most common rejections. - [Desktop applications](https://www.application-platform.com/en/docs/publish-desktop-apps/index.md): The pipeline builds installers for macOS, Windows, and Linux, signs them if you want, and uploads macOS apps to the Mac App Store when needed. - [Azure Artifact Signing](https://www.application-platform.com/en/docs/azure-artifact-signing-setup/index.md): How to create an Artifact Signing account in Azure, get your organization verified, and set up the certificate profile and service principal for the pipeline. - [Credentials](https://www.application-platform.com/en/docs/azure-artifact-signing-credentials/index.md): The platform signs Windows builds with your service principal and certificate profile from Azure, whose values you store once for the organization. - [Developer account](https://www.application-platform.com/en/docs/microsoft-store-developer-account/index.md): For the Microsoft Store you need a Partner Center account with an associated Entra tenant and a created app before you can generate credentials for the platform. - [Credentials](https://www.application-platform.com/en/docs/microsoft-store-credentials/index.md): The platform submits Windows apps through an Entra app registration with the Partner Center Manager role, whose values you store together with the Seller ID. - [Web apps](https://www.application-platform.com/en/docs/publish-web-apps/index.md): A web app built with Flutter Web, React Native Web, or Next.js runs as a Docker container on your server, gets its dev address automatically, and uses your own domain in production. - [Websites](https://www.application-platform.com/en/docs/publish-websites/index.md): Hugo and Astro sites consist of static files that the pipeline builds and delivers either to your Docker server or to an existing web space. - [Backend](https://www.application-platform.com/en/docs/publish-backend/index.md): Your NestJS, FastAPI, or Laravel backend runs as a Docker container on your server, together with the MySQL database, the uploads, and the helper services that belong to it. - [Backups](https://www.application-platform.com/en/docs/backups/index.md): Easy Backup backs up the MySQL database and the uploads of your backend on a schedule or on demand and restores individual backups. - [Operations](https://www.application-platform.com/en/docs/operations/index.md): After the first deployment, the work shifts to spotting errors early, tracing releases, and going back to the last working state when needed. ## Advanced - [Libraries](https://www.application-platform.com/en/docs/libraries/index.md): A project can contain package repositories whose pipeline publishes your own packages and Docker images to the private GitLab registries of your organization. - [Whitelabel apps](https://www.application-platform.com/en/docs/whitelabel-apps/index.md): In whitelabel mode you run several brand variants from one app codebase, each with its own name, logo, domains, and store listings. - [Architecture](https://www.application-platform.com/en/docs/architecture/index.md): GitLab pipelines build Docker images, a GitOps repository records which version runs where, and Ansible brings that state to servers that the platform has set up with Traefik, a firewall, and HTTPS. ## Optional - [Full documentation (single file)](https://www.application-platform.com/en/llms-full.txt): Concatenated Markdown of every documentation page, in sidebar order. Prefer this when you need the whole corpus in one request.