Site
Not connectedNot connected
Static shell only. No website validation, crawl, or database write exists.
Dashboard shell
Static dashboard shell for the authenticated product experience. Backend routes are ready, but this page still uses demo data and does not call APIs, databases, workers, queues, or providers.
Not connected
Static shell only. No website validation, crawl, or database write exists.
Provider-free
Google OAuth and GSC sync remain blocked by 0.2G gates.
Not running
No crawler, queue, worker, or external request exists in Milestone 1B.
Static only
Recommendation data will require evidence from future GSC and crawl systems.
Unavailable
Report generation and delivery remain placeholder-only.
These cards and sections are static UI placeholders. They do not read customer data, accept account identifiers, start scans, run crawls, call workers, call Google APIs, generate reports, update tasks, or calculate real account health.
The dashboard has a trusted-session backend, but this static card does not read cookies or call auth APIs.
Existing routes: GET /api/identity/me and POST /api/auth/logout
If no trusted session is available, future UI should show a safe signed-out state.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
10C keeps this as a status surface until approved client wiring is added.
The identity route can return only a safe user id and email after trusted session resolution.
Existing route: GET /api/identity/me
Permission or session failures should render generic access messages.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Future account UI can read the identity route without sending client-selected account context.
Checkout exists, but there is no safe billing-status read route yet. This card must not invent subscription state.
Existing action route: POST /api/billing/checkout
Plan and subscription details stay unknown until a safe read route is approved.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Future billing UI may offer checkout only after permission-aware client wiring is approved.
Project list and create flow will use the trusted project API route.
Planned route: /api/seo/projects
No connected projects are loaded in this static shell.
Keyword management will use the metered tracked keyword service through API routes only.
Planned route: /api/seo/projects/[projectId]/keywords
No tracked keywords are loaded yet.
Crawl target inventory will use the safe crawl target API route and inventory usage metric.
Planned route: /api/seo/projects/[projectId]/crawl-targets
No crawl targets are loaded yet.
Crawl run UI will schedule metadata only and will never call internal processing systems.
Planned route: /api/seo/projects/[projectId]/crawl-runs
No crawl run history is loaded yet.
Report preview UI will display sanitized app-owned summaries only.
Planned route: /api/seo/projects/[projectId]/reports/preview
No report preview is loaded yet.
Billing UI will show safe plan and usage state without provider internals.
Planned route: /api/billing/checkout
No live billing state is loaded yet.
Account UI will use trusted session state from the identity route.
Planned route: /api/identity/me
No trusted account profile is loaded yet.
Project workspace
A future project list belongs here, but this shell does not load or invent project rows.
List: Project list placeholder: no live projects are loaded in this static dashboard.
Create: Create project placeholder: future UI should submit only safe project fields through approved routes.
Access: Permission placeholder: project actions must use trusted session checks on the server.
Empty: Empty state: no projects are available in this static shell.
Error: Error state: show a generic retry message without request or storage details.
Future: Future wiring can connect to the existing project API from a reviewed client boundary.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Site inventory
A future site list belongs here, but this shell does not load or invent site rows.
List: Site list placeholder: no live sites are loaded in this static dashboard.
Add: Add site placeholder: future UI should submit only safe domain and display fields through approved routes.
Access: Entitlement placeholder: site actions must respect project ownership and plan limits on the server.
Empty: Empty state: no sites are available in this static shell.
Error: Error state: show safe guidance without provider, request, worker, or storage details.
Future: Future wiring can connect to the existing site API from a reviewed client boundary.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Keyword workspace
A future keyword list belongs here, but this shell does not load or invent keyword rows.
List: Keyword list placeholder: no live keyword rows or position values are loaded in this static dashboard.
Add: Add keyword placeholder: future UI should submit only safe keyword, device, locale, and country fields through approved routes.
Access: Permission and entitlement placeholder: keyword actions must be checked by trusted server boundaries.
Empty: Empty state: no tracked keywords are available in this static shell.
Error: Error state: show safe retry guidance without search-result payloads or storage details.
Future: Future wiring can connect to the existing keyword API from a reviewed client boundary.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Target inventory
A future crawl target list belongs here, but this shell does not load or invent target rows.
List: Target list placeholder: no live target rows are loaded in this static dashboard.
Add: Add target placeholder: future UI should submit only safe URL fields through approved routes.
Normalize: Normalized URL placeholder: canonical URL display belongs here after reviewed API wiring.
Access: Permission and entitlement placeholder: target actions must be checked by trusted server boundaries.
Empty: Empty state: no crawl targets are available in this static shell.
Error: Error state: show safe retry guidance without page content or storage details.
Future: Future wiring can connect to the existing crawl target API from a reviewed client boundary.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Run scheduling
A future crawl run history belongs here, but this shell does not load or invent run rows.
Schedule: Schedule placeholder: future UI should request scheduling through approved routes only.
Repeat safety: Repeat schedule requests should resolve to one safe scheduling window for the same target set.
Background: Background work placeholder: internal processing details stay hidden from the UI.
Empty: Empty state: no crawl runs are available in this static shell.
Error: Error state: show safe retry guidance without page content or processing details.
Future: Future wiring can connect to the existing crawl run scheduling API from a reviewed client boundary.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Computed preview
A future report preview belongs here, but this shell does not load or invent report rows.
Project: Project summary placeholder: no live project report data is loaded in this static dashboard.
Site: Site summary placeholder: no live site report data is loaded in this static dashboard.
Keywords: Tracked keyword summary placeholder: no live keyword report data is loaded in this static dashboard.
Crawl run: Crawl run summary placeholder: no live crawl run report data is loaded in this static dashboard.
Findings: Sanitized findings summary placeholder: future UI should display summarized safe finding counts only.
Empty: Empty state: no report preview is available in this static shell.
Error: Error state: show safe retry guidance without page content, storage details, or processing details.
Future: Future wiring can connect to the existing report preview API from a reviewed client boundary.
Delivery: Document download and email delivery remain unavailable until separately reviewed.
Loading: Use a stable placeholder while reviewed client wiring is absent.
Unavailable: Show that reviewed records are not available in this static shell.
Access: Use generic access guidance until trusted checks are connected.
Limit: Show a plan-limit placeholder without claiming measured usage.
Unknown: Keep unknown states neutral and avoid internal implementation details.
Demo site
Static Demo Bakery
example-small-business.test
Static demo placeholder only. No real site, account, database record, crawl, or provider connection exists.
Provider-free demo status
Last successful sync: No live sync has run
Static placeholder only. This does not connect to Google Search Console, run sync jobs, or read customer data.
Static demo evidence summary only: placeholder crawl data suggests the title is short and non-specific.
A clearer title may help users understand the page topic. Ranking or traffic outcomes are not promised.
Suggested static task: Draft a specific title that includes the core service and local business context.
Static demo evidence summary only: placeholder GSC-style data marks impressions high and CTR low.
Snippet improvements should be reviewed against fresh evidence before action. Result lift is not promised.
Suggested static task: Compare the title and meta description with the page intent and make the snippet more specific.
Static demo evidence summary only: placeholder crawl data shows few internal links pointing to the catering page.
Internal links can improve discovery and context. Ranking movement is not promised.
Suggested static task: Add relevant links from service, menu, and contact pages where the catering topic naturally appears.
Static task data only. These controls do not update records, assign users, or connect to a database.
Draft a clearer services page title
Status: in progress. Owner: Static demo owner.
Review menu page title and description
Status: new. Owner: Static demo owner.
Identify three natural internal link placements
Status: viewed. Owner: Static demo owner.
Mark report follow-up as reviewed
Status: completed. Owner: Static demo owner.
Static yellow
Static health summary only. It does not read login, billing, support, sync, crawl, or monitoring data.
GSC connected
Google OAuth is not implemented.
Site crawled
Crawler and jobs are not implemented.
Recommendations viewed
Static demo recommendations are visible only.
Fresh sync
No live sync status exists in this milestone.
loading
Use stable skeleton rows and avoid exposing request, session, provider, or queue details.
empty
Explain the next safe action without inventing data or asking for account identifiers.
error
Show safe retry guidance for 400, 401, 403, 409, 429, and 500 responses without leaking internals.
permission_denied
Explain that the user may need workspace access without revealing authorization details.
entitlement_limited
Use neutral upgrade or contact guidance without claiming measured values.
unavailable
Make clear that the UI is waiting for reviewed API wiring and is not loading records.
future_wiring
Point to the future user flow without exposing route internals or implementation details.
unknown
Prefer a calm neutral message when the UI cannot safely determine the current state.