<!-- Source: https://docs.squirro.com/en/latest/technical/neo/dev-guide/index.html -->
# Developer Guide

> **Warning**
>
> Project Neo is currently in [Technical Preview](../../../a-z/squirro-glossary.md#term-Technical-Preview). Features described in this section may change before general availability.

The Project Neo Developer Guide covers building custom dashboard bundles that load into the Project Neo host application at runtime. Bundles are separate React and TypeScript projects with their own repository, dependencies, and build pipeline. They connect to the host through Module Federation, allowing independent development and deployment without requiring changes to the core application.

## Overview

Explains the bundle system architecture, what you can build, what is out of scope, and how the host discovers and loads bundles at runtime.

[Learn more](overview.md#neo-extensions-overview)

## Prerequisites

Lists the tools and accounts required before creating your first bundle, including Node.js 22.18, a Squirro instance with a refresh token, and the `neo-ui` CLI from the public npm registry.

[Learn more](prerequisites.md#neo-extensions-prerequisites)

## Quick Start

A step-by-step walkthrough for creating a project, starting the development server, adding a dashboard, and editing your first component.

[Learn more](quick-start.md#neo-extensions-quick-start)

## Project Structure

Describes the directory layout of a scaffolded bundle project and explains the purpose of each file, including which files to edit and which to leave untouched.

[Learn more](project-structure.md#neo-extensions-project-structure)

## CLI Reference

A complete reference for all `neo-ui` CLI commands, including `neo-ui create bundle`, `neo-ui create dashboard`, `neo-ui dev`, and `neo-ui build`.

[Learn more](cli-reference.md#neo-extensions-cli-reference)

## The Bundle Manifest

Describes the manifest file that declares the dashboards your bundle provides, including all available fields and their accepted values.

[Learn more](manifest.md#neo-extensions-manifest)

## Building Dashboard Components

Covers how to build dashboard components using shared libraries, navigate between views, and access the active Squirro project context.

[Learn more](building-dashboards.md#neo-extensions-building-dashboards)

## Styling and Components

Covers how to style bundle dashboards using the shared component library, Tailwind CSS utility classes, and Lucide icons.

[Learn more](styling-and-components.md#neo-extensions-styling)

## The Chat Widget

Covers embedding the conversational GenAI chat panel in a dashboard, including the data source, authentication, theming, localization, and capability gating.

[Learn more](chat-widget.md#neo-extensions-chat-widget)

## Squirro API

Describes how to call the Squirro API from within a bundle, including authentication, available endpoints, and the provided API client.

[Learn more](squirro-api.md#neo-extensions-api)

## Translations

Explains how to use bundles to override text strings in the core Project Neo interface per language, without modifying host code.

[Learn more](translations.md#neo-extensions-translations)

## Local Development

Covers the local development server in detail, including hot reloading, environment variables, proxy configuration, and debugging.

[Learn more](local-development.md#neo-extensions-local-development)

## Neo Dev Annotations

Describes the development-only toolbar for annotating elements in the running application and copying the component, file, line, and translation key of each one for an AI coding assistant.

[Learn more](neo-dev-annotations.md#neo-extensions-dev-annotations)

## Building and Deploying

Describes how to build a bundle for production and deploy it to a Squirro instance via the `frontend.ui-bundle` project setting.

[Learn more](build-and-deploy.md#neo-extensions-build-and-deploy)

## Troubleshooting

Covers common issues encountered when developing Project Neo bundles, with diagnostic steps and solutions.

[Learn more](troubleshooting.md#neo-extensions-troubleshooting)

## Migrating from nextgen to neo-ui

Covers moving an existing bundle off the legacy `nextgen` CLI and the pre-rename `@squirro/nextgen-core` package, using `neo-ui upgrade`.

[Learn more](migrating-from-nextgen.md#neo-extensions-migrating)
