Skip to content

Dashboard ​

The Dashboard (/dashboard) is the post-login landing page. It is designed as a command center that answers "what needs my attention now?" first and shows performance second.

Verified against v1.3.0

Layout ​

The page is a single responsive column of cards:

  1. Daily Brief — on-demand AI summary of yesterday's performance, today's schedule, and recommended next actions (collapsed by default; only visible when your org has an active AI provider).
  2. Setup Checklist — for new orgs: connect AI, media, storage, channels, create a first post, invite a team member. Dismissed automatically when all steps are complete.
  3. Needs Attention — priority feed of issues across your org.
  4. Next 7 Days — a scrollable day-by-day schedule with gap-fill shortcuts.
  5. At a Glance — KPI tiles (published, scheduled, engagement, unread replies, channels).
  6. 7-Day Engagement — a chart of your primary engagement metric over the last 7 days.
  7. Inbox — unread comments that need replies.
  8. Active Campaigns — running campaigns with post-state counts and goal progress.
  9. Media Queue — in-flight and recently failed AI-media jobs.
  10. Usage & Budget — plan usage for posts, channels, team members, competitors, webhooks, and brand kits (when billing is enabled), plus AI spend: monthly and daily totals with the remaining budget, and spend by provider.
  11. Recommendations — top analytics-driven actions from the Insights engine.

On desktop the cards sit in a 12-column grid; on mobile they stack in the same priority order.

Customizing the dashboard ​

Click the gear icon in the header to show or hide sections. Your choices are saved in this browser's localStorage (dashboard_prefs), so they persist across reloads but are per-device for now.

Sections you do not have permission for are hidden automatically and do not appear in the Customize list.

Attention feed ​

The feed groups signals into three severity levels:

  • Critical — failed posts, channel health issues, budget overruns.
  • Warning — pending draft approvals, unread comments, schedule gaps, failed media jobs, analytics anomalies.
  • Info — anything else that needs a look.

Each row links to the relevant surface:

SignalLink
Failed postsPosts list, with per-post Retry
Channel healthSettings → Channels
Pending approvalsCampaigns
Unread commentsReplies
Schedule gapsComposer pre-filled for the gap day
BudgetBilling
Failed media jobsMedia
Analytics anomaliesAnalytics → Insights

When everything is healthy, the feed shows an All clear state.

Daily Brief ​

The brief is generated on demand by clicking Daily Brief in the header. It is cached per org per calendar day (dashboard:brief:{orgId}:{YYYY-MM-DD}) so repeated clicks return the same result until midnight local time.

  • Requires an active AI provider and the analytics:read permission.
  • Generation checks the org's AI budget; if the cap is exceeded you will see a 429 message.
  • If AI is not configured for your org, the brief card is hidden entirely.

RBAC and data visibility ​

Dashboard data is filtered server-side by your effective permissions. If you do not have billing:read, the Usage & Budget widget receives no data; if you do not have media:read, the Media Queue is omitted. The frontend hides the matching cards so the layout never shows empty permission-gated holes.

The AI-native social media management platform — postmill.ai