VocalScrollOpen VocalScroll

On-Device Data Privacy Policy

Last updated October 11, 2026 • Maintained by Onitsoga Labs

VocalScroll processes your scripts, your voice, and your recordings on your own device. They are not uploaded to a server, and VocalScroll has no accounts.

Most online tools send your creative work to remote servers to process it. VocalScroll runs speech recognition, script storage, and recording inside your browser instead. The app does make a few network requests, and this page lists each one in section 5.


1. How your data is handled

FeatureWhat is processedWhere it staysHow long
Script editorThe script you write or paste.In your browser's localStorage on your device.Until you clear browser data or use Delete and reset in Settings.
Your settingsThe choices you make, such as Voice or Paced, text size, speed, language, camera on or off, chosen microphone and camera, and panel layout.In your browser's localStorage on your device. Never sent anywhere.Until you clear browser data, use Restore defaults, or use Delete and reset in Settings.
Voice-activated scrollLive microphone audio, for speech tracking.Processed on your device by a WebAssembly speech engine.Audio is processed in memory and discarded. It is not saved or sent to a server.
Video and audio captureCamera video and microphone audio.Saved in your browser's private storage (OPFS, with an IndexedDB index) on your device.Until you delete a take, or use Delete all takes on the Takes page.
Page viewsA count of visits to VocalScroll's public pages (not the studio).Sent to Pirsch Analytics.Pirsch says it keeps no IP address and no persistent visitor ID (see section 5). Pirsch's documentation says it stores the browser's User-Agent text separately for up to three months. The counts stay in the site's Pirsch account under Pirsch's default settings, which we have not changed.
Contact formWhat you type on the Contact page (name, email address, topic, message) and, if you leave the box ticked, your app version and browser.Emailed through Cloudflare to the people who run VocalScroll at Onitsoga Labs. The site keeps no copy.Only if you press Send. We keep a message for as long as we need it to help you, and we delete it when you ask (topic Privacy request).

2. Scripts

Your scripts are saved in localStorage so you can pick up where you left off after closing the tab.

  • No remote database. VocalScroll has no accounts and no server that stores scripts.
  • Private windows. Open VocalScroll in a private browsing window if you want your scripts cleared when the window closes.

3. Recordings

When you enable the camera, your browser asks for permission to use the camera and microphone.

  • Made on your device. Video and microphone input are turned into a WebM or MP4 file (whichever your browser supports) in browser memory.
  • Stored on your device. Takes are saved in your browser's storage and are not uploaded.
  • Voice cleanup and captions. Noise reduction, mastering and caption files (SRT and VTT), MP4 conversion and burned-in captions are made on your device from the take stored there.
  • Exporting. Export on a take saves the file to your Downloads folder. Delete all takes on the Takes page removes every take.

4. Speech recognition

VocalScroll recognizes speech with a Vosk model that runs in WebAssembly on your device. The speech engine ships with the app, so no third-party script is loaded for it. It does not use the browser's cloud speech APIs.

  • What stays on your device. Your voice is matched against your script in memory and then discarded. Your voice and script text are not sent anywhere.
  • What is downloaded. The first time you use a language, VocalScroll downloads that language's speech model (most are 30 to 90 MB; Swedish is about 300 MB) and stores it in your browser, so later sessions load it from your device.

5. Network requests VocalScroll makes

RequestWhenWhat it receives
Speech model from models.vocalscroll.com (VocalScroll's own storage on Cloudflare)The first time you use a language.Standard request data. No script text or audio is sent.
Optional HD voice model from models.vocalscroll.com (one file, about 10 MB)The first time you export a take with HD voice, only if your device is fast enough for it. On a metered connection (mobile data or Data Saver) it waits until you allow it.Standard request data. No script text, audio or take is sent. The model then runs on your device and is kept there.
Page-view count from Pirsch Analytics (api.pirsch.io)About six seconds after a public page loads, and only while the tab is visible. Not in the studio, not on this policy page or the terms, not in automated browsers, and not if your browser sends Do Not Track.A page view: the page address, the referring page, and the browser details and IP address that come with any web request. Per Pirsch's own policy it uses these to make a visitor ID that changes daily, sets no cookie and stores no IP address. VocalScroll sends no scripts, recordings, or speech to Pirsch.
Spam check from Cloudflare Turnstile (challenges.cloudflare.com)After you start using the form on the Contact page (/contact.html), including when the studio's Contact dialog shows that page inside the app. No other page loads it.Standard request data and what the check reads from your browser to tell people from bots. See Cloudflare's Turnstile privacy addendum.
Your message to vocalscroll.com/api/contactWhen you press Send on the Contact page.The fields you filled in and the spam check result. See section 6.

VocalScroll shows no ads today. If that changes, this policy will say so first, and any ad that sets cookies will wait for your consent.

VocalScroll and the speech models are served by Cloudflare, which sees the technical details of every request, such as your IP address, as any web host does. Cloudflare's own settings decide how long it keeps those logs.

Fonts and icons are served from VocalScroll itself, not from a third-party host. Links to onitsoga.com open on that site, which has its own policy.


6. The contact form

The Contact page (/contact.html) is the one place where you send VocalScroll something. The studio's Contact dialog is that same page, framed inside the app. It sends nothing from your scripts, recordings, or microphone.

  • What is sent. The name, email address, topic and message you type. If the box stays ticked, also the app version and your browser's name string. The form lists both under a section called "Technical details sent with your message", closed by default; open it to read them or untick the box to leave them out.
  • Where it goes. The site's Worker on Cloudflare checks the spam test, then emails the message to the people who run VocalScroll at Onitsoga Labs with Cloudflare Email Service. We use your name and address only to reply.
  • What the site keeps. No database and no copy. The Worker logs a reference number and a result code, never your text or address. To slow down abuse, Cloudflare's rate limiter counts recent sends per IP address (for IPv6, per network prefix) and per email address. The email address is turned into a one-way hash first. The site writes neither anywhere.
  • Spam check. Cloudflare Turnstile loads from challenges.cloudflare.com after you start using the form, on this page only. When you press Send, the Worker also sends the check result and your IP address to Cloudflare to confirm it. Cloudflare says Turnstile reads signals such as the IP address, TLS fingerprint and user agent. Its Turnstile addendum and cookie policy say what else it stores in your browser.
  • How long, and why. We use what you send to answer you and to deal with the problem you describe. We set no fixed retention period: a message stays in our mailbox until we delete it, and we delete yours whenever you ask.

7. Wipe your local data

To remove every script, setting, and take from this browser, open Settings, go to the Danger zone, and choose Delete and reset. This deletes the data and reloads VocalScroll with its defaults.


8. What your browser stores

VocalScroll sets no cookies. The pages and the studio keep these things on your device:

WhereWhatCleared by
localStorage (keys starting vocalscroll_)Settings, your draft, saved scripts, panel layout, two small records of how fast voice cleanup and HD voice run on this device (measured once and again after 30 days, used to pick the noise-removal version), whether you allowed the HD voice download on a metered connection, where you put the camera window and how big it is, and first-run marks (welcome seen, install card seen, v2 data copied).Delete and reset, or clearing site data.
sessionStorage (vocalscroll_import_text, vocalscroll_support_prefill)The text you typed into the demo on the home page, held for the moment you open the studio, then read once. If the speech model fails to load and you press Report this problem, a drafted message about the failure (what failed, timings, your browser and device numbers such as memory and storage; no script text) is held for the moment the contact form opens, then read once and removed. You still choose whether to send it.Closing the tab, or Delete and reset.
IndexedDB (VocalScrollTakesDB, VocalScrollRecordingsDB, VocalScrollModelCacheDB)The take index. Older takes and speech models saved by VocalScroll v2 sit in the other two, and so does the HD voice model on a browser that cannot write to the file system.Delete and reset, or deleting takes and models in Settings.
Origin private file systemYour takes, downloaded speech models, the HD voice model (vocalscroll/models/hd), and a temporary copy of an MP4 while you save it (cleared automatically).Delete and reset, or deleting takes and models.
Cache Storage and a service workerThe app's own files, so it opens offline, and the HD voice runtime (about 14 MB) once you have used it. Never scripts or recordings.Delete and reset removes old copies. Clearing site data removes the rest.

If you used VocalScroll before version 3, your v2 settings, scripts, takes and models are read from the same place on your device and copied forward there. Nothing is sent anywhere to do that. The Contact page is the one place a third party may store something in your browser, and only when you start using the form (see section 6).

9. Microphone and camera

Your browser, or Android on the Android app, asks before VocalScroll can use the microphone or the camera. You can withdraw the permission at any time in the browser's site settings or Android's app settings. VocalScroll stops using the devices when you stop, leave the studio or close the tab.

10. The Android app

The Android app shows vocalscroll.com in a web view and opens straight to the studio. It stores data the same way the browser does, in the app's own storage on the phone, and sends the same network requests described above. It asks Android for permission to use the internet, the microphone, the camera and audio settings. It has no accounts and no ad or analytics SDK of its own. Installing it from Google Play is between you and Google, whose own policy applies to that.

11. Children

VocalScroll is not aimed at children, has no accounts, and does not ask for anyone's age. We do not knowingly collect personal data from children. The only personal data we can hold is a message sent through the contact form. If a child has sent one and you want it deleted, use the contact page with the topic Privacy request.

12. Your rights and who to ask

VocalScroll holds no profile of you, so your scripts, recordings and settings are yours to read, export and delete on your own device (section 7). For the one thing we can hold, a message you sent through the contact form, you can ask us what we have, ask us to correct it, or ask us to delete it. Use the contact page with the topic Privacy request. We do not sell or share personal information, and we do not use it for advertising.

Questions or feedback? Use the contact page.

Open VocalScroll