Your data stays local. The app stores study data in browser storage: IndexedDB for larger exam data and images, with localStorage for small settings and legacy compatibility.
Stored in your browser
Imported exams, images, recent attempts, progress, editor changes, theme preference, and local exam visibility settings.
Not sent to the server
Question text, selected answers, imported files, filenames, personal progress, study history, names, emails, and account identifiers.
Online analytics
The public deployment sends limited product telemetry events to Azure Application Insights. Analytics is enabled by default and can be disabled from the Privacy settings control. Authorized maintainers can inspect event timestamps and coarse Azure-derived client and location metadata for operational analysis. Analytics is not initialized on localhost, private self-hosted URLs, or file URLs.
- Collected: page views, exam and Study Mode start/completion events, attempt review and missed-question study actions, import success/failure and coarse file size/type buckets, progress and editor import/export actions, unlock, pro modal, purchase-link, and import-activation counts, results-screen upsell and pass-story link counts, pass/fail and coarse score/duration buckets, simple sanitized labels from approved campaign parameters (
ref,utm_source,utm_medium,utm_campaign), and the external referrer hostname. Values resembling emails, URLs, or paths are discarded. - Azure Application Insights temporarily uses the sender IP to derive coarse country, region, and city information, then does not store the full IP address under the configured default behavior. Azure can also attach browser, operating system, device type, and device model metadata to telemetry.
- Bundled exam labels are restricted to
ab730,ab731,sc900,az900,az104,saac03,clfc02,ai901,az305,az400,dp900,dp700,ai103, andsc300. Every other exam is reported only asimported. - Not collected: full referrer URLs or paths, arbitrary query parameters, question text, options, answers, explanations, selected responses, imported content, filenames, personal study records, persistent visitor IDs, names, or emails.
- You can turn analytics off from the Privacy settings control on the online site.
- The analytics workspace is configured with 30-day retention.
Imports and editor changes
Dragging an exam file into the app or saving changes in the editor updates only that browser profile. To publish corrections for everyone, export the corrected JSON and open a pull request or GitHub issue.
Offline behavior
After the app shell is cached, the simulator works offline for the pages and assets already installed by the service worker. This privacy page is cached so the footer link opens as a readable app page instead of downloading a raw file.
Self-hosting and shared exams
A server can pre-install exams in user-content/exams/. Those static exam files are visible to every user of that deployment, but each user's progress and imported private exams still stay in their own browser storage.
Storage locations
- IndexedDB: imported exam content, images, image metadata, progress, and recent attempt review summaries.
- localStorage: theme, analytics opt-out, exam activation settings, and legacy compatibility mirrors.
- Cache Storage: app shell files needed for offline use.
Backups
Browser storage is scoped to the site origin and browser profile. Clearing site data can remove imports and progress. Use the export actions when you need a backup or want to move data to another browser.