# InvokeAI Development

import { Card, CardGrid, LinkButton } from '@astrojs/starlight/components';

This section of the documentation is for developers interested in contributing to the InvokeAI codebase, or building on top of it. It includes guides for setting up your development environment, understanding the project structure, and making your first contribution.

<CardGrid>
  <Card title="Setup" icon="download">
    Instructions for setting up your local development environment, including how to run the project locally and how to set up your tooling.

    <LinkButton href="./setup/dev-environment/" icon="right-arrow" variant="primary">
      Learn more
    </LinkButton>
  </Card>
  <Card title="Front End" icon="laptop">
    An introduction to the front end codebase, including the technologies used and how to get started.

    <LinkButton href="./front-end/" icon="right-arrow" variant="secondary">
      Learn more
    </LinkButton>
  </Card>
  <Card title="Guides" icon="open-book">
    A collection of guides for common development tasks, such as creating nodes, writing tests, and more. Adding a new model architecture is covered in the [new model integration guide](/contributing/new-model-integration/).

    <LinkButton href="./guides/creating-nodes/" icon="right-arrow" variant="secondary">
      Learn more
    </LinkButton>
  </Card>
  <Card title="Architecture" icon="puzzle">
    An overview of the InvokeAI architecture, including the major components and how they interact.

    <LinkButton href="./architecture/overview/" icon="right-arrow" variant="secondary">
      Learn more
    </LinkButton>
  </Card>
  <Card title="Process" icon="list-format">
    An overview of the development processes we follow, including our pull request merge policy and release process.

    <LinkButton href="./process/pr-merge-policy/" icon="right-arrow" variant="secondary">
      Learn more
    </LinkButton>
  </Card>
</CardGrid>