What we collect.
And what we don’t.
Last updated: May 14, 2026
The short version
There are two places where pgen collects data, and they work differently:
On pgendb.com, we use Firebase Analytics to count page views, downloads, and clicks. Nothing fires until you accept the cookie banner; if you decline, no analytics requests are sent.
Inside the desktop app, pgen sends anonymous usage data - how often the app is opened, which features get used, whether connections succeed - so we can fix bugs and prioritize the features people actually use. It’s on by default and you can turn it off any time in Settings → General → Help improve pgen.
We never see your queries, your data, your connection strings, or anything inside your database.
What we collect
Once you accept the cookie banner, the website fires a small, fixed set of events to Firebase Analytics: page views, the downloads you start, the social and nav links you click, how far down a page you scroll, non-download CTAs, and pricing tier interest.
›Show the full list of events we send and what each one contains.
| Event | What it contains |
|---|---|
| page_view | The path you visited (no query parameters that contain personal data). |
| download_initiated | Which platform you downloaded (macos / windows) and where on the site you clicked from. |
| social_link_clicked | Which social link (twitter / discord / youtube / github) and where you clicked from. |
| nav_link_clicked | Which nav link you clicked. |
| scroll_depth | How far down the page you scrolled (25 / 50 / 75 / 100 %). |
| cta_clicked | Which non-download call-to-action was clicked. |
| pricing_tier_clicked | Which pricing tier was clicked on the pricing page. |
What we don't collect
- No cookies or analytics requests are sent before you accept the banner.
- No third-party advertising pixels or cross-site trackers.
- No personal data - we don’t have signup forms or accounts on the site.
- Your IP address is processed by Google to derive a coarse country/region and is then discarded; we don’t store IP addresses ourselves.
How consent works
The first time you visit pgendb.com you’ll see a banner at the bottom of the page with Accept and Declinebuttons. Until you choose, analytics is fully off - we use Google Consent Mode v2 with all storage denied by default. If you decline, nothing fires and we won’t ask again. If you accept and later change your mind, click Cookie preferences in the footer to revoke.
Legal basis (GDPR)
We rely on consent (GDPR Article 6(1)(a)) as the legal basis for website analytics. Consent is given by clicking Accept on the banner and is withdrawn by clicking Decline on the banner or by reopening it via the footer link.
What we collect
When analytics is enabled, pgen sends a small set of events covering app launches, onboarding, connection attempts and outcomes, and query executions. Every event is bucketed or classified - never raw payloads.
›Show the full list of events we send and what each one contains.
| Event | What it contains |
|---|---|
| app_opened | App version, platform, whether this is a first launch. |
| onboarding_completed | Time spent in onboarding (ms), whether the tour was skipped. |
| connection_attempted | Host type (localhost / docker / remote), whether SSL is enabled. |
| connection_connected | Host type, Postgres major version (e.g. 16), duration bucket. |
| connection_failed | Host type, error class (auth / network / tls / other). |
| connection_disconnected | Session duration bucket. |
| query_executed | Tab kind, rows-returned bucket (e.g. 1–10, 101–1k), duration bucket, whether the query errored. |
We also attach a few non-identifying user properties: pgen version, platform, theme preference, and an anonymous installation identifier managed by Firebase that lets us count distinct installs without knowing who you are.
The current release ships analytics on macOS only. The Windows build does not currently send any analytics; we’ll update this page before that changes.
What we don't collect
- The text of any SQL query you run.
- The contents of any row, column, or table in your database.
- Your connection hostname, database name, username, or password.
- Error messages from Postgres (only a classification: auth / network / tls / other).
- Anything the AI assistant sends to your AI provider, or anything it sends back.
- Names of your schemas, tables, columns, functions, or any other database object.
Crashes (macOS only)
On macOS, pgen sends unhandled crashes to Firebase Crashlytics. Crash reports include a stack trace and the device’s OS version. They do not include your query history, your database contents, or any in-memory data outside the stack frames at the moment of the crash.
How to opt out
Inside the app: Settings → General → Help improve pgen. Flip it off and nothing else will be sent. The change takes effect immediately; no restart needed.
Past data that was already collected stays in our analytics until it ages out (Firebase’s default retention is 14 months). If you want it deleted sooner, email us at the address below with the approximate date you first installed pgen and we’ll request deletion from Google.
Legal basis (GDPR)
We rely on legitimate interest (GDPR Article 6(1)(f)) as the legal basis for desktop-app analytics. The data is anonymous and non-personalized, the opt-out is prominent and immediate, and the purpose - improving a developer tool we ship for free - is narrow. This is the same approach taken by other developer-focused desktop apps such as JetBrains IDEs, VS Code, and GitHub Desktop.
Your rights
If you’re in the EU/UK (GDPR), California (CCPA), or another jurisdiction with similar laws, you have the right to know what we collect, to request deletion, and to opt out of collection. The website cookie banner and the in-app toggle cover opt-out; email us for the rest.
We do not use third-party advertising cookies and we do not sell data.
Who runs this
pgen is built by TRAGEN. Questions, deletion requests, or anything else: support@pgendb.com.
Changes to this policy
We’ll bump the “Last updated” date at the top of this page when anything material changes. The full history is in the site’s git repository if you want to compare versions.