---
title: "Prepare your app template"
description: "Write the ARX app template that puts your application in App Market: the directory layout, the manifest blocks ARX reads, and the full field reference"
canonical_url: "https://developer.ardge.com/en/guide/isv/prepare-app-template"
---
# Prepare your app template

> Write the ARX app template that puts your application in App Market: the directory layout, the manifest blocks ARX reads, and the full field reference

## Overview

The app template is what makes your application installable on ARX. It is a directory of YAML that carries your application's identity, the resources it needs, the settings users fill in at install time, and a pointer to the Helm chart that runs it.

This page covers the layout of that directory and the manifest blocks ARX reads.

## What you'll learn

- Lay out a template directory and pick a template id
- Fill in the manifest blocks: metadata, resources, form fields, deployment, and dependencies
- Add the optional files that shape how your application appears in App Market

## Applies to

- ARX OS 1.0 and later

## Before you begin

- Your application is packaged as a container image, and that image can be pulled from an address the ARX system can reach
- You know the OCI registry your Helm chart is published to, so the template can point at it

<note>

**Download the skills:** the bundle is [arx-isv-skills-v0.6.4.zip](https://developer.ardge.com/skills/arx-isv-skills-v0.6.4.zip) (about 185 KB) — unzip it and copy the folders inside into your project's `.claude/skills/`.

</note>

<tip>

**Let an AI agent write it for you:** point your AI agent at the skills bundle and have it generate the template from your application's details.

</tip>

## Directory layout

Templates sit directly under `templates/`, and each template's directory name is its id:

```text
templates/
- publisher.yaml
- apps.your-app/
  - manifest.yaml         # Application metadata and configuration
  - arx.yaml              # Platform resource bindings (optional)
  - icon.svg              # Application icon (optional)
  - localization.yaml     # Translations (optional)
  - README.md             # English documentation (optional)
  - README.zh-TW.md       # Traditional Chinese documentation (optional)
  - screenshots/          # Application screenshots (optional)
  - manifests/
    - values.yaml         # Helm chart values
```

An application id is `apps.<name>`, where `<name>` matches `^[a-z][a-z0-9-]*$`. The id in `metadata.id` must equal the directory name — validation fails when they differ.

## What goes in the manifest.yaml

<table>
<thead>
  <tr>
    <th>
      Block
    </th>
    
    <th>
      What it carries
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        metadata
      </code>
    </td>
    
    <td>
      Id, name, version, release date, categories, description, icon, screenshots, developer, supported languages, and tags — this is what App Market displays
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        resources
      </code>
    </td>
    
    <td>
      CPU, memory, storage, GPU count, and VRAM your application needs
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        deployment
      </code>
    </td>
    
    <td>
      The Helm repository, chart, version, and values files — what the chart has to expose is covered in <a href="https://developer.ardge.com/en/guide/isv/prepare-arx-yaml">
        Prepare your Helm chart
      </a>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        dependencies
      </code>
    </td>
    
    <td>
      The recommend models when install the application — a dependency id must name a template in the same repository
    </td>
  </tr>
</tbody>
</table>

## Optional files

`icon.svg` is the icon App Market lists your application under. Point `metadata.icon` at it — a path relative to the manifest, or an `https` URL:

```yaml
metadata:
  icon: ./icon.svg
```

Make it square and 256×256 or larger, on a transparent background. SVG is preferred.

`screenshots/` holds the product images shown on your application's App Market page — at most two. List them in `metadata.screenshots`, in the order you want them displayed:

```yaml
metadata:
  screenshots:
    - ./screenshots/dashboard.png
    - ./screenshots/settings.png
```

Each entry is a path relative to the manifest, or an `https` URL. Nothing validates that a path resolves, so a typo surfaces as a missing image on the App Market page rather than as a failed run.

`localization.yaml` translates every user-facing string except the name. The English default.

## Next step

<card-group>
<card icon="i-lucide-cable" title="Prepare your arx.yaml" to="https://developer.ardge.com/en/guide/isv/prepare-arx-yaml">

Declare the platform resources your application needs, and how their connection details reach your pods

</card>
</card-group>


## Sitemap

See the full [sitemap](https://developer.ardge.com/sitemap.md) for all pages.
