Privacy Policy

Last updated: June 25, 2026

Overview

Web2PPT is a Chrome browser extension that converts web pages into editable PowerPoint (.pptx) files.

Short version:


1. Data We Do NOT Collect

Web2PPT does not collect, store, transmit, or share any of the following:

There is no user account system in the extension.


2. How Web2PPT Works — Local Export

When you click Export to PowerPoint:

  1. DOM extraction: A content script reads the visible structure of the active tab (positions, styles, text) using standard browser APIs.
  2. Image fetching: Images may be fetched by the background service worker directly from their hosts to embed them in the .pptx. No Web2PPT server sits in the middle.
  3. PPTX generation: The .pptx is built in memory (via PptxGenJS) inside the extension context.
  4. Download: The file is saved like any other download to your device.

3. Permissions Explained

PermissionWhy it is needed
activeTabAccess the tab when you activate the extension.
scriptingInject the content script into the active page.
storageStore aggregated usage counters, local lifecycle buckets, and your analytics opt-in choice — all locally. No persistent analytics identifier is stored.
<all_urls>Fetch cross-origin images for embedding; HTTPS POST to Umami (anonymous events) and error monitoring (Sentry EU) endpoints.

4. Third-Party Libraries


5. Usage Statistics — Local Storage

The following is recorded locally in chrome.storage.local:

This data never leaves your device. The local counters in this section are not transmitted externally. See §6 for the active anonymous analytics (Umami).


6. Analytics and Telemetry — Anonymous Aggregates (Umami)

To improve Web2PPT, we collect strictly anonymous, aggregated usage statistics using a privacy-first analytics tool (Umami — cookieless, no personal data). This collection is opt-in: it is disabled by default and only active if you explicitly accept the first-run prompt. If you decline, or never answer, nothing is ever sent. Analytics are active in the published Chrome Web Store version only (disabled in development builds).

We only track events such as "extension opened", "export successful", and "export failed", together with a coarse tool category (e.g. jira/notion/other).

What we DO NOT collect: We never read, store, or transmit the content of your web pages, your full URLs, the domain or hostname of the sites you visit, your passwords, or the data inside your generated PowerPoint files. All processing and conversion happen 100% locally in your browser.

No persistent identifier: Unlike most analytics, we do not create or store any user/visitor ID. Returning-usage (retention) is computed locally on your device and only sent as a coarse bucket — there is nothing that can link two events back to the same user.

EventTriggerData sent
extension_openedPopup openedlifecycle buckets only
export_startedExport button clickedtool category (jira/notion/other)
export_successExport completedtool category
export_failedExport errortool category, error category
export_abandonedPopup closed during exporttool category
feedback / feedback_clickedThumbs or feedback clickrating (up/down) — an explicit click is its own consent
use_case_selectedValue Exchange survey (10th export)use_case category only (pm, research, finance, other)

Lifecycle buckets attached to events are coarse, non-identifying ranges computed locally: number of distinct active days, lifetime export bucket (e.g. 2-5), and days-since-install bucket (e.g. 8-30).

Tool category is inferred from the active site's hostname on your device only — the hostname itself is bucketed into jira / notion / other and is never transmitted.

Opt-in: Collection happens only if you accept on the first-run prompt; declining (or not answering) keeps it off. You can change this at any time via the in-product control. credentials: 'omit' is enforced on all analytics requests.

What is never transmitted: Full URLs, URL paths, query parameters, the site domain/hostname, page titles, HTML content, PPTX file content, cookies, authentication tokens, or any persistent identifier.


7. Error Monitoring — Sentry

To diagnose crashes and improve reliability, Web2PPT uses Sentry for error monitoring. The SDK is bundled locally in the extension — no remote script loading.

An error report is sent only when the extension crashes. It contains:

DataCollectedNotes
Error type & messageYese.g. TypeError: Cannot read property 'x'
Stack traceYesFunction names & line numbers from extension code only
Extension versionYese.g. web2ppt@3.1.0
Browser & OS typeYese.g. Chrome 124, macOS — no device identifier
IP addressNosendDefaultPii: false — explicitly disabled
Page URLNoStripped before sending
User identityNoStripped before sending
Page content or PPTX dataNoNever in scope

Legal basis (GDPR): Legitimate interest — diagnosing software defects to maintain a functional service.

Data residency: Events are sent to Sentry's European datacenter (ingest.de.sentry.io, Frankfurt, Germany). No data leaves the EU.

Data retention: 90 days. Active in the published Chrome Web Store version only — disabled in development builds.


8. Enterprise & Corporate Use


9. Children's Privacy

Web2PPT is a professional productivity tool not directed at children under 13.


10. Changes to This Policy

Updates will be published at https://www.web2ppt.com/pages/privacy with a new "Last updated" date.


11. Contact

Web2PPT — hello@web2ppt.com