AI Web FeedsAI Web FeedsOpen web AI reader
Features
Documentation

Dashboard and Analytics

The compact /dashboard surface plus the backend analytics APIs that remain available for repo tooling and integrations.

Source: apps/web/content/docs/features/analytics.mdx

Dashboard and Analytics

Status: /dashboard is the public UI. /analytics is not a public page. Backend APIs: /api/analytics/* remain available when BACKEND_URL points to the ai-web-feeds backend.

The public app keeps analytics out of the main reader workflow. Use /dashboard for compact catalog health. Use CLI commands and backend API routes for analytics snapshots, CSV export, and downstream reporting.

At a Glance

SurfaceUses backendBehavior when backend is unavailable
/dashboardNoRenders catalog health from repo artifacts
/analyticsNoNo public route
/api/analytics/*YesReturns 503 FEATURE_UNAVAILABLE

What Ships Today

Analytics APIs

The backend-backed analytics routes remain available for integrations:

  • /api/analytics/summary
  • /api/analytics/trending
  • /api/analytics/velocity
  • /api/analytics/export
  • /api/analytics/snapshot

They support:

  • Time range filtering: 7, 30, or 90 day slices
  • Topic focus: Filter the overview by a topic string
  • Refresh: Re-run the current query slice
  • CSV export: Download the current summary slice as a CSV attachment

Proxy Contract

The web app expects the ai-web-feeds backend to expose the following routes:

Web proxyBackend routePurpose
/api/analytics/summaryGET /analytics/summarySummary KPIs for the selected date range and topic
/api/analytics/trendingGET /analytics/trendingTrending topic slice
/api/analytics/velocityGET /analytics/velocityPublication velocity data
/api/analytics/exportGET /analytics/exportCSV export
/api/analytics/snapshotPOST /analytics/snapshot and GET /analytics/snapshotSnapshot creation and latest snapshot retrieval

Backend-Off Response

When the backend is unavailable, the web proxy returns:

{
  "error": "Analytics are unavailable until BACKEND_URL points to the ai-web-feeds backend.",
  "code": "FEATURE_UNAVAILABLE"
}

with HTTP 503.

Local Smoke Test

Start the backend HTTP surface:

uv run uvicorn ai_web_feeds.web_api:app --host 127.0.0.1 --port 8001

Point the web app at it:

BACKEND_URL=http://127.0.0.1:8001

Quick verification:

curl "http://127.0.0.1:3000/api/analytics/summary?date_range=30d&topic=llm"
Dashboard and Analytics | AI Web Feeds