-
Notifications
You must be signed in to change notification settings - Fork 4
Analytics
| Event | Properties | Why |
|---|---|---|
app_installed |
(none) | Measures new installs. |
app_started |
(none) | Measures how many people actively use Glimpse. |
app_exited |
uptime_seconds, transcription_count
|
Shows session length and overall usage volume. |
app_crashed |
crashed_version, location, crash_type
|
Diagnoses native crashes from a small on-disk marker: code location and a bounded category, never the crash message. |
frontend_crashed |
window, source, error_kind, fingerprint
|
Diagnoses UI errors (window errors and unhandled rejections). The fingerprint is a short non-identifying hash, never the error text. |
transcription_completed |
mode, model, llm_cleaned, audio_duration_seconds, transcription_duration_seconds, word_count, audio_source
|
Reveals which models and features people actually use, and how fast transcription runs. |
transcription_failed |
stage, mode, model, reason, audio_duration_seconds, audio_source
|
Helps diagnose and fix failures faster. reason is a bounded code, never the raw error. |
transcription_fallback |
remote_model, local_model, reason, outcome
|
Tracks when remote (cloud) speech falls back to a local model, and why. |
recording_failed |
stage, reason, input
|
Diagnoses audio capture / input-device problems. |
model_downloaded |
model |
Shows which models are most popular so support can be prioritized. |
model_download_failed |
model, stage, reason
|
Diagnoses failed model downloads/installs. |
update_failed |
source, stage, version, reason
|
Diagnoses failed manual or automatic updates. |
onboarding_step_viewed |
step |
Shows where people drop off during first-run setup. Only a bounded step name, never form contents. |
onboarding_completed |
(none) | Measures how many users complete setup. |
settings_changed |
setting, from, to
|
Records toggles for a small set of features (cleanup, edit mode, remote speech, auto-dictionary) so we know which are used. |
analytics_opt_out |
(none) | Recorded once if you turn analytics off, so we know the opt-out rate. |
Every event also carries the app version and your OS (platform). Once per install we record a profile with the app version, OS, your CPU architecture (arch, Apple Silicon or Intel/x86), and an install date. This tells us which platforms and versions to support, for example whether to keep optimizing for Intel Macs.
All reason / stage / crash_type values are mapped to a fixed set of bounded codes (see classify_failure_reason and classify_panic in the analytics source). Free-form error text is never sent.
Each event is associated with a random install ID, not your name, your identity, or your IP address. All data is stored in the EU via PostHog EU.
- Transcripts or audio
- API keys or prompts
- Crash or error messages (only bounded category codes and a code location)
- Any personally identifiable information
Analytics can be disabled at any time in Settings → App. The change takes effect as soon as the setting is saved.
Building Glimpse means constantly making decisions: what to build next, what to improve, and just as importantly, what to cut. Analytics help make those decisions based on what people actually use.
A good example: Glimpse once supported Moonshine models on the transcribe-rs backend. After about a month, the data showed they'd been used exactly once, by us. That's the kind of signal that saves everyone time. Without it, features can linger long past their expiration date.
Privacy is important. For many people, it's the main reason they use Glimpse. So a final reassurance: when analytics are enabled, they are fully anonymous and GDPR compliant. The data is only accessible to the Glimpse team and is used strictly to improve the app. Your data will never be sold. This applies to cloud mode as well.
Your data is yours, not ours to share.