# Xuda Slim

Xuda Slim is the lightweight authoring and embedding surface for the Xuda runtime.

It is useful when you want Xuda's reactive datasource, directives, events, and structural tags, but you do not want to start from the full Xuda CLI project shape on day one.

## What Slim is for

- hand-authored HTML pages with Xuda reactivity
- runtime demos and documentation
- embedded widgets or microsites
- generated `project_data` runtime trees
- progressive adoption of Xuda without introducing a full source compiler first

## What Slim is not

Slim is not a different runtime. It is a smaller entry path into the same Xuda technology.

That means:

- expressions still read fields like `@field_name`
- the runtime still works from Xuda program documents
- structural tags such as `xu-single-view`, `xu-multi-view`, `xu-panel`, and `xu-teleport` still matter
- you can move between HTML-authored and JSON-authored runtime trees without switching frameworks

## The three important Slim authoring modes

1. HTML authoring
   Use HTML and Xuda directives directly in templates or static pages.

2. `project_data` / JSON authoring
   Build the Xuda runtime tree explicitly as data.

3. Hybrid runtime pages
   Load the slim bundle in a page, then assemble the Xuda program shape from your own JavaScript.

## How Slim relates to Xuda CLI

Use Slim when:

- the page is small or self-contained
- the team wants to stay close to markup
- the UI tree is generated programmatically
- you want to prototype or embed quickly

Use Xuda CLI when:

- you want a full app structure
- you want typed folders such as `components/`, `data/`, and `tables/`
- you want source files like `App.xu`, `*.xu`, and `*.json5`
- you want the local compiler and sync flow to manage runtime docs for you

## Read next

- [HTML authoring](./html-authoring.md)
- [project_data / JSON authoring](./project-data-json.md)
- [Runtime directives](./runtime-directives.md)
- [Special tags](./special-tags.md)
- [Choosing a mode](./choosing-a-mode.md)
