The Config Editor is a visual editor in BRICKS Controller for building and editing your application or module configuration directly in the browser. Open any application or module and click Config Editor to start editing.Documentation Index
Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
Use this file to discover all available pages before exploring further.
How BRICKS applications work
BRICKS applications run on a JSON configuration that defines the UI, data, logic, and interactions. The BRICKS Foundation runtime reads this configuration and renders the application on screen. There are two ways to create this configuration:| Approach | Tool | Best for |
|---|---|---|
| Visual | Config Editor in BRICKS Controller | Quick edits, non-developers, visual layout work |
| Code-first | bricks-ctor (TypeScript SDK) | Version control, AI-assisted development, CI/CD pipelines |
Application structure
A BRICKS application is a tree of composable entities:Subspaces
A subspace is a self-contained unit of functionality — think of it as a screen or feature module. Each subspace has its own bricks, generators, data, canvases, and animations. The application has a root subspace as its entry point. Use subspaces to organize your application into logical sections. You can nest subspaces by referencing one subspace inside another’s canvas.Canvases
A canvas defines a view layout. It positions items (bricks or subspace references) on a grid using frame coordinates (x, y, width, height). Canvases support:- Lifecycle events —
firstEnter,enter, andexitevents that trigger actions when the canvas becomes active or inactive - Canvas switching — Navigate between canvases for multi-screen flows
- Item positioning — Place bricks and subspace references at specific coordinates and sizes
Bricks
Bricks are the visual building blocks — UI components that display content and handle interaction.| Brick | Purpose |
|---|---|
| Text | Display text with styling |
| TextInput | Editable text field |
| RichText | Rich text with HTML content, multiple fonts, and inline images |
| Image | Display images |
| Video | Video playback |
| VideoStreaming | RTSP / RTMP live video streams |
| WebrtcStream | WebRTC video and audio stream |
| GenerativeMedia | AI-generated images and videos |
| WebView | Embedded web content |
| Lottie | .json and .dotlottie animations with speed, loop, and frame range control |
| Rive | .riv animations with state machine inputs, text runs, and artboard selection |
| Svg | SVG vector graphics |
| Chart | Data visualizations |
| Icon | FontAwesome 6 Pro icons |
| QrCode | QR code display |
| Camera | Live camera feed |
| Maps | Map display |
| Rect | Container with background, border, shadow |
| Items | Data-driven list or grid from an array |
| Slideshow | Auto-advancing slides with transition effects |
Generators
Generators handle all external I/O and data processing. They connect your app to APIs, databases, hardware, AI models, and more. Each generator has outlets (output channels) that feed data into data nodes, and events that trigger actions.| Category | Examples |
|---|---|
| AI & LLM | Assistant, LLM (GGML/OpenAI/Anthropic/ONNX), Vector Store, Reranker |
| Speech | Text-to-Speech, Speech-to-Text, VAD, Realtime Transcription |
| Network | HTTP, WebSocket, GraphQL, MQTT, TCP, UDP, HTTP Server |
| Storage | File, SQLite, Data Bank, Media Flow |
| Hardware | Bluetooth LE, Serial Port, Camera, Keyboard |
| Control flow | Tick (timer), Alarm Clock, Step, Iterator, Watchdog |
| Other | WebRTC, Web Crawler, MCP, Thermal Printer |
Data
Data nodes store application state. They are typed (string, number, boolean, array, object) and can be linked to brick or generator properties for reactive updates. When a generator outlet emits a value, the linked data updates, and any bricks bound to that data re-render automatically.Data calculations
Data calculations are JavaScript functions that transform data. They run in a sandboxed environment with 25+ built-in libraries (lodash, moment, crypto, and more). Use them for formatting, parsing, or computing derived values.Animations
Define visual effects and transitions for bricks. Animations can be triggered by events and applied to properties like position, opacity, scale, and rotation.Actions and events
Actions are commands triggered by events. Bricks and generators emit events (press, response, error, timer tick), and you wire them to actions like:- Changing a canvas
- Updating data
- Triggering a generator
- Running an animation
- Navigating between subspaces
Quick edits
Use Short Edit to apply quick property changes without creating a full release. Short Edit lets you modify individual brick or generator properties by reference, which is useful for rapid iteration and live adjustments on production devices. You can also use the BRICKS CLI to apply quick edits programmatically:Validate configuration
The Config Editor validates your configuration against the BRICKS schema as you edit. You can also validate a configuration file from the CLI:Save and release
Save your changes
Click Save in the Config Editor to persist your changes. This updates the application’s working configuration and automatically deploys the changes to bound devices.
Saving in the Config Editor automatically deploys changes to bound devices. Create a release when you want to snapshot a version for deployment to other devices.
Core reference
For detailed property documentation on every brick, generator, data type, and configuration option, see the core reference.Core reference
Full documentation for all BRICKS platform entities and properties.