Skip to main content

Privacy and Tracking

Blokdots collects a small amount of fully anonymous usage data to understand which versions are in use and fix what breaks. Nothing can be linked back to you.

Analytics are on by default and you can opt out at any time in Settings.

#How We Track

We use Mixpanel to collect analytics. We do not create a Mixpanel user profile and do not track any identifiable data.

To enable cross-session grouping without creating a user profile, we generate a random short ID on first launch and store it locally on your device. This ID is not linked to you in any way — it has no connection to your name, email, license key, or any other personal data. It is purely a device-level counter so that events from the same installation are not counted multiple times.

#What We Store Locally

The following values are kept on your device only. They are never transmitted directly — they are used solely to compute what categorical events to send:

  • The date you first launched the app
  • The last date and month you launched the app
  • A lifetime session counter
  • Counters for the current month (days active, sessions, total duration)
  • Flags for which retention milestones (Day 1 / 7 / 30 / 90) you have already reached
  • A flag for whether your install has been counted

#Events We Send

  • App Installed — fired exactly once on first launch. Total count = total installations.
  • App Launch — fired every launch. Carries OS, OS major version, architecture, app version, beta flag, license state (boolean), 2-letter locale, and bucketed values for days-since-install and session count.
  • App Closed — fired when the app quits, with session duration bucketed to 10-second granularity.
  • Retention Day 1 / 7 / 30 / 90 — fired at most once per install when your installation reaches that age. Lets us calculate how many installs remain active over time.
  • Monthly Summary — fired once per month on the first launch of a new month, summarizing the previous month. Contains bucketed counts for days active, sessions, average session length, and total time used.
  • Run Project / Card Added / Board Name Set — anonymous product-usage signals.
  • Code Exported — language (JS or C++) only.
  • Standalone Mode Entered — fired when an Arduino sketch is uploaded in standalone mode.
  • Pro License Activated / Pro Trial Started — boolean events; no license key, no email.
  • Renderer Error / Main Crash — error name, message, and stack trace, all sanitized: home-directory paths replaced with ~/, URL query strings stripped, emails replaced with <email>, license-key-like tokens replaced with <key>, and truncated to 500 characters.

Every event also includes a random per-session ID (generated fresh in memory on each launch) so we can correlate events within a single session. It is never stored and never reused across launches.

#What We Never Collect

  • Your name, email address, or any contact information
  • Your IP address
  • Project names or project content
  • File paths containing your username
  • License keys

#Why We Track

Understanding how the app is used helps us prioritize features and ship the right fixes. Analytics help us answer questions like:

  • How many people are on outdated app versions?
  • What percentage of installs are still active a month after install?
  • Which components and features are most used?
  • Are there error patterns tied to a specific OS or app version?

#Opting Out

Go to Settings and disable Send anonymized usage data. No data will be sent from that point forward.

If you have any questions, feel free to reach out at support@blokdots.com.