Loading…

Welcome to Mirror

or

Forgot password?

New here? Create an account

Create Your Account

Takes a minute — this is what keeps your settings and Nightscout connection tied to you.

or

Already have an account? Sign In

Reset Password

Enter your email and we'll send a link to reset your password.

Back to Sign In

Set a New Password

You're resetting your password. Choose a new one below.

Cancel and Sign Out

Demo
🏠Add Home Screen
📈Add Graph
📊Add Trends
🖼 Background
mg/dL
Done
Choose what this box shows
🔒 Locked — touch and hold to unlock
Enter PIN

Welcome to Mirror

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

Create Your Account

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

Connect Nightscout

Enter your Nightscout site to pull real glucose data. You can skip this and set it up later in Settings.

Not connected

Skip for now

You're All Set

Everything's ready to go.

Welcome to Mirror

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.

Connect Nightscout

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.

Not connected

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

Settings

Checking account status…

Glucose Units

Applies to the live reading, top stat boxes, and graph. Threshold numbers under Profiles Attached stay in mg/dL for now.

Legal

Privacy Policy
Terms of Use

Delete Account

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.

Nightscout Connection

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.

Not connected

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.

Wi-Fi

Set a Hardware Bridge URL below, then tap Rescan.

Companion App Pairing
— — —

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.

Checking…
Looking up your Cloud Nightscout connection.
Label
Nightscout site
Connected
Last checked
Last successful check
Latest reading
Reading age
Data freshness

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.

🤖
Android Health Not connected

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.

🩸
Dexcom Checking…

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.

Profiles Attached (up to 4)

Screens

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.

Screen Lock PIN

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.

No PIN set

Where the alert banner slides in from, and stays until you tap Okay or swipe it away.

Daytime Alerts

Volume

Nighttime Alerts

Volume

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.

Persistent Low / High Alerts

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.

Alert Sounds

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.

This Device

Helps tell kiosks apart if you set up more than one display.

Brightness

Simulated in software by dimming the app itself. Real backlight control on a Pi build needs the hardware bridge — see README.

Ambient Display

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.

True Night Mode

Goes deeper than regular dark theme — true black background, dimmer glow — for genuine comfort in a dark bedroom.

Screen Sleep

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.

Accent Color
Color Theme

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.

Graph Line Color

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.

Wallpaper

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.

Avatar Animation

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.

Demo Environment

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.

Contact Support

Placeholder — add a real support email or link here before this ships to anyone.

Troubleshooting

Screen shows "No Signal" or "Reconnecting"
Check that the sensor's transmitter is within Bluetooth range of its phone/uploader, that the uploader app is running, and that this kiosk has internet access (check the Internet Status box if you've added one).
Glucose numbers look wrong
Confirm the units in Account match what your Nightscout site reports, and that this profile's Nightscout URL under Profiles Attached is correct.
Display seems frozen or unresponsive
This kiosk includes an automatic stall recovery for brief pauses. If it stays frozen, a power cycle is the fastest fix — see the README for a proper watchdog setup for unattended kiosks.
No sound or vibration on alerts
Check Notifications → Alert Volume and your device's physical volume. Vibration doesn't work on iPhone at all (Safari platform limitation) — see the Vibration settings page for details.

Mirror — Nightscout Kiosk · Prototype build

Companion display only — not a substitute for your pump/CGM's built-in alarms. Always keep those enabled.