Skip to content

Commit c6dd4f8

Browse files
Merge pull request #15 from MarcSkovMadsen/enhancement/mvp
trigger build
2 parents 7eed93d + 1b3c427 commit c6dd4f8

6 files changed

Lines changed: 93 additions & 26 deletions

File tree

README.md

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,8 @@ For other MCP-compatible clients, use the standard MCP configuration:
163163

164164
**Progress Monitoring**: In VS Code, you can monitor progress in `OUTPUT → MCP: holoviz` to see indexing status and any potential issues.
165165

166+
![OUTPUT](docs/assets/images/vs-code-output-holoviz.png)
167+
166168
## 💡 What You Can Ask
167169

168170
<details>
@@ -189,10 +191,6 @@ For other MCP-compatible clients, use the standard MCP configuration:
189191
- `clicks` (int): Number of times button has been clicked
190192
- And many more...
191193

192-
**Ask:** *"How do I create a dashboard with sliders and plots?"*
193-
194-
**AI Response:** Provides complete code examples with proper Panel layout structure and component integration.
195-
196194
</details>
197195

198196
<details>
@@ -209,23 +207,23 @@ For other MCP-compatible clients, use the standard MCP configuration:
209207
</details>
210208

211209
<details>
212-
<summary><b>🚀 Building Applications</b></summary>
210+
<summary><b>🚀 Building Tools, Dashboards and Applications</b></summary>
213211

214-
**Ask:** *"How do I build a data dashboard with Panel?"*
212+
**Ask:** *"How do I build a minimal, Hello World data dashboard with Panel?"*
215213

216-
**AI Response:** Provides complete application architecture with layout components, data connections, and interactive widgets. Includes code for multi-page dashboards with navigation and state management.
214+
**AI Response:** Provides basic application architecture with layout components, data connections, and interactive widgets.
217215

218-
**Ask:** *"Create a web application for data analysis"*
216+
**Ask:** *"How do I create a minimal, dashboard with Panel Material UI sliders and plots?"*
219217

220-
**AI Response:** Delivers full application templates with file upload, data processing, visualization, and export functionality using Panel's serve capabilities.
218+
**AI Response:** Provides complete code examples with proper Panel layout structure and Panel Material UI component integration.
221219

222-
**Ask:** *"How do I deploy a Panel application?"*
220+
**Ask:** *"Build a sales dashboard for data analysis using Panel Material UI components. Follow the Panel and Panel Material UI best practices. Create tests and make sure issues are identified and fixed."*
223221

224-
**AI Response:** Offers deployment strategies for various platforms (Heroku, AWS, local server) with configuration examples and best practices for production environments.
222+
**AI Response:** Provides code for interactive tools with dynamic filtering, real-time updates, and responsive layouts that work across devices.
225223

226-
**Ask:** *"Build a tool for interactive data exploration"*
224+
**Ask:** *"How do I deploy a Panel application?"*
227225

228-
**AI Response:** Provides code for interactive tools with dynamic filtering, real-time updates, and responsive layouts that work across devices.
226+
**AI Response:** Offers deployment strategies for various platforms (Heroku, AWS, local server) with configuration examples and best practices for production environments.
229227

230228
</details>
231229

@@ -426,3 +424,13 @@ We welcome contributions! Here's how to get started:
426424
- **GitHub Actions** for CI/CD
427425

428426
Run `pixi run pre-commit-install` to set up code quality checks.
427+
428+
## Roadmap
429+
430+
- [ ] Provide Panel and Panel Material UI best practices for both "beginners" and "intermediate" users. Current ones are for "intermediate users".
431+
- [ ] Find that "magic" prompt that makes the LLM run a development server with hot reload (`panel serve ... --dev`) while developing. Would make things more engaging. I've tried a lot.
432+
- [ ] Get [Panel #8018](https://github.com/holoviz/panel/issues/8018) fixed.
433+
- [ ] Try out [Playwright MCP](https://github.com/microsoft/playwright-mcp). Its probably worth recommending for taking screenshots and interacting with the app in the browser.
434+
- [ ] Provide reference guides for other HoloViz packages starting with hvPlot, param and HoloViews.
435+
- [ ] Base index on latest released versions instead of latest code (`Head`).
436+
- [ ] Migrate to HoloViz organisation.
129 KB
Loading

pixi.lock

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# hvPlot
2+
3+
## General Guidelines
4+
5+
- Always import hvplot for your data backend:
6+
7+
```python
8+
import hvplot.pandas # will add .hvplot namespace to Pandas dataframes
9+
import hvplot.polars # will add .hvplot namespace to Polars dataframes
10+
...
11+
```
12+
13+
- Prefer Bokeh > Plotly > Matplotlib plotting backend for interactivity
14+
- DO use bar charts over pie Charts. Pie charts are not supported.
15+
- DO use NumeralTickFormatter and 'a' formatter for axis formatting:
16+
17+
| Input | Format String | Output |
18+
| - | - | - |
19+
| 1230974 | '0.0a' | 1.2m |
20+
| 1460 | '0 a' | 1 k |
21+
| -104000 | '0a' | -104k |

src/holoviz_mcp/docs_mcp/templates/best_practices/panel.md

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ DO note how this test simulates the user's behaviour of loading the page, changi
137137
- `pn.pane.Markdown`, `pn.pane.HTML` for content
138138

139139
### Serving
140-
- `panel serve app.py --dev --show` for development
140+
- `panel serve app.py --dev` for development with hot reload. Add `--show` to open in browser.
141141
- `app.servable()` to mark components for serving
142142

143143
## Core Principles
@@ -166,16 +166,26 @@ DO note how this test simulates the user's behaviour of loading the page, changi
166166
- In a sidebar the order should be: 1) optional image/logo, 2) short app description, 3) input widgets/filters, 4) additional documentation.
167167

168168
**Serving**
169-
- DO use `panel serve app.py --dev --show` for development with hot reload
169+
- DO use `panel serve app.py --dev` for development with hot reload.
170170
- DON't use legacy `--autoreload` flag.
171171
- DO use `if pn.state.served:` to check if being served with `panel serve`
172172
- DO use `if __name__ == "__main__":` to check if run directly via `python`
173173

174+
```python
175+
# Correct:
176+
if pn.state.served:
177+
main().servable()
178+
179+
# Incorrect
180+
if __name__ == "__main__":
181+
main().servable()
182+
```
183+
174184
## Workflows
175185

176186
**Development**
177187

178-
- DO always start and keep running a development server `panel serve path_to_file.py --dev --show` with hot reload while developing!
188+
- DO always start and keep running a development server `panel serve path_to_file.py --dev` with hot reload while developing!
179189

180190
**Testing**
181191

@@ -257,17 +267,11 @@ filtered = filtered[
257267
- DO use bar charts over pie Charts.
258268

259269
### HoloViews/hvPlot
270+
260271
- DO let Panel control the renderer theme
261272
- DON'T set `hv.renderer('bokeh').theme = 'dark_minimal'`
262-
- Prefer Bokeh > Plotly > Matplotlib for interactivity
263-
- DO use bar charts over pie Charts. Pie charts are not supported.
264-
- DO use NumeralTickFormatter and 'a' formatter for axis formatting:
265-
266-
| Input | Format String | Output |
267-
| - | - | - |
268-
| 1230974 | '0.0a' | 1.2m |
269-
| 1460 | '0 a' | 1 k |
270-
| -104000 | '0a' | -104k |
273+
274+
DO follow the hvplot and holoviews best practice guides!
271275

272276
### Plotly
273277

0 commit comments

Comments
 (0)