Published
Website, iOS account record, database access boundaries, and policy copy reviewed.
Do not take our word for it. Privacy claims should be inspectable. This page publishes what we checked, what we found, what is outside Grav's control, and how you can test the public website and your own account.
This is a dated self-audit, not an absolute guarantee. Software can have bugs and configurations can drift. We will publish corrections and future reviews here.
Website disclosure corrected October 4, 2026: a live browser check found Cloudflare's performance beacon. Earlier wording that said the website had no browser analytics script was inaccurate. This correction does not represent a new full app or database audit.
Published
Website, iOS account record, database access boundaries, and policy copy reviewed.
Not commissioned yet
This page does not pretend our own review is independent assurance.
Built for iOS
Release and physical-device verification are still required before App Store availability.
Current finding
The honest claim is not that Grav collects nothing. A private social app needs information to work. The test is whether each category has a clear purpose and a real control.
Email, profile details, account dates, and the sign-in methods linked to your account.
Why: Create, secure, and recover your account.
Posts, media, reactions, Feed memberships, invitations, blocks, and related timestamps.
Why: Deliver the private social features you choose to use.
Message content, conversation membership, requests, reactions, and delivery records.
Why: Deliver, synchronize, restore, secure, support, and moderate conversations when required.
A push token when notifications are enabled, plus limited crash, security, and operational records.
Why: Send requested notifications, prevent abuse, and keep Grav reliable.
Entitlement and transaction references, support tickets, reports, archive jobs, and deletion requests.
Why: Honor purchases, answer requests, meet accounting duties, and document privacy choices.
Cloudflare processes normal requests and browser performance measurements, including page/referrer URLs. Google Fonts receives requests for Grav's typefaces.
Why: Deliver, secure, and operate the website using hosting metrics and Cloudflare's cookie-free browser performance beacon.
Negative findings
These are specific, testable boundaries. They are stronger than a vague promise that we care about privacy.
Traffic without Google Analytics
Grav uses Cloudflare hosting metrics for request volume, errors, and performance. The live website also loads Cloudflare's browser performance beacon. There is no Google Analytics script and no Grav analytics cookie.
How much traffic the site is serving.
Errors and failed requests that need attention.
Hosting metrics and browser page-load measurements used to keep pages healthy.
Cloudflare's beacon reports page-load measurements and page/referrer URLs. Cloudflare documents it as not using cookies or browser storage; see its browser performance beacon documentation. This does not make a web request invisible: Cloudflare also processes normal request data to deliver and protect the site, and Google Fonts receives requests for the site's typefaces. This review does not verify every provider's retention settings.
Outside Grav
App stores, payment processors, sign-in providers, infrastructure providers, and your device may collect information under their own policies. We cannot honestly claim otherwise.
Stores the account information and media needed to operate Grav.
Access is restricted by authenticated account and membership rules.
Hosts, delivers, and protects the public website.
Processes normal web requests and browser performance measurements. The live site loads Cloudflare's performance beacon, documented by Cloudflare as cookie-free.
App distribution, optional Apple sign-in, push delivery, and in-app purchases.
Apple may collect information under its own policies when you use those services.
Optional Google sign-in, Android push delivery, and public-site font delivery.
Google sign-in is linked only when you choose it. These services remain governed by Google's policies.
Web-based payments for applicable Grav purchases and business tools.
Stripe handles payment details under its own policies. Grav does not receive full card credentials.
Method
We use the same checklist for each published review so changes can be compared instead of hand-waved.
Search for analytics, advertising, identity, payment, diagnostics, notification, storage, and moderation integrations.
Check every public page for tracker requests, cookies, local storage, and identifiers before and after navigation.
Inspect schemas, access policies, function grants, private media rules, and the exact fields returned to each account.
Create rollback-only test fixtures and confirm one authenticated account cannot read another account's record.
Compare the product, privacy policy, App Store disclosures, provider behavior, and the live My Grav Record response.
Reproduce it
You do not need access to our repository. A normal desktop browser can verify the public-site claims below.
Choose the Network tab, enable Preserve log, and reload this page.
Filter for googletagmanager, google-analytics, doubleclick, facebook, segment, and mixpanel. The result should be empty.
In the Application or Storage tab, check Cookies and Local Storage. Grav should not leave a Google Analytics cookie or analytics-consent key behind.
Look for static.cloudflareinsights.com/beacon.min.js and /cdn-cgi/rum requests. These are Cloudflare performance monitoring, not Google Analytics. Browser settings, region, and blocking tools may affect whether they appear.
When the next iOS release is available, open Settings, Privacy & Data, then My Grav Record. Compare its categories with your archive request.
performance.getEntriesByType("resource").map((entry) => entry.name).filter((url) => /googletagmanager|google-analytics|doubleclick|facebook|segment|mixpanel/i.test(url))Paste this into the Console after reloading. An empty array means none of the listed tracker domains loaded. It does not prove every possible privacy claim.
Account evidence
The public audit explains the system. Your private record answers the personal question: what does Grav currently hold for my account?
It shows live counts, why each category is needed, retention guidance, export and deletion status, connected services such as Google sign-in when applicable, and the sensitive fields the screen intentionally never displays.
It is an overview, not the downloadable archive itself. The archive remains a separate request because it can take time to assemble and must be delivered securely.
Tell us exactly what you observed. We will investigate it, correct the product or the claim, and date the change here. That feedback loop is part of the proof.