After building dozens of dashboards across different projects, I’ve learned that the hardest part isn’t the technical implementation — it’s making dashboards that people actually open every day.
The Problem with Most Dashboards
Most dashboards fail because they try to show everything. You end up with a wall of charts that nobody reads. The best dashboards answer one or two specific questions clearly.
At Pacific Gold, we went through three iterations of the production KPI dashboard before finding the right balance. The first version had 15 charts. The final version has 4 — and gets 10x more daily views.
Why Metabase
For a self-hosted, open-source BI tool, Metabase hits a sweet spot:
- SQL-native: Write raw SQL when you need precision, or use the visual query builder for simpler explorations
- Embedding: Embed dashboards directly into your .NET applications with iframe or the API
- Permissions: Granular access control per collection, dashboard, and even question
- Self-hosted: Your data stays on your servers — critical for enterprise environments with data sovereignty requirements
Design Principles That Work
1. Start with the question, not the data. Before opening Metabase, write down the exact question the dashboard should answer. “How are we performing against monthly targets?” is better than “show me all the metrics.”
2. Use filters instead of more charts. A single chart with a date range filter and category selector is more useful than 6 static charts showing different time periods.
3. Put the most important number in the biggest font. Sounds obvious, but I’ve seen dashboards where the key metric is hidden in a dense table. The number your manager cares about should be visible from 3 meters away.
4. Refresh schedules matter. A dashboard showing yesterday’s data when users need real-time is useless. Configure caching and refresh intervals based on how the dashboard is actually used.
The Integration Story
Where Metabase really shines is when embedded into existing applications. Using the embedding API, we built a portal where each client sees only their own data, with the dashboard seamlessly integrated into our ASP.NET Core application. The users don’t even know they’re looking at Metabase — it just looks like part of the app.