Create Apple App Store ASO Texts

Fill this prompt

This prompt generates the subtitle, keywords, promotional text, description and release notes for a current Xcode project. The structure is according to the fastlane.org expectation and can be used immediately

Prompt Template

You are a senior App Store Optimization (ASO) copywriter and localizer. Generate complete,
ready-to-upload App Store Connect metadata text files for THIS project's app, then deliver
them to me as a single ZIP file.

## 1. Learn the app from the project (do this first, do not guess)
Read and synthesize, in this priority order:
1. `fastlane/config/apps.yml` — take the app `name`, `platform`, `primary_locale`, and the
   full `locales` list. If more than one app entry exists, use the one I name; if I named
   none, use the first `ios` app and tell me which you picked.
2. `fastlane/config/aso.yml` — honor `app_positioning.default_tone` and any field limits.
3. `README.md`, any markdown file that contains "description" in it's name, anything under `docs/`, and `user_notes/aso_brief.md` if present.
4. Existing `fastlane/metadata/<primary_locale>/*.txt` (especially `description.txt`,
   `name.txt`, `subtitle.txt`, `keywords.txt`) as ground truth for what the app actually does.

From these, form a short internal understanding: what the app does, its core features, who
it is for, and its key benefit. Do NOT invent features, prices, awards, or claims that the
source material does not support.

## 2. Files to produce, per locale
For EVERY locale listed for the app, produce exactly these five files:
- `description.txt`
- `subtitle.txt`
- `keywords.txt`
- `promotional_text.txt`
- `release_notes.txt`

## 3. Hard character limits (never exceed — count Unicode characters)
- subtitle.txt        ≤ 30
- keywords.txt        ≤ 100
- promotional_text.txt ≤ 170
- description.txt      ≤ 4000
- release_notes.txt   ≤ 4000
If `fastlane/config/aso.yml` specifies different `metadata_fields.<field>.max_length`
values, those override the numbers above. Use the space well but always stay under the cap.

## 4. Field-by-field rules
- description: Benefit-led and scannable. Front-load the single most important sentence —
  the first ~2 lines are what users see before "more". Follow with concrete features from
  the source material, short paragraphs or a tight bulleted list. Tone = the app's
  configured tone (default: clear, useful, non-hype). No hype, no fake urgency, no emoji
  spam, no unverifiable claims.
- subtitle: One punchy benefit or category line, ≤ 30 chars. Do NOT repeat the app name.
- keywords: Comma-separated list, ≤ 100 chars. CRITICAL FORMAT: NO space after the commas
  (e.g. `grid,bot,crypto,trading` — never `grid, bot`). All lowercase. Do NOT include words
  already present in the app name or subtitle (App Store indexes those separately, so
  repeating them wastes space). No duplicate words, no plurals of a word already listed, no
  competitor brand names or trademarks. Maximize distinct, relevant, high-intent terms; if
  it won't fit, drop the least relevant term rather than truncating mid-word.
- promotional_text: One or two sentences of current, changeable messaging, ≤ 170 chars.
- release_notes: Concise, user-facing "what's new" (improvements, fixes, refinements),
  ≤ 4000. Keep it honest and generic unless the source material states specific changes.

## 5. Localization
- The primary locale is the source of truth; write it first.
- For every other locale, write NATIVE, idiomatic copy — genuinely translate and adapt for
  that market. Do NOT output English text with a "localized" label, and do NOT machine-gloss.
- Re-check every limit AFTER translating (translations change length). Keyword lists must be
  localized to real search terms in that language and still follow the no-space-after-comma
  rule and the character cap.

## 6. Output / delivery
- Encode every file as UTF-8 plain text, content only (no markdown, no surrounding quotes),
  ending with a single trailing newline.
- Lay them out mirroring Fastlane's structure, one folder per locale:
      metadata_drafts/<locale>/description.txt
      metadata_drafts/<locale>/subtitle.txt
      metadata_drafts/<locale>/keywords.txt
      metadata_drafts/<locale>/promotional_text.txt
      metadata_drafts/<locale>/release_notes.txt
- Package the whole tree into ONE zip file named `aso_metadata_<app-target>_<date>.zip` and
  give it to me as a downloadable file.
- After the zip, print a short verification table: locale, field, character count, and limit,
  so I can confirm nothing is over. Flag any row that is within 5 characters of its limit.

Treat everything you produce as a DRAFT for my manual review before upload. Do not upload,
submit, or release anything.

Prompt Guide

Best For

  • Starting from a structured, reusable prompt instead of a blank chat.
  • Adapting the prompt to your own inputs while keeping the original intent intact.
  • Workflows related to Software Development, Agents & Vibe Coding, Marketing & Social.

How To Use It

  1. Copy the full prompt template.
  2. Replace each variable with your own context or pick one of the suggested options.
  3. Paste the completed prompt into ChatGPT, Claude, Gemini, or another AI assistant.

Example Starting Point

You are a senior App Store Optimization (ASO) copywriter and localizer. Generate complete,
ready-to-upload App Store Connect metadata text files for THIS project's app, then deliver
them to me as a single ZIP file.

## 1. Learn the app from the project (do this first, do not guess)
Read and synthesize, in this priority order:
1. `fastlane/config/apps.yml` — take the app `name`, `platform`, `primary_locale`, and the
   full `locales` list. If more than one app entry exists, use the one I name; if I named
   none, use the first `ios` app and tell me which you picked.
2. `fastlane/config/aso.yml` — honor `app_positioning.default_tone` and any field limits.
3. `README.md`, any markdown file that contains "description" in it's name, anything under `docs/`, and `user_notes/aso_brief.md` if present.
4. Existing `fastlane/metadata/<primary_locale>/*.txt` (especially `description.txt`,
  ...

How Variables Work

Variable Syntax

Variables are wrapped in {{ and }} and follow this pattern:

{{variable name: option1, option2, option3 }}

Predefined Variables

A selection can reference a predefined variable list using square brackets. These appear in [orange] and provide commonly used values like colors, tones, or languages.

{{Tone: [tones] }}

Custom Selection Lists

You can also provide an inline list of choices separated by commas.

{{Format: bullet points, paragraphs, numbered list }}
💡

Tip: You don't need the PUCO app to use these prompts! Simply copy the template and replace each {{…}} section with your own text directly in ChatGPT, Claude, Gemini, or any other AI assistant.

Use this prompt in seconds — not minutes

Install PUCO for Mac: press a hotkey in any app, fill a smart form, paste into ChatGPT, Claude or Gemini. Every variable becomes a curated dropdown. Your last values are remembered.

Download on the Mac App Store