Skip to main content
The dashboard is the home screen of Inventory Pro. It gives you a real-time snapshot of your business at a glance, showing key counts across products, services, customers, and stock activity.

KPI cards

When you log in, the dashboard fetches four metrics simultaneously from Supabase, each filtered by your user_id to ensure data isolation:

Total Products

The number of products in your catalog. Navigates to the Products module.

Total Services

The number of services you offer. Navigates to the Services module.

Total Customers

The number of customer records stored in your account. Navigates to the Customers module.

Stock Movements

The total number of recorded stock movement events (both IN and OUT). Navigates to the Stock Movements module.
All four counts are fetched in parallel using Promise.all on page load:
const [productRes, serviceRes, customerRes, movementRes] = await Promise.all([
  supabase.from("products").select("id", { count: "exact" }).eq("user_id", user.id),
  supabase.from("services").select("id", { count: "exact" }).eq("user_id", user.id),
  supabase.from("customers").select("id", { count: "exact" }).eq("user_id", user.id),
  supabase.from("stock_movements").select("id", { count: "exact" }).eq("user_id", user.id),
])
While stats are loading, each card displays -- as a placeholder. Once data is ready, the live counts render immediately.

System information panel

Below the KPI cards, the System Information panel confirms that your data is securely stored in Supabase and reminds you to use the navigation menu to manage your inventory data. The sidebar is present on every page in Inventory Pro. It contains links to all six modules:
ModulePath
Dashboard/dashboard
Products/products
Services/services
Inventory/inventory
Stock Movements/stock-movements
Customers/customers
The active page is highlighted in the sidebar so you always know where you are.
Use the sidebar to switch between modules without losing context. The sidebar persists across all pages, so you can jump directly from Customers to Stock Movements at any time.

How data updates

Dashboard metrics are fetched fresh each time the page loads. There is no polling or WebSocket subscription — refreshing the page or navigating back to the dashboard will retrieve the latest counts from Supabase.

Build docs developers (and LLMs) love