Component library

49 components · theme dark · density comfortable

Surfaces

plane · surface · sunken · sunken-2

bg-plane
bg-surface
bg-sunken
bg-sunken-2

Brand vs status

must never be confusable

brand
Aa
brand-wash
good
warning
serious
critical
idle
s1 · charts only
s2 · charts only
s3 · charts only

Typography and rules

Page title — 19/680

Panel title — 13/650

Body — text-ink

Secondary — text-ink-2

Muted — text-ink-3


border-line above · border-line-2 below


mono 0123456789 · tabular 99.98% · inline code

Button

5 variants · 3 sizes · states · groups

Row actions:

Form controls

on off
Ingest DSN
https://panel.xyte.be/api/ingest/api/7f3a/envelope
Beacon snippet
<script defer src="https://panel.xyte.be/api/analytics/beacon.js" data-key="7f3a"><\/script>

Status, badges and identity

good warning serious critical idle
no ring no ring no ring no ring no ring
goodwarningseriouscriticalidle
pipquietactiveLOGSSPANSEXCEPTIONS
A B C

StatTile

the KPI row every overview opens with

Monitors up

12/14

2 down

Uptime 30d

99.94%

+0.06 vs last month

Open incidents

3

1 major

Visits 30d

48,201

+12% vs last month

WP updates

No data from this source

UptimeBar

60 buckets · hover for the day

client-a.be100%
60 days agoToday
client-b.be99.81%
60 days agoToday
client-d.be88.40%
60 days agoToday
client-f.bepartial data
60 days agoToday

The muted run is missing data, not uptime. Closing the gap would redraw history as if it had never been missing.

Charts

Sparkline · BarChart · Gauge · Meter

Sparkline
BarChart
99
72
34

Table — basic

caps headers · the opt-in grid treatment

SiteStatusUptimeResponse
client-a.be good99.98%142 ms
client-b.be good99.81%310 ms
client-c.be warning97.10%1240 ms
client-d.be critical88.40%
client-e.be idle

Table — fleet

inline graphics and a single action per row

SiteLast 60 daysUptimeResponse trendIncidents
client-a.be
99.98%0
client-b.be
99.81%1
client-c.be
97.10%3
client-d.be
88.40%7
client-e.be
0

Table — object list

status pages, projects, integrations

NameAccess levelStatusActions
Xyte Webdesign1 monitor PublicPublished
Client A — status6 monitors PublicPublished
SAAS client B12 monitors PasswordPublished
Internal infra4 monitors PasswordDraft

Table — expandable

the Errors-page pattern

IssueServiceEventsStatus
TypeError: undefined is not a functionat renderWidget (client-a.be)wordpress40good
TypeError: undefined is not a functionat renderWidget (client-b.be)wordpress53good
TypeError: undefined is not a functionat renderWidget (client-c.be)wordpress79warning
TypeError: undefined is not a function
    at renderWidget (/app/widgets/render.js:42:11)
    at Array.map (<anonymous>)
    at buildPage (/app/pages/build.js:118:24)
MonitorStartedLengthHandled by
client-a.be/statusKeyword not found (looked for “All systems normal”)2 min agoOngoingAutomatically
Manually reportedOpened by hand from the incident form14 min agoOngoingAutomatically
client-a.be/statusHTTP 502 from Traefik38 min agoOngoingAutomatically
2 similar incidents1 acknowledged SMTP server does not respond at port 4651 h agoOngoingM Michel
2 similar incidentsSMTP server does not respond at port 465Yesterday 22:106 minAutomatically
client-c.be/statusCertificate chain incompleteYesterday 18:4122 minM Michel
client-c.be/statusResponse time above 3 000 ms for 5 checksYesterday 09:024 minAutomatically
client-d.beConnection refused from 3 of 3 locationsMon 03:1741 minM Michel

Channel picker

the alerting setup list — product identity, not status

Add integrations to your account to get notified by your monitors.

State envelope

loading → error → empty → ready

Real content renders here.

Nothing here yet.

Something went wrongConnection refused

NoteBanner

Beacon installed 4 minutes ago. First pageviews appear within a minute.
SSL certificate for client-c.be expires in 6 days.
Hostinger token is missing the hosting scope — the WordPress fleet is unknown, not empty.

Header layout

Show the logo prominently, or save vertical space.

Report sections

Each block can be hidden, or shown but flagged admin-only so it never reaches the client copy.

Uptime & incidents
WordPress updates
Traffic
Error detail
Step 2 of 3

Live preview

What the client sees

A

Monthly performance report

/portal/client-a

All systems operational
Uptime & incidents
WordPress updates
Traffic

Slider, Checkbox, SplitButton

Monitor interval

Checked every 5m. Sub-minute checks are a paid tier.

The header box shows the indeterminate dash when only some rows are picked.

One obvious default, alternatives one click away.

Finish setting up

3 of 6 done

Create your first monitor

Paste a URL. Sensible defaults, no config screen.

Done
2

Get alerts your favourite way

Pushover, Discord or email. Whichever channel you actually check.

Go beyond the green checkmark

Catch SSL expiries, slowdowns and DNS drift before clients do.

Done
4

Cover every page that matters Found 2

We found 2 critical pages on xyte.be that are not monitored yet.

Install the analytics beacon

One script tag. The install check confirms it is live.

Done

Show your uptime to clients

Your subdomain, your logo, your incident history.

Current status

0

Down

1

Up

0

Paused

Last 24 hours

100%

Overall uptime

MTBF

1d

Without incident

0

Incidents

AI SRE

Investigate incidents with an AI agent and post findings to the timeline

AI SREPrimary

Timeline

one stream, every domain — the correlation none of the reference products can draw

  1. Error spike

    38 events of TypeError: undefined is not a function

  2. Deployed client-a.be

    compose · 3 services restarted

  3. WordPress core updated

    6.6.1 → 6.6.2 on 4 sites

  4. Certificate renewed

    client-b.be — valid for 89 more days

  5. Backup completed

    postgres · 412 MB to Hetzner

  6. Incident resolved

    client-d.be was down for 41 minutes

Tooltip, Toast, Pagination

Hover or tab to:SSL 6d
Errors stay until dismissed; confirmations auto-clear.

Showing 126–150 of 300 error groups

Modal and confirmation

Project
client-a.be
Service
wordpress
Action
Restart container

Icon

54 shell icons

dashdeploylogsglobeservershieldchartterminalsliderssearchbellsunmoonrightdownalertcpuramdiskactivitywificopydotsrefreshplaystopextcollapseplusclockcheckxdbboxcodemenulogoutmailuserslockgearpausetrashsparklefiltersortstarcommentdocphonehashsendarchivewiden