Overview
Dashboards in VizBoard are collections of widgets organized in a customizable grid layout. Each project has a dashboard where you can add, arrange, and configure widgets to visualize your data. Dashboards support drag-and-drop reordering and responsive layouts.Dashboard Structure
Every dashboard is associated with a project and contains:Widgets
Data visualizations and content elements
Layout Order
Customizable widget arrangement
Project Context
Project title and description
Navigation
Sidebar for adding and managing widgets
Creating a Dashboard
Dashboards are automatically created when you create a project. The dashboard starts empty and you add widgets to build your visualization.Navigate to Project Dashboard
Access your project’s dashboard:For public projects, a public URL is also available:
Add Widgets
Click the sidebar to browse available widget types:
src/components/dashboard/navigation/addWidget.tsx
Configure Widgets
Configure each widget with data sources, columns, and visualization options using the configuration dialog.
Dashboard Layout
Dashboards use a responsive grid layout that adapts to screen sizes:src/components/dashboard/layouts/dashboardLayout.tsx
Layout Features
- Grid Layout
- Widget Order
- Responsive Design
Widgets are arranged in a 2-column grid:The grid automatically adjusts for:
- Desktop: 2 columns with larger gaps
- Mobile: 2 columns with smaller gaps
- Overflow: Horizontal scroll for wide content
Widget Ordering
Customize the display order of widgets on your dashboard.Update Widget Order
Change the order by updating theorderedWidgetIds array:
Server Action Implementation
The widget order is stored as an array in the project:src/app/actions/dashboard/updateWidgetOrder.ts
The
orderedWidgetIds array contains widget IDs in the order they should be displayed. Widgets not in the array are appended at the end in their creation order.Dashboard Header
The dashboard header provides navigation and project context:Project Title and Description
The dashboard displays the project title prominently:- With Description
- Without Description
Widget Configuration Dialog
The configuration dialog allows you to edit widget settings:- Data source selection
- Column/axis configuration
- Visualization options
- Filtering and aggregation settings
Empty State
When a dashboard has no widgets, a helpful empty state is displayed:Public Dashboards
Public dashboards allow sharing your visualizations without authentication.Enable Public Access
Projects can only be made public if they have at least one valid database connection. Public access is automatically disabled if all connections become invalid.
Public vs Private Layout
Public dashboards use a simplified layout:- Private Dashboard
- Public Dashboard
Loading States
Dashboards display appropriate loading states:Widget State Management
Dashboards use Zustand for widget state management:State Structure
Dashboard Organization
Best practices for organizing your dashboards:Performance Optimization
Optimize dashboard performance for large datasets:Lazy Loading
Widgets are loaded progressively as the dashboard renders
Data Aggregation
Use aggregations in widget configs to reduce data transfer
Pagination
Enable pagination for data table widgets
Caching
Schemas are cached to avoid repeated introspection
Keyboard Shortcuts
Use keyboard shortcuts for faster dashboard navigation:| Shortcut | Action |
|---|---|
Ctrl/Cmd + K | Open command palette |
Ctrl/Cmd + \ | Toggle sidebar |
Escape | Close dialogs |
Tab | Navigate between widgets |
Best Practices
Logical Flow
Arrange widgets in a logical reading order (top to bottom, left to right)
Consistent Styling
Use consistent colors and chart types across related widgets
Clear Titles
Give widgets descriptive titles that explain what they show
Test Public View
Review public dashboards to ensure they work as expected
Troubleshooting
Widgets Not Loading
Widgets Not Loading
Symptoms: Dashboard shows loading state indefinitelySolutions:
- Check browser console for errors
- Verify project has valid database connections
- Ensure widgets have valid configurations
- Clear browser cache and reload
Widget Order Not Updating
Widget Order Not Updating
Symptoms: Widgets don’t reorder after calling
updateWidgetOrderSolutions:- Verify
orderedWidgetIdscontains all widget IDs - Check that widget IDs are valid
- Refresh the dashboard page
- Verify no client-side caching issues
Public Dashboard Not Accessible
Public Dashboard Not Accessible
Symptoms: Public URL shows “not found” errorSolutions:
- Verify project
isPublic: true - Check that project has at least one valid connection
- Confirm
idPublicfield is set - Verify no typos in the public URL
Next Steps
Widgets
Learn about widget types
Projects
Manage projects
Database Connections
Configure data sources
