Welcome,

Account overview

Domain
SSL
Databases

Billing & support

Billing cycle
Current package
Site health score
Ticket updates

Coming soon

This space will hold a clean health graph and account insights. (TODO)

Coming soon

More dashboard modules will move here as we add real endpoints. (TODO)

Analytics

Privacy-friendly metrics (can be derived from server logs).

No trackers
Visits (30d)
Estimated sessions
Leads (30d)
Calls / forms
Top page
Most viewed
Bots
Percent of requests
When you wire backend: store only aggregated daily counts per client (not raw IPs / user agents). You can also display “Top referrers” and “Top locations” only if clients explicitly want it.

Invoices

All invoices (template list).

Invoice Date Amount Status Method

Support

Open a ticket (template).

SLA:
Channel
Topic
Subject
Message

Your open tickets

Status + client-facing updates from our team.

Quick help

Common requests, simplified.

Self-serve
Request a restore point
Pick a time and we’ll restore your site.
Content update
New hours, photos, services, pricing.
Billing questions
Invoices, payment methods, receipts.
Report an outage
If your site is down, this jumps the queue.
If you want this to feel premium: add a “Monthly summary” card (what was done + improvements).
Ticket

Settings

Portal preferences.

Local only
Theme
Stored in your browser only.
Notifications
Backend suggestion: allow clients to opt-in to SMS/email alerts for downtime and billing.
Security
Backend suggestion: magic-link login + optional TOTP for accounts.

Portal info

Implementation notes.

Recommended headers
Content-Security-Policy: default-src 'self'; img-src 'self' data:; style-src 'self'; script-src 'self'; base-uri 'self'; frame-ancestors 'none'
Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
Permissions-Policy: geolocation=(), microphone=(), camera=()
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
API wiring
Set window.PORTAL_API_BASE="/api" before app.js, then implement PHP endpoints returning JSON. The UI will automatically switch from mock data.