{% extends "base.html" %} {% block title %}{{ page.title }} · status page{% endblock %} {% block head %} {% endblock %} {% block content %} {% set ov_cls = {'operational': 'ok', 'degraded': 'warn', 'down': 'err', 'maintenance': 'info', 'pending': ''}[overall] %}
No components yet. Add some under Components.
{% endif %}Group related monitors (e.g. "APIs", "Website", "Background jobs"). Groups appear in this order; a monitor can only be in one group. Unchecked monitors are not shown.
{% if monitors %}Create some monitors first, then pick which ones to show here.
{% endif %}:root--bg, --panel, --text, --muted, --brand, --ok, --warn, --err, --linebody.status-page.operational, .down…)nav.top .logo.hero-s.grp .gh.mrow, .days.incfooter/* light theme example */
:root{--bg:#f6f7fb;--panel:#fff;--panel2:#f1f3f9;--text:#111827;--muted:#5b6478;--line:#e4e7ef;--line2:#d5dae6;--bg2:#fff}
Visitors subscribe from the public page; each gets a message when an incident is opened, updated or resolved. Webhooks receive JSON {event, page, incident}.
| Type | Target | Components | Since | |
|---|---|---|---|---|
| {{ s.kind }} | {{ s.target[:64] }}{% if s.target|length > 64 %}…{% endif %} | {% if s.monitor_ids %}{% for mid in s.monitor_ids %}{{ monitor_names.get(mid, '?') }}{% if not loop.last %}, {% endif %}{% endfor %}{% else %}All{% endif %} | {{ s.created_at|timeago }} | {% if can_edit %}{% endif %} |
No subscribers yet. Share the subscribe form on your public page.
Overall status, refreshed every minute. Drop it in a README or footer.
<a href="{{ base_url }}/s/{{ page.slug }}{{ key_q }}"><img src="{{ base_url }}/s/{{ page.slug }}/badge.svg{{ key_q }}" alt="status"></a>
[]({{ base_url }}/s/{{ page.slug }}{{ key_q }})
{{ base_url }}/s/{{ page.slug }}/badge/{{ mid }}.svg{{ key_q }}Add components first.
{% endif %}A small floating pill in the bottom-right corner of your site showing live status and linking to this page. Vanilla JS, ~1 KB, no dependencies.
<script src="{{ base_url }}/s/{{ page.slug }}/widget.js{{ key_q }}" async></script>
{overall, updated_at, components:[{name, state}]} with CORS enabled, so you can read it from any website.{% if page.password_hash %} Private pages need the ?key= parameter on every URL above.{% endif %}Nothing yet. Automatic incidents from monitors listed on this page appear here and on the public page without any action.
{% endif %}