Privacy
Last updated 2026-05-05
HappyJump is a smile-controlled browser game. The pitch is simple: your face never leaves your device. This page explains what that means in practice, and what we do collect.
What stays on your device
- The video feed from your webcam.
- The output of the face-detection model (smile blendshape weights, landmarks, etc.).
- Any image, frame, or biometric reading whatsoever.
The MediaPipe Face Landmarker model runs inside your browser via WebAssembly. It is fetched from this site as a static asset. It does not call out to any server. Your camera permission is used solely to feed pixels into the local model.
What we collect
At the end of each round, the page sends a small anonymous counter
snapshot to /api/metrics:
- Games played — number of rounds completed on this device.
- Total seconds of gameplay — cumulative time spent playing on this device.
- Total smiles — cumulative smile rising-edges on this device.
- Seconds in this game — duration of the round just completed.
- Smiles in this game — smile count for the round just completed.
- High score — best round duration on this device.
- Shares — count of successful share-button clicks.
That's the whole list. There are no identifiers, cookies, fingerprints, device IDs, or correlated session tokens. Two players running the same browser are indistinguishable in our data.
When you tap the Share button after a game and the
share completes successfully, we also send a one-time event to
/api/share containing only:
- Seconds shared — duration of the run being shared.
- Smiles shared — smile count for that run.
- Is best — whether the run was a new personal best.
- Method — which share path was used (native sheet with file, native text, or clipboard fallback).
Server-side, each request — both game-end and share — is written as one row to Cloudflare Workers Analytics Engine, retained for 90 days. The row contains only the fields above and a server-assigned timestamp.
Server logs
The honest disclosure: every web server, including the one HappyJump runs on, sees the IP address and timestamp of each request as a basic consequence of how HTTP works. These are written to the access log of the host (currently Cloudflare). We do not extract or correlate them with the metrics counters above. They exist for ~30 days for routine operational purposes (rate-limiting, abuse handling) and are not analyzed.
Local storage
The game uses your browser's localStorage to remember:
- Your high score
- Your selected camera and mute / preview preferences
- The cumulative metric counters listed above
You can wipe everything via your browser's site settings, or use the Reset high score button in the in-game menu (which clears just the score). Clearing storage does not retroactively remove anything from the server-side aggregate counts.
Third parties
The site runs on Cloudflare Pages. Cloudflare's terms apply at the network layer (TLS termination, DDoS protection, request logging). No analytics, advertising, or social-tracking scripts are loaded.
Changes
Material changes to this page are announced in the in-game About panel and reflected here. Last updated date at the top.
Questions
See the contact page.