> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-docs-runpod-allow-ip.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# Overview

> Understand the Flash app development lifecycle. Review setup, configuration, deployment, and usage guidance for Runpod Flash.

export const ServerlessTooltip = () => {
  return <Tooltip headline="Serverless" tip="A cloud computing platform that allows you to deploy AI/ML applications without provisioning or managing servers." cta="Learn more about Serverless" href="/serverless/overview">Serverless</Tooltip>;
};

A Flash app is a collection of <ServerlessTooltip /> endpoints deployed to Runpod.

<CardGroup cols={2}>
  <Card title="Build your first app" href="/flash/apps/build-app" icon="code" horizontal>
    Create a Flash app, test it locally, and deploy it to production.
  </Card>

  <Card title="Initialize a project" href="/flash/apps/initialize-project" icon="folder-plus" horizontal>
    Create boilerplate code for a new Flash project with `flash init`.
  </Card>
</CardGroup>

## App development workflow

Building a Flash application follows a clear progression from initialization to production deployment:

<Steps>
  <Step title="Initialize">
    Use `flash init` to create a new project with example workers:

    ```bash theme={null}
    flash init PROJECT_NAME
    cd PROJECT_NAME
    pip install -r requirements.txt
    ```

    This gives you a working project structure with GPU and CPU worker examples. [Learn more about project initialization](/flash/apps/initialize-project).
  </Step>

  <Step title="Develop">
    Write your application code by defining `Endpoint` functions that execute on Runpod workers:

    ```python theme={null}
    from runpod_flash import Endpoint, GpuType

    @Endpoint(
        name="inference-worker",
        gpu=GpuType.NVIDIA_GEFORCE_RTX_4090,
        workers=3,
        dependencies=["torch"]
    )
    def run_inference(prompt: str) -> dict:
        import torch
        # Your inference logic here
        return {"result": "..."}
    ```

    [Learn more about customizing your app](/flash/apps/customize-app).
  </Step>

  <Step title="Test locally">
    Start a local development server to test your application:

    ```bash theme={null}
    flash dev
    ```

    Your app runs locally and updates automatically. When you call an `@Endpoint` function, Flash sends the latest code to Runpod workers. [Learn more about local testing](/flash/apps/local-testing).
  </Step>

  <Step title="Deploy">
    When ready for production, deploy your application to Runpod Serverless:

    ```bash theme={null}
    flash deploy
    ```

    When you deploy an app, Runpod:

    1. Packages your code, dependencies, and deployment manifest into a tarball (max 1.5 GB).
    2. Uploads the tarball to Runpod.
    3. Provisions independent Serverless endpoints based on your [endpoint configurations](/flash/create-endpoints).

    Your entire application—including all worker functions—runs on Runpod infrastructure. [Learn more about deployment](/flash/apps/deploy-apps).
  </Step>

  <Step title="Manage">
    Use apps and environments to organize and manage your deployments across different stages (dev, staging, production). [Learn more about apps and environments](/flash/apps/apps-and-environments).
  </Step>
</Steps>

## Apps and environments

Flash uses a two-level organizational structure: **apps** (project containers) and **environments** (deployment stages like dev, staging, production). See [Apps and environments](/flash/apps/apps-and-environments) for complete details.

## Next steps

<CardGroup cols={2}>
  <Card title="Build your first app" href="/flash/apps/build-app" icon="code" horizontal>
    Create a Flash app, test it locally, and deploy it to production.
  </Card>

  <Card title="Initialize a project" href="/flash/apps/initialize-project" icon="folder-plus" horizontal>
    Create boilerplate code for a new Flash project with `flash init`.
  </Card>

  <Card title="Test locally" href="/flash/apps/local-testing" icon="flask" horizontal>
    Use `flash dev` for local development and testing.
  </Card>

  <Card title="Deploy to Runpod" href="/flash/apps/deploy-apps" icon="rocket" horizontal>
    Deploy your application to production with `flash deploy`.
  </Card>
</CardGroup>
