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

# Your first app

> Describe an app, watch it get built, and publish it for a live URL.

Building in Kazzle is a conversation. You describe the app, the AI writes the code, and you watch it take shape in a live preview. This page walks through the whole loop once.

<Steps>
  <Step title="Describe the app">
    Start a thread and say what you want. Be specific about what the app is for, not how to code it:

    * "Build a dashboard for tracking my spending"
    * "Make a tool for reviewing support tickets"
    * "Create a landing page for my plumbing business"

    You can also click **+** in the Drive sidebar and choose **New app**. Either way, the AI picks a starting template that fits: a React web app for anything with a screen, an HTTP server for APIs, webhooks, and scheduled jobs.
  </Step>

  <Step title="Watch the live preview">
    The AI creates the files and starts a dev server. A preview opens in a draft tab next to the thread - a real, running version of your app that updates as the code changes.

    Click around and test it. If the preview doesn't start on its own, click **Start preview** in the draft tab.
  </Step>

  <Step title="Iterate by chat">
    Ask for changes the way you'd ask a person:

    * "Move the chart to the sidebar"
    * "Add a dark theme"
    * "The totals look wrong, they should include tax"

    The preview hot-reloads after each edit. You can review code diffs before keeping them, and revert changes from any message.
  </Step>

  <Step title="Publish">
    When it's ready, say "publish my app" or publish from the app page. Publishing takes the current version live - deployed apps get a URL like `https://kazzle-{appId}.kazzle.app` that you can share or point a custom domain at.

    Public apps are accessible to anyone with the URL. Private apps require Kazzle authentication.
  </Step>
</Steps>

## Add more when you need it

You don't have to plan any of this up front. Ask, and the AI wires it in:

* **A database** - "add a database so my data is saved" creates a dedicated Postgres instance. [Databases](/apps/databases)
* **Offline and instant sync** - for apps that should feel native across devices. [Realtime sync](/apps/sync)
* **API keys and credentials** - stored encrypted in the vault, never in your code. [Secrets](/apps/secrets)
* **AI features** - chat, images, speech, and transcription inside your app. [AI in apps](/apps/ai-api)
* **Other people using your app** - publish it to the marketplace so other Kazzle spaces can install it. [Marketplace](/apps/publishing)

## If something looks off

* **The preview is blank or stale** - use **Restart** in the draft tab to stop and start the dev server.
* **The app renders but data doesn't stick** - it probably needs a database. Ask the AI to add one.
* **You broke something while iterating** - revert the change from the message that made it.
