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

# Building a Custom Panel

> Describe the view you want in one sentence and your bot builds it — live data bound, saved to your Dashboard, no template to pick from.

## The Scenario

Every trading interface makes layout decisions for you. Some of them are wrong for how you trade, and the fix is usually a settings page with three preset options, none of which is what you wanted.

Your bot builds the panel instead. You describe the layout and what goes in it; the agent works out the spec, binds the data sources, and renders it into your Dashboard. It isn't picking from a template library — the panel is generated for the sentence you wrote.

## Try It

* [Turn my positions into a heatmap shaded by PnL, split by Wallet / DeFi / HL / Polymarket](https://t.me/donut_d0_agent_bot?text=Turn%20my%20positions%20into%20a%20heatmap%20shaded%20by%20PnL%2C%20split%20by%20Wallet%20/%20DeFi%20/%20HL%20/%20Polymarket)
* [Build a live monitor panel: BTC/ETH/SOL prices up top, my positions bottom-left, funding rates bottom-right](https://t.me/donut_d0_agent_bot?text=Build%20a%20live%20monitor%20panel%3A%20BTC/ETH/SOL%20prices%20up%20top%2C%20my%20positions%20bottom-left%2C%20funding%20rates%20bottom-right)

## What You Get Back

### A heatmap of your book

> **You:** Turn my current positions into a heatmap, shade by P\&L ratio — bigger gains greener, bigger losses redder — and split Wallet / DeFi / HL / Polymarket.

> **Bot:** Generating position heatmap...<br />
> 🛠️ Parsed: heatmap / colored by PnL% / categories: Wallet Spot, DeFi, HL Perps, Polymarket<br />
> 📊 Data: 12 active positions → live PnL fetch<br />
> ✨ Render complete<br />
> \[Open heatmap] — generated in your Dashboard, savable and shareable. Losing positions shaded red, winners green. Each tile is clickable to drill down into the full decision chain.

The bot echoes back how it parsed your sentence before it builds. If it read "shade by PnL%" as something else, you'll see that in the parse line rather than in the finished panel.

### A monitor panel with a layout you specified

> **You:** Build me a live monitor panel: top row shows BTC/ETH/SOL live price and 24h change, two columns below — left my positions, right funding rates. Put it on my Dashboard when done.

> **Bot:** Building custom monitor panel...<br />
> 🛠️ Layout: top (ticker bar) / bottom-left (positions) / bottom-right (funding)<br />
> 📊 Data bindings:
>
> * Prices: multi-exchange live (Binance/Bybit/OKX)
> * Positions: your cross-chain portfolio
> * Funding: HL + Binance perp funding rates
>
> ✨ Panel generated → Dashboard "My Panels" tab. Auto-refreshes every 30s, panel persisted.

Panels persist. Once it's in **My Panels**, it keeps refreshing on its own — you don't rebuild it tomorrow.

## When to Use

* **A view no product ships.** Cross-venue positions in one grid, funding next to your own exposure, whatever your setup actually needs.
* **During a volatile session.** Build a focused panel for the thing you're watching today, drop it after.
* **Reviewing allocation.** A heatmap makes concentration obvious in a way a position list doesn't.
* **Sharing a setup.** Panels are shareable — useful for showing someone your read rather than describing it.

## Tips

* **Describe layout in spatial terms.** "Top row", "bottom-left", "two columns" parse cleanly. "Nicely arranged" doesn't.
* **Name the data, not just the widget.** "Funding rates for HL and Binance" beats "funding" if you care which venues.
* **Iterate in place.** Follow up with `"add 24h volume to the ticker row"` instead of describing the whole panel again.
* **Check the parse line.** It's the cheapest place to catch a misread.
* **Drill into tiles.** In a heatmap, each tile opens the decision chain behind that position — how it was opened and why.

## Related

* [Custom Dashboards](/features/custom-dashboards) — what the panel builder supports
* [Dashboard](/bot-management/dashboard) — where panels live
* [Portfolio Tracking](/features/portfolio-tracking) — the position data panels bind to
* [Portfolio Monitor](/use-cases/portfolio-monitor) — the same information as a conversation instead of a panel
