Privacy information
A local, browser-based app by design
Core webcam and USB-camera media is processed in your browser and is not uploaded to VisualizerApp servers. This notice explains the browser data, routine hosting records and optional services that sit around that local workflow.
Who is responsible for VisualizerApp
The data controller is M White trading as INLine Computers. The person responsible for data protection is M White. ICO registration number: ZC094016.
Email support@inline-computers.co.uk for privacy questions. General project email: hello@visualizerapp.com.
M White trading as INLine ComputersBlue Lias Cottage
Dabinett Drive
Winscombe
BS25 5AF
At a glance
- Core camera use needs no account.
- By default, camera media, freeze frames, annotations and saved lesson material stay in the browser and are not uploaded to VisualizerApp servers.
- Routine site delivery can still process IP address, browser/request details, requested URLs and timestamps.
- Google Analytics runs only if you allow it in Analytics settings. A fresh choice is required for this notice; older Allow preferences do not carry over. Hosting and security requests still occur.
- Phone Camera, resource search, feedback, speech services and Pro access involve the providers described below when you choose those features.
- Manual backup and exported files stay under your control and may contain classroom personal data.
1. Data processed on your device
Camera, microphone and classroom content
When you grant browser permission, VisualizerApp uses the camera or microphone for live viewing, freeze frames, annotations, capture, recording, audio notes and the sound meter. During normal webcam or USB-camera use, that media is processed locally and is not sent to VisualizerApp servers.
Printed-text and handwriting recognition run locally in the browser on a frozen frame. First use can download pinned OCR code and model files from VisualizerApp, but the frozen-frame image and recognised text are not sent to VisualizerApp or a third-party service for recognition.
Names, team labels, notes, OCR text, branding, annotations and Lesson Deck material entered into classroom tools normally stay in browser storage or in files you choose to export. Use initials, team names or non-identifying labels where appropriate.
Browser storage
VisualizerApp uses localStorage, IndexedDB, Cache Storage and similar browser storage for settings, analytics consent, camera preferences, saved setup, 24-hour preview status, a random device identifier, Pro token/status, freeze history, Lesson Decks, notes, tags, pinned resources, branding, audio notes, OCR text, prompt history and cached resource searches/results. In v3, resource search caches expire after six hours and expired entries are removed on subsequent app/cache access. Older v2 caches can remain until v3 performs cleanup or site data is cleared; browser data can remain on an unused device until cleared.
Unsaved captured frames, annotations and lesson notes are also saved automatically as local recovery drafts. Closing the tab does not erase them. Drafts expire after seven days and are deleted when the app next runs its cleanup. Saved decks remain until deleted. Anyone using the same browser profile may be able to recover or open this work.
You can remove local data through the app where a delete control is provided or by clearing site data for visualizerapp.com in the browser. On shared devices, export any work you need and clear site data before handing the browser to someone else. Clearing site data also removes local settings and access tokens. Changing your analytics choice does not clear lesson data.
Local PDFs, exports and backup
A PDF selected from your device is rendered in the browser. Image, PDF and PowerPoint exports are generated in the browser. Manual backup files are also created locally.
Browser speech services
Optional dictation uses the browser's SpeechRecognition service and read-aloud uses browser or operating-system speech synthesis. Depending on the browser and platform, audio or text may be processed by that provider. Type notes and avoid speech features if your organisation does not permit that processing.
2. Optional online services
Phone Camera
Phone Camera uses encrypted WebRTC media designed to travel directly between the two approved devices. PeerJS handles signalling and Google STUN services help the devices discover a direct route. Those services can receive IP addresses and connection metadata needed to establish the link. No TURN media relay is configured by VisualizerApp.
Pairing credentials are placed in the URL fragment and removed from the visible URL as the phone page starts. A new QR link expires after two minutes if unused. Compare the four-digit code on both devices and approve the phone on the computer within 30 seconds. Only that approved phone can join the session. Cancel or Stop ends the pairing; a disconnected session has up to one minute to reconnect before it expires. Keep both codes private and create a new pairing after expiry. Older v2 Phone Camera entry points now direct you to this v3 flow without forwarding old credentials.
Phone Camera requests video, not microphone audio. The receiving computer can display, freeze, annotate, record or export the camera view. The person operating it can therefore keep or share what you show; stopping the connection does not delete their captures. Only connect to a computer and person you trust. Students should not use Phone Camera. The teacher in charge should operate both devices and avoid showing faces, names or private surroundings unless needed for the teaching activity.
Resource Pane and external searches
Book searches first use a VisualizerApp Cloudflare Worker proxy and then Open Library. Audiobook/media searches and reading can contact Internet Archive. Facts search contacts Wikidata. Web search opens DuckDuckGo with the query you entered. Cover, page and media requests also disclose normal request metadata to the provider.
Uploading a local PDF does not send that PDF to those search services. Do not place pupil names or other personal information in resource-search queries.
Direct image links and saved resources
If you choose an external image URL for a comparison overlay, that website receives the image request, including any query values in the URL and normal connection metadata. Restoring a saved deck with an external overlay or displaying its remote resource thumbnails can contact those websites again. Use an uploaded image or captured frame for a local copy, and open shared decks only from sources you trust.
Support, email and feedback
If you email us, we receive the address, message, attachments and mail metadata needed to reply and keep a support/business record. The support mailboxes use Microsoft 365. The optional feedback form is hosted by Google Forms and receives whatever you submit. If you need a reply, use email or provide a contact address.
3. Analytics and performance measurement
Optional Google Analytics 4
Google Analytics runs only after you choose Allow analytics. A fresh choice is required for this notice; an older Allow preference does not enable it. No Google Analytics tag, analytics cookies or measurements are sent before consent, and earlier activity is not queued for later upload. Declining, closing the choice panel or withdrawing does not remove app features.
We use optional analytics to understand visits and how consenting teachers, tutors and teaching staff use the tools, such as opening the app, choosing a feature, requesting an export and approximate foreground camera-use time. These are browser activity measurements, not counts of teachers, pupils, schools, classroom participation or teaching hours. Some events record an attempt rather than a completed action.
Measurements use fixed event names, fixed categories and bounded numbers. Page data uses a generic title and known page path, without URL queries, fragments or referrers. Events can include broad device type, Free/Preview/Pro status, feature choices, bounded frame/deck counts and coarse camera-use duration bands. Google also receives connection information, including your IP address when handling a request, and browser/session information. First-party _ga and _ga_* cookies use browser identifiers to distinguish visits. This is not anonymous processing.
We do not send camera video, images, audio, pupil work, annotations, notes, OCR text, resource-search text, names, entered dates, filenames, licence keys or pairing credentials to Google Analytics. Exact viewport dimensions are not included in our custom events. Google Signals, user-provided-data collection, advertising consent and ads personalisation are off, and this property's AdSense link has been removed. We do not use these measurements for targeted advertising. The Google account's modelling-contributions/business-insights setting remains enabled; Google's use of aggregated measurement data for those purposes is described in its data-sharing information.
Analytics is limited to eligible pages on our production HTTPS site, excluding staging, phone-pairing pages and the Classic app. Do Not Track and Global Privacy Control keep it off. A teacher's choice covers that operator's site/tool usage, not tracking pupils or uploading their work.
An Allow choice lasts up to 180 days and does not renew merely because you visit. Analytics cookie expiry is limited to the remaining choice period, without renewal on activity. A material change to the notice requires a fresh choice. No thanks is remembered until changed or browser storage is cleared. An expired Allow record may remain stored but is inactive.
Use Analytics settings in the website footer or Settings > General > Analytics and privacy in v3 to withdraw. This blocks further measurement sends and removes accessible GA cookies without reloading your lesson or clearing saved work. A request already handed to the network cannot be recalled. If the Google tag has already run in an open page, allowing again takes effect on your next normal navigation. Withdrawal does not automatically erase data already received by Google; contact us about a data-rights request.
Google Analytics user-level and event-level retention are set to two months, with reset on new activity off. Most standard aggregated reports are not governed by that two-month setting and can remain available longer. Provider retention is separate from the browser cookie/choice period. See Google's retention explanation.
Google and its affiliates may process analytics data outside the UK or EEA, including in the US. Google's applicable data-protection terms describe transfer arrangements, including adequacy frameworks and standard contractual clauses where applicable. See Google's data-processing terms, international-transfer information and how Google uses data from partner sites. You can use the app without choosing analytics.
Hosting and performance services
Cloudflare processes ordinary request information for site delivery, security, the resource proxy, activation and preview. Those requests are separate from optional analytics consent. Cloudflare Web Analytics/RUM, Zaraz and Google tag gateway are disabled for this site. This does not disable ordinary hosting and security logging. Contact us for provider information needed for a school assessment.
Older open or offline app versions may retain their earlier behaviour until reopened. Save your work and reopen when convenient; this update does not force a lesson reload.
4. The 24-hour preview, trials, checkout and activation
24-hour Pro Preview
The no-email preview is separate from the emailed 7-day trial. When you request a preview (and when verifying an existing preview), to enforce one preview per browser in any 90-day period the app derives a one-way SHA-256 browser fingerprint from browser/device characteristics such as user agent, languages, platform, hardware values, time zone and screen details. The resulting hash, a random local device ID and source label are sent to the VisualizerApp activation Worker. The Worker stores a further-hashed preview record for 90 days.
7-day trial and paid checkout
Lemon Squeezy handles the emailed 7-day Pro Free Trial, paid checkout, tax, licence issuing and subscription management as Merchant of Record. We receive limited trial, purchase, subscription and licence information needed to provide access and support, but not full payment-card details.
Licence activation
The licence key and random device ID are sent to the VisualizerApp Cloudflare activation Worker. The Worker validates entitlement with Lemon Squeezy and returns a signed token, which is stored locally with plan and expiry information. Activation links contain the key and should be treated like credentials. v3 captures and removes activation parameters as the page starts; older apps remove query parameters when their activation module runs. Client scrubbing cannot remove a key already sent in the initial HTTP request by a query-based activation link: hosting/security logs may receive it. Fragment-based links avoid sending that fragment in the initial request. The service worker does not cache key-bearing navigation URLs. Do not forward or publish an activation link.
Preview and activation checks automatically decide only whether optional Pro features are available. Contact support if a valid entitlement is refused. No analytics data is used for a decision with legal or similarly significant effects.
5. Lawful bases
Where UK GDPR or EU GDPR applies, the basis depends on the activity:
- Consent: optional GA4 analytics, only after an explicit Allow choice. You can withdraw this through Analytics settings.
- Contract: providing a 7-day trial or paid Pro licence, activation/validation, purchase support, cancellation and refund handling.
- Legal obligation: records needed for accounting, tax or other applicable legal duties.
- Legitimate interests: site security, abuse/fraud prevention, enforcing one 24-hour preview per browser in any 90-day period, service reliability, troubleshooting and proportionate support administration.
These are separate from the PECR rules for storing or accessing information on a device. Necessary storage supports the functions you request; a legitimate-interests basis alone does not create a PECR exception. The necessity and proportionality of the preview fingerprint require a recorded assessment. Browser camera permission is a technical permission, not consent to every processing purpose.
Local processing limits what we receive, but does not by itself remove data-protection duties. Schools determine the purpose and lawful basis for their classroom activity, including any sensitive information. We determine the purposes of our hosting, licensing and support processing. The respective roles and any required school agreement must be assessed for the actual deployment.
6. How long information is kept
- 24-hour preview record: 90 days.
- Activation cache: up to 30 days after a successful activation or revalidation.
- Activation lookup indexes: 30 days after their most recent update.
- VisualizerApp activation-instance mapping: up to 370 days after the latest successful activation or revalidation that rewrites it, and possibly less when an invalid mapping is removed. This is a VisualizerApp Cloudflare KV record, not Lemon Squeezy's own order, licence or activation-instance record.
- Saved browser data: until cleared or deleted. V3 recovery drafts expire after seven days; v3 resource caches after six hours. Expired records are removed on subsequent app/cache cleanup, not while the device is unused. Older v2 resource caches may remain until cleared or cleaned by v3.
- Support, billing and legal records: only as long as needed for the enquiry, entitlement, accounting, disputes and applicable legal obligations.
- Analytics choice: an Allow choice is valid for up to 180 days; an expired record may remain inactive until replaced or cleared. A No thanks choice is kept until changed or browser storage is cleared. Analytics cookies are limited to the remaining consent period and do not renew on each visit.
- Google Analytics: user-level and event-level retention are set to two months, with reset on new activity off. Most standard aggregated reports can remain available longer; this setting does not erase them after two months.
- Infrastructure logs: according to the configured hosting/security settings and operational need. Cloudflare Web Analytics/RUM is disabled.
Contact us if a school review needs the current provider retention settings before rollout.
7. Providers and international processing
| Provider | When used | Information involved |
|---|---|---|
| Cloudflare | Site delivery, security, resource proxy, activation and preview | IP/request metadata; hashed preview/device or activation data where relevant. Cloudflare RUM is disabled. |
| jsDelivr | Some third-party app libraries, icons, PDF/PPTX and QR tools | Normal CDN request metadata |
| PeerJS and Google STUN | Phone Camera connection setup | IP addresses and connection metadata |
| Open Library / Internet Archive | Book, audiobook, cover and media resources | Queries, item requests and normal request metadata |
| Wikidata / DuckDuckGo | Facts or external web search | The query you choose and normal request metadata |
| Google Analytics | Optional site and operator-usage analytics, only after a fresh Allow analytics choice | Page/device/session and feature-event information described above |
| Lemon Squeezy | Trial, checkout, licensing and subscriptions | Contact, order, entitlement and payment-transaction information |
| Microsoft 365 | Support and privacy email | Email content, attachments and mail metadata |
| Google Forms | Optional feedback form | Information you submit |
| Website chosen in an image or resource link | Loading an external image, remote thumbnail or saved external overlay | Image/resource URL and ordinary request metadata |
| Browser/OS speech provider | Optional dictation or read-aloud | Audio or text, depending on platform implementation |
Some providers operate internationally and may process information outside the UK. The location and transfer terms depend on the provider and service configuration. Provider privacy notices explain their practices; contact us for current transfer information needed for a school assessment.
8. Schools, pupils and classroom use
VisualizerApp is a teaching tool for teachers, tutors and other teaching staff. It is not intended for students or children to use. The teacher in charge should operate the app and any paired phone. Pupil work, names or images may appear in teacher-controlled classroom material; this personal information still needs protection. Core tools need no account. Google Analytics measures only consenting operators' usage, not pupils or classroom material. Phone pairing requires approval by the receiving computer. Schools should decide which devices and optional features are appropriate under their safeguarding, acceptable-use and data-protection policies.
- Avoid pupil personal information in resource searches, feedback, checkout and support messages unless it is authorised and necessary.
- Do not ask pupils to operate the app, pair devices or use its checkout, feedback or support services.
- Use non-identifying labels where possible and protect backup/export files.
- Assess Phone Camera and browser speech services against the organisation's network and platform policies before use.
- Keep phone pairing and shared content under teacher control. Show only the work needed for the activity, keep any captures or recordings secure, and use Stop sharing camera when finished.
- Protect shared browser profiles: closing a tab does not erase saved work or automatic recovery drafts.
9. Your rights
Depending on the circumstances, you may have rights to access, correct, erase, restrict or object to processing, receive portable data, and withdraw consent. These rights apply to personal information that we or a provider actually holds; VisualizerApp cannot retrieve camera content or local browser data that was never sent to us.
Send a request to support@inline-computers.co.uk. We may need enough information to verify the request and locate the relevant record.
10. Questions and complaints
Contact support@inline-computers.co.uk with a privacy question or complaint. We aim to acknowledge formal complaints promptly; the process is described on the Complaints page.
You can also complain to the Information Commissioner's Office: ico.org.uk/make-a-complaint/ or 0303 123 1113.
This notice may be updated when the app or provider setup changes. The updated date at the top will be revised.