> ## Documentation Index
> Fetch the complete documentation index at: https://bilt.me/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Prompting Guide

> Write better prompts to get better apps from Bilt

The quality of your prompt directly affects the quality of your app. This guide covers how to write prompts that get the best results from Bilt.

## Refine your prompt first

Before you send a prompt to Bilt, iterate on it with an AI chatbot such as ChatGPT, Claude, Gemini, etc. Describe your app idea, ask for follow-up questions, and refine the feature list, user flows, and wording until it reads clearly. That does not consume Bilt tokens — so it is a free way to get better results from Bilt.

## Start with the big picture

Begin with a clear description of what the app does and who it's for. Bilt uses this to make architecture and design decisions.

<CodeGroup>
  ```text Good theme={null}
  A meal planning app for busy parents. Users can browse weekly meal plans,
  save favorites, generate a grocery list from selected meals, and set
  reminders for meal prep. Clean, modern design with a warm color palette.
  ```

  ```text Too vague theme={null}
  A food app
  ```
</CodeGroup>

## Be specific about features

List the features you want. The more specific you are, the closer the result matches your vision.

```text theme={null}
Features:
- Home screen with a weekly calendar view showing planned meals
- Recipe detail screen with ingredients, steps, and prep time
- Grocery list that auto-generates from selected recipes
- Favorites list with swipe-to-remove
- Settings page with dietary preferences (vegetarian, gluten-free, etc.)
```

## Describe the user experience

Tell Bilt what happens when someone uses the app. This helps it build the right navigation and flow.

```text theme={null}
When a user opens the app, they see this week's meal plan. They can tap
any day to see the recipe. From the recipe, they can add it to favorites
or add its ingredients to the grocery list. The grocery list groups items
by category (produce, dairy, etc.) and lets users check off items as they shop.
```

## Specify design preferences

If you have a visual direction in mind, describe it. Otherwise, Bilt picks a clean default or design based on the app type. You can also **attach a screenshot** of a design you want to match.

```text theme={null}
Design: minimal and modern. White background, soft rounded corners,
teal accent color (#2DD4BF). Use SF Pro font. Bottom tab navigation
with icons for Home, Recipes, Grocery List, and Profile.
```

## Iterate in small steps

Don't try to build everything in one message. Start with the core flow, then add features incrementally.

<Steps>
  <Step title="Core structure">
    "Build a meal planning app with a weekly calendar view and recipe detail screen"
  </Step>

  <Step title="Add features">
    "Add a grocery list that generates from selected recipes"
  </Step>

  <Step title="Refine design">
    "Change the color scheme to teal and white, add bottom tab navigation"
  </Step>

  <Step title="Connect data">
    "Add sign-in so users can save their meal plans and favorites"
  </Step>
</Steps>

## Reference what exists

When iterating, reference specific screens or elements so Bilt knows what to change. Even better, attach a screenshot of the screen or element you want to change.

<CodeGroup>
  ```text Good theme={null}
  On the recipe detail screen, add a "Add to grocery list" button below the ingredients
  ```

  ```text Ambiguous theme={null}
  Add a button somewhere
  ```
</CodeGroup>

## Common prompt patterns

### Starting a new app

```text theme={null}
Build a [type of app] for [audience]. The main features are:
1. [Feature one]
2. [Feature two]
3. [Feature three]

Design: [style preferences]
```

### Adding a feature

```text theme={null}
On the [screen name], add [feature description].
When the user [action], it should [behavior].
```

### Fixing an issue

```text theme={null}
On the [screen name], [describe what's wrong].
It should [describe expected behavior] instead.
```

### Changing design

```text theme={null}
Change [element] to [new style].
```

### Connecting a backend

```text theme={null}
Enable the backend. Add [auth/database feature].
When a user [action], save/load [data] from the database.
```

## What to avoid

* **Don't give conflicting instructions** in the same message
* **Don't describe implementation details** (specific code, file structures) unless you need a very specific approach — Bilt handles architecture decisions
* **Don't overload a single message** — break complex features into steps
