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

# Build apps for Niblet

> Understand the local Starlark runtime, 64×32 canvas, and hosted review workflow.

Niblet apps are small Starlark programs that return a tree of render widgets. The CLI executes the program on your computer and encodes the result as an animated WebP or GIF. A display downloads rendered images; it does not execute your app source.

## The development loop

```text theme={null}
edit Starlark → serve locally → validate → render WebP → push revision → review
```

`niblet serve` is the fastest loop while authoring. `niblet apps validate` checks the project and performs a bounded local render. `niblet apps push` repeats validation and rendering before it uploads anything.

## Project contract

A hosted developer project uses `developer-app.v1`:

* one valid `manifest.yaml`;
* exactly one top-level `.star` file;
* non-empty UTF-8 source with no NUL bytes;
* no more than 128 KiB of source; and
* a non-empty locally rendered WebP no larger than 2 MiB.

The source and WebP are stored together as one immutable revision. Metadata can change later, but an uploaded revision cannot be edited in place.

## Runtime compatibility

Niblet preserves the core Pixlet model: `main(config)`, `get_schema()`, render widgets, bundled modules, fonts, animations, and a 64×32 output canvas. An app that depends on a Tidbyt-only service, encrypted value, or private endpoint may need a Niblet-specific integration.

<CardGroup cols={2}>
  <Card title="Create the first app" icon="sparkles" href="/build/first-app" />

  <Card title="Design for 64×32" icon="grid" href="/build/design-64x32" />

  <Card title="Use configuration" icon="sliders" href="/build/configuration" />

  <Card title="Prepare for review" icon="clipboard-check" href="/publish/checklist" />
</CardGroup>
