From 26aa5a0d541d6e5e1e725159a57d56ba335bcf7c Mon Sep 17 00:00:00 2001
From: Xavier Karma
Date: Fri, 6 Nov 2026 18:22:17 +0530
Subject: [PATCH] fix(web): align privacy and capability wording with
PRODUCT.md
PRODUCT.md promises no usage telemetry in the installed app, a guaranteed
whisper.cpp default, best-effort extras and audio leaving the machine only
through a user-configured remote API. Copy that went further is corrected:
"Zero Data Collection", "Truly Private" and the maintainer-cannot-see claim
are gone, the hero and ribbon say "no app telemetry" because the site itself
loads analytics, and the engine lists name whisper.cpp as the default with
the rest as extras. The privacy, FAQ, offline and home pages now say the app
uses the network for model downloads and the update check, without audio or
transcripts.
---
web/src/app/faq/page.tsx | 4 ++--
web/src/app/offline/page.tsx | 8 ++++----
web/src/app/page.tsx | 13 +++++++------
web/src/app/privacy/page.tsx | 11 ++++++++---
4 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/web/src/app/faq/page.tsx b/web/src/app/faq/page.tsx
index fb0e167..84a1614 100644
--- a/web/src/app/faq/page.tsx
+++ b/web/src/app/faq/page.tsx
@@ -41,11 +41,11 @@ const faqCategories = [
questions: [
{
q: "Does Voculinux work offline?",
- a: "Local engines (whisper.cpp, Whisper, and VOSK) run on your Linux machine. Remote API is optional and only talks to a server you configure.",
+ a: "Local engines run on your Linux machine: whisper.cpp is the default, and Faster Whisper, Whisper, VOSK and Parakeet are best-effort extras. Remote API is optional and only talks to a server you configure; audio leaves the machine for that server.",
},
{
q: "Does Voculinux send any data to external servers?",
- a: "Local engines do not send voice data externally. Remote API mode sends audio only to the transcription server URL you configure.",
+ a: "Local engines do not send voice data externally. Remote API mode sends audio only to the transcription server URL you configure. The app also uses the network for model downloads and for its update check against GitHub Releases; neither carries your audio or transcripts.",
},
{
q: "Is my voice data stored anywhere?",
diff --git a/web/src/app/offline/page.tsx b/web/src/app/offline/page.tsx
index 5fb911a..56131f8 100644
--- a/web/src/app/offline/page.tsx
+++ b/web/src/app/offline/page.tsx
@@ -23,9 +23,9 @@ const benefits = [
iconBg: "bg-primary/10",
},
{
- title: "Zero Data Collection",
+ title: "No usage telemetry",
description:
- "No telemetry, no analytics, no usage tracking. Local engines have nowhere to send audio unless you enable Remote API.",
+ "The installed app sends no usage telemetry or analytics. Local engines do not send audio anywhere unless you enable Remote API. Model downloads and update checks still use the network.",
icon: Database,
iconColor: "text-primary",
iconBg: "bg-primary/10",
@@ -61,7 +61,7 @@ const sensitiveUseCases = [
{
title: "Local engines keep audio on the machine",
description:
- "whisper.cpp, Whisper, and VOSK process speech on your hardware. That is a default for those engines, not a legal or compliance promise.",
+ "Local engines process speech on your hardware: whisper.cpp is the default, and Faster Whisper, Whisper, VOSK and Parakeet are best-effort extras. That is a default for those engines, not a legal or compliance promise.",
},
{
title: "Works after the model is downloaded",
@@ -281,7 +281,7 @@ export default function OfflinePage() {
- Truly Private Voice Dictation
+ Voice Dictation That Stays on Your Machine by Default
Install Voculinux and use a local engine if you want speech recognition on the machine.
Remote API stays optional.
diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx
index 0fa45b0..b3ee3c6 100644
--- a/web/src/app/page.tsx
+++ b/web/src/app/page.tsx
@@ -98,7 +98,7 @@ const homeJsonLd = [
name: "Does Voculinux collect usage telemetry?",
acceptedAnswer: {
"@type": "Answer",
- text: "No. The installed app does not send usage telemetry, analytics events, or background usage pings. Even the project maintainer cannot see how many people install or actively use Voculinux.",
+ text: "No. The installed app does not send usage telemetry or analytics events. Its update checker only asks GitHub Releases whether a newer version exists.",
},
},
{
@@ -240,7 +240,7 @@ const ribbonItems = [
"no account",
"system tray",
"whisper.cpp",
- "no telemetry",
+ "no app telemetry",
];
export default function HomePage() {
@@ -320,7 +320,7 @@ export default function HomePage() {
X11 and Wayland
- No telemetry
+ No app telemetry
AGPL-3.0
@@ -716,8 +716,9 @@ export default function HomePage() {
What uses a network
- Model and app downloads, plus any Remote API host you add.
- Nothing is sent to a Voca speech cloud.
+ Model downloads, the update check against GitHub Releases, and
+ any Remote API host you add. Nothing is sent to a Voca speech
+ cloud.
@@ -895,7 +896,7 @@ export default function HomePage() {
{
question: "Does Voculinux collect usage telemetry?",
answer:
- "No. The installed app does not send usage telemetry, analytics events, or background usage pings.",
+ "No. The installed app does not send usage telemetry or analytics events. Its update checker only asks GitHub Releases whether a newer version exists.",
},
{
question: "Which Linux distributions are supported?",
diff --git a/web/src/app/privacy/page.tsx b/web/src/app/privacy/page.tsx
index 660af64..6083a49 100644
--- a/web/src/app/privacy/page.tsx
+++ b/web/src/app/privacy/page.tsx
@@ -139,6 +139,11 @@ export default function PrivacyPage() {
Local engines keep audio on your device. Remote API sends audio only
to the server you configure.
+
+ The installed app does use the network for model downloads and for
+ its update check against GitHub Releases. Neither request carries
+ your audio or transcripts. Settings has a proxy page for both.
+
Those limits apply to the installed app. They do not describe this
website.
@@ -179,7 +184,7 @@ export default function PrivacyPage() {
2. Local Processing - Audio is
- processed by whisper.cpp, Whisper, or VOSK on your CPU/GPU
+ processed by your local engine (whisper.cpp by default) on your CPU/GPU
3. Text Output - Transcribed text is
@@ -242,7 +247,7 @@ export default function PrivacyPage() {
- | Data leaves device |
+ Audio leaves device |
Only with Remote API
|
@@ -251,7 +256,7 @@ export default function PrivacyPage() {
| Internet required |
- Only for Remote API or a model download
+ Only for Remote API, a model download or the update check
|
Yes |