Loading…
Forgot password?
New here? Create an account
Takes a minute — this is what keeps your settings and Nightscout connection tied to you.
Already have an account? Sign In
Enter your email and we'll send a link to reset your password.
Back to Sign In
You're resetting your password. Choose a new one below.
Cancel and Sign Out
A clear, calm way to keep an eye on the people you love — built around Nightscout, designed to be readable from across the room, day or night.
Already have an account? Log In
This is who gets alerted, and who manages settings.
Needs at least 8 characters, one capital letter, and one special character (e.g. ! @ # $ %).
Prototype note: there's no real account backend yet — this stores your name locally for the demo, nothing is sent anywhere.
New here? Create an account
Enter your Nightscout site to pull real glucose data. You can skip this and set it up later in Settings.
Skip for now
Everything's ready to go.
Mirror is a secondary diabetes-data monitoring and display application designed for convenience and improved visibility. It does not replace your official CGM or insulin-pump application, receiver, or alarms.
Enter your Nightscout site to see live glucose data on your dashboard. You can skip this and set it up anytime later in Settings → Connections.
Create a read-only token under Admin Tools → Subjects on your Nightscout site. Never enter your API_SECRET here.
Mirror is a secondary display only. Keep your official CGM/pump app, receiver, and alerts active — Mirror is not a substitute for them.
Skip for now
Checking account status…
Applies to the live reading, top stat boxes, and graph. Threshold numbers under Profiles Attached stay in mg/dL for now.
Permanently removes this account and its settings. Children's Nightscout data lives on your own Nightscout server and isn't touched by this — only what's stored on this kiosk.
Saves your Nightscout connection to your signed-in Mirror account so it's available wherever you sign in.
Create a read-only token under Admin Tools → Subjects on your Nightscout site. Never enter your API_SECRET here.
View Data Source Status →
Mirror is a secondary display only. Keep your official CGM/pump app, receiver, and alerts active.
Each child's Nightscout site is configured on their own row under Profiles Attached. This section covers connections for the display itself.
Set a Hardware Bridge URL below, then tap Rescan.
Enter this code in the Mirror companion app to link a parent's phone. Prototype note: pairing needs a small backend relay that isn't built yet.
Mirror is a secondary display only. Keep your official CGM/pump app, receiver, and alerts active.
Optional context from health platforms, shown alongside glucose data — heart rate, sleep, and oxygen. Read-only; this never writes anything back.
Honest limitation: this is a browser page, and browsers have no way to read Android's Health Connect data — that's a native-app-only API with no web equivalent, not something any website can reach into regardless of how it's built. The switch above is here so the settings layout is ready, but actually pulling this data needs the companion Android app (already built separately) rather than this kiosk display.
SANDBOX — test data only, not a real Dexcom account's real readings.
This phase only establishes and reports the connection itself — it doesn't pull or display any glucose readings from Dexcom yet. Nightscout (above, in Connections) remains the actual glucose data source for the dashboard.
Build your own layout: add a Home view per child, a Graph, or the Trends screen, in any order. Swipe through them left-right on the main display.
Sets a 4-digit PIN. Once set, "Lock" appears in the long-press menu (hold anywhere on the main screen) — turns the display into a view-only state so nothing gets tapped or changed by accident. To unlock, touch and hold the locked screen to bring up this same PIN pad.
Where the alert banner slides in from, and stays until you tap Okay or swipe it away.
Nighttime hours are 10pm–6am, matching True Night Mode's schedule (Settings → Display). Defaults quieter than daytime, but urgent alerts always still play — this only scales the volume, it never silences a genuinely urgent low or high. Your device's physical volume buttons still work on top of either of these.
A routine low or high only alerts once when it starts. This adds a second, more insistent alert specifically for one that's been continuing without resolving — separate from (and in addition to) the always-on urgent-tier alerts.
Choose a sound per alert type — "Default" is the sound this demo ships with. Tap ▶ to preview.
The clock sits between the four customizable boxes at the top of each child's Home screen. Turn it off there if you'd rather use that space for a fifth box in a future update.
Honest limitation: iPhones can't do this at all — Safari has never implemented the web vibration standard, on any iOS version, so none of this does anything on an iPhone regardless of what's set here. It works on Android Chrome, where intensity is simulated by pulse length/pattern since the web standard has no true amplitude control. On this Pi kiosk itself, real vibration needs the optional hardware bridge and a physical motor — see README.
Helps tell kiosks apart if you set up more than one display.
Simulated in software by dimming the app itself. Real backlight control on a Pi build needs the hardware bridge — see README.
After a stretch of steady in-range readings, the display fades to fully black, showing just the name and number — a calm screen-saver, not a hidden one. Tap anywhere to dismiss early. It exits immediately — and the screen gradually brightens to full, overriding every other brightness setting — the instant a reading goes urgent (very low or very high). It does not react to routine "low"/"high" readings, only urgent ones, and it never engages while the signal is stale or reconnecting.
Goes deeper than regular dark theme — true black background, dimmer glow — for genuine comfort in a dark bedroom.
This dims/wakes the app's own display only — it doesn't turn the physical monitor on or off. On the Pi build, keep the screen itself powered on via xset s off (already in the kiosk setup) and let this handle the in-app dimming on top of that.
Color vision deficiency isn't one thing — these match its three clinical categories. Trichromacy is for anomalous trichromacy (protanomaly/deuteranomaly/tritanomaly) — mild, some hue discrimination remains, so this uses a blue-teal-amber-red gradient that avoids the red/green pairing specifically. Dichromacy is for a fully missing color axis (protanopia/deuteranopia/tritanopia) — separated by hue and lightness both. Monochromacy is for achromatopsia (no color perception at all) — real grayscale, ordered darkest-to-lightest so the two urgent states sit at opposite ends of brightness instead of both landing on "very dark" and becoming indistinguishable from each other.
The trend line on the Graph screen — independent of the accent color above, so it can stay legible against whatever zone color it's crossing.
Custom Photo dims your image behind the interface so text stays readable. Animated shows slow-moving soft color blobs. Reactive does the same, but the colors shift with whichever child is currently active — cool blue while low, calm green in range, warm amber/red while high.
Aurora, Fire, Ice, RGB Breathing, and Electric are purely decorative. Pulse and Reactive Glow are both colored by current glucose status — Pulse pings outward, Reactive Glow breathes in place, faster and more intense the further out of range.
The scenario/theme/sound buttons used to test how the display looks and behaves. Hidden by default so the interface fills the screen edge-to-edge; turn this on to bring them back at the top whenever you need to test something.
Placeholder — add a real support email or link here before this ships to anyone.
Mirror — Nightscout Kiosk · Prototype build
Companion display only — not a substitute for your pump/CGM's built-in alarms. Always keep those enabled.