# Build an app

> Describe what your app should do, test it in the preview and prepare a version to publish.

## Before you begin

You need a business workspace and owner or dashboard editor access. Building, checking and previewing consume [Sparks](/en/docs/apps/costs). The builder accepts one member at a time and opens when the current editor leaves.

## Create your draft

1. Open **Apps**.
2. Choose **New app**.
3. Select a starting point from the templates below.
4. Enter a name for the app.
5. Describe your first change in the builder chat.

| Starting point | Included work |
| --- | --- |
| **Blank app** | A starting point for your own application. |
| **Task manager** | Projects, tasks, board and timeline. |
| **CRM** | Companies, contacts, deals and follow-ups. |
| **Time off** | Leave requests, manager approval, balances and team calendar. |
| **Inventory** | Stock levels, movement ledger and low-stock alerts. |

Send requests during setup. If it fails, choose **Retry**; messages remain saved. Your first message supplies the description; ask the builder to rename the app later.

## Build and test

1. Describe the records, screens and actions you need in chat.
2. Describe who should do what so the builder can define app roles.
3. Wait for verification and the preview update.
4. Choose **Load test data into the preview** when you need sample records.
5. Try the important actions in **Preview**.
6. Use **Try as** to check the app with selected roles.

The builder checks saved code and confirms the preview serves it. Checks do not test interactions or runtime speed. Report slow screens or failed actions with what you did and expected.

Opening the preview starts it; inactivity pauses it. Choose **Resume** to continue.

Each app gets its own preview database the first time you open its preview. Test records stay there between pauses, restarts and sessions, and are deleted with the app when it leaves Trash for good, including an idle draft that expired.

To start over, choose **Clear test data** in the builder menu and confirm: the preview gets a new, empty database, every test record and file is deleted, and the preview starts again. Published records are never touched. See [statuses and recovery](/en/docs/apps/builder-statuses) for failed checks.

The builder uses account connections within your Dashboard Assistant permissions. Send original links for private documents or spreadsheets.

Reads run directly; external writes and deletions require approval. Choose the intended connected identity when asked. App management does not grant connection access.

> **Rule** — Live preview does not change the published app or use external connections. Confirm the real app's behavior after publishing.

## Adjust the design

1. Open **Design**.
2. Set colours, fonts, radius and appearance mode.
3. Choose **Apply** to save the design and update the preview.

The open panel previews unsaved colours and radius; closing without applying restores saved design. System mode follows each member’s Botchi appearance; explicit light or dark stays fixed.

**App colours** are the app’s own colours, such as one for urgent tasks or for each status. Add, edit or remove them in **Design**, for light and dark separately. The builder can also add them while it builds; text on them stays readable.

## Restore earlier source

1. Open **History** from the builder actions menu.
2. Choose **Restore…** on a saved version.
3. Review the files that will be added, changed or removed.
4. Choose **Restore this version**.

Restoring creates and verifies a new source version, then updates preview. Records, published versions and data updates stay unchanged. Use [Rollback](/en/docs/apps/publish) for published versions.

## Choose an icon

1. Open the app's **Settings**.
2. Under **Details**, choose **Change icon**.
3. Choose **Generate with AI**, **Upload image** or **Choose a symbol**.
4. Choose **Generate 3 options** if using AI.
5. Select your preferred result.
6. Choose **Use this icon** when applying an image.

AI creates three paid proposals and saves originals in Studio. Uploaded PNG, JPEG or WebP images must be at most 2 MiB; Studio does not store them.

Symbols need no generation. Icon changes need no publication and retain AI originals.

## Related

- [Publish your draft](/en/docs/apps/publish)
- [App access and roles](/en/docs/apps/access)
- [Builder and preview statuses](/en/docs/apps/builder-statuses)
