CertAnvil
Why CertAnvil Certs Pricing
Legal · Privacy Policy

Your data, plainly explained.

Email, quiz history, billing state, real-user performance metrics and visit counts without cookies. Nothing else. No tracking pixels, no advertising data sharing, no behavioural profiling. This page explains what we collect, why, and how to get rid of it whenever you want.

Last updated 5 November 2026 · v1.3

Contents

  1. 1. Who we are
  2. 2. What we collect
  3. 3. Why we collect it
  4. 4. Who we share with
  5. 5. Where it's stored
  6. 6. How long we keep it
  7. 7. Cookies and similar
  8. 8. Your rights
  9. 9. International transfers
  10. 10. Security
  11. 11. Children
  12. 12. Changes to this policy
  13. 13. Contact us

§ 01Who we are

CertAnvil ("we", "us", "our") is an AI-tutored CompTIA certification prep app. We're a single-founder business at the time of writing, not a corporation and not a department within a larger company. The product runs at certanvil.com and at per-cert subdomains like networkplus.certanvil.com.

This policy describes how the website, the cert apps, the landing pages, and any future Apple App Store / Google Play distributions of CertAnvil handle your personal data. If you're reading this after we incorporate as a limited company or join a larger organisation, the policy will be updated (see § 12).

CertAnvil is responsible for your data. CertAnvil is the trading name of Oluwasimisola Oremosu, a sole trader in the United Kingdom, . Email support@certanvil.com.

§ 02What we collect

TL;DR Your email, what you answered on quizzes, your subscription state if you're paying, anonymised performance metrics so we know if the app's fast enough on your phone, and counts of page visits, without cookies. We don't collect your real name, phone number, address, or location.

Five categories of data, each with a specific purpose. Nothing collected is sold or used for advertising.

2.1 · Account data (when you sign up)

  • Email address: required. We sign you in with a one-time code. You type your email, we send you a 6-digit code, and you enter it in CertAnvil. There's no password, so there's nothing to reset and nothing to leak. Your email is the only identity we hold.
  • Display name: optional, set in account settings. Shown only to you, used to personalise greetings.
  • Active cert preference: which CompTIA exam you're studying (Network+ N10-009, Security+ SY0-701, etc.). Used to load the right content pack.
  • Exam date: optional. Used to calculate "days until exam" countdowns and pace your daily plan.
  • Account timestamps: when you signed up and when your profile was last modified.
  • Role flag: almost always user. The founder is admin for product operations.

2.2 · Quiz and study data (built up as you use the app)

  • Quiz history: per-question record of what you answered, whether you got it right, how long it took. This drives Pass Plan accuracy and the spaced-repetition queue.
  • Wrong-answer bank: questions you got wrong, so you can drill them again.
  • Streak data: consecutive-day study streak, longest streak.
  • Daily goal: how many questions per day you've set as a target.
  • Drill mastery scores: per-category accuracy on the drills you use, including drills the app has since retired.
  • Milestones: which achievements you've unlocked (47 total, all visible in the app).
  • Diagnostic results and Pass Plan: the 20-question diagnostic and the resulting study plan, if you take it.
  • Topology saves and ACL state: work-in-progress saves from lab features, including ones the app has since retired.

2.3 · Billing data (only if you subscribe to Pro)

  • Stripe customer ID and subscription ID: opaque identifiers from Stripe. We don't see your card number, card expiry, or full billing address. Those live with Stripe.
  • Tier: free or pro.
  • Subscription status: active, past_due, canceled, etc.
  • Billing period: monthly or annual.
  • Current period end: when your current billing window expires (used to surface "renews on" dates).

Stripe is independently responsible for the card and address data they process on our behalf. See their privacy policy for details.

2.4 · Performance telemetry (real-user metrics)

  • Core Web Vitals: LCP, FCP, CLS, TTFB, and INP timings captured by your browser's standard PerformanceObserver API. Tells us if the app feels fast on your real device and network.
  • App version and cert pack: so we can correlate "this release made things faster" or "Network+ users see worse performance than Security+ users."
  • Viewport dimensions and connection type: width × height (e.g. 768×1024 for iPad portrait) and a network hint (e.g. 4g, slow-2g).
  • User-agent string (truncated): the standard browser-identification string, capped at 200 characters. Used to slice metrics by iOS vs Android vs desktop.
  • Page path: which page you were on (e.g. /?cert=secplus). We scrub any auth-related query parameters (tokens, codes) before storage.

One row per session, sent once when you switch tabs or close the page. Linked to your user ID so we can correlate with other data, but never used to track behaviour for marketing.

2.5 · Operational logging

  • AI usage counter: daily count of AI calls (Generate Quiz, Diagnostic, Topic Deep Dive, etc.). Used to enforce the Free tier's limit of 15 questions and 5 review cards a day and to detect abuse. Not the content of your prompts, just the count.
  • Error logs: if the app crashes or throws an unexpected error, we record the error message, the file and line where it happened, and a stack trace. Stored locally in your browser (via localStorage) for the most recent 100 errors. Optionally auto-reported to a GitHub issue tracker if you have configured your own GitHub token in Settings, and it defaults to off.

2.6 · What we DO NOT collect

  • Your real name (display names are pseudonyms you choose)
  • Phone numbers
  • Physical addresses (Stripe collects billing addresses for tax purposes; we don't see them in detail)
  • National ID / passport / social security numbers
  • Date of birth / age (beyond your self-attestation that you're 13 or over; see § 11)
  • Demographic data (race, ethnicity, gender, sexual orientation, political views, religion, union membership)
  • Health or biometric data
  • Precise location data (no IP-to-city, no GPS)
  • Browsing history outside CertAnvil
  • Contacts, calendars, photos, or files from your device
  • The content of AI prompts (only the count is logged for quota enforcement)

§ 03Why we collect it

TL;DR Either it's necessary to give you the product you signed up for (account, quiz history, billing), or it's anonymous-enough metrics to make the product better (performance telemetry).
DataWhyLawful basis (GDPR)
EmailSign in with a one-time code, send receipts, and respond to supportContract (necessary to provide the service)
Quiz historyCompute readiness, power Pass Plan, and drive spaced-repetitionContract
Billing stateEnforce Pro entitlements, handle renewals and cancellationsContract and legitimate interests (fraud and chargeback protection)
Performance telemetryDetect regressions, prioritise optimisation work, and validate that releases help real usersLegitimate interests (product improvement), pseudonymous
AI usage countEnforce the Free limit of 15 questions and 5 review cards a day, detect abuse of the proxyContract and legitimate interests
Error logsFix crashes you encounterLegitimate interests, stored locally by default

In short, by purpose:

  • Your account and Pro: contract.
  • Purchase confirmations, consent records and tax records: legal obligation.
  • Analytics and security: legitimate interests, which you can object to (see § 08).
  • Waitlist and launch emails: consent, which you can withdraw with the unsubscribe link.

§ 04Who we share with

TL;DR A small list of named sub-processors that store data or send emails on our behalf. We do not sell your data. We do not share data with advertisers. We do not have third-party tracking pixels.
Sub-processorWhat they handleWhere
SupabaseDatabase (account, quiz history, subscription state, telemetry) and authentication (one-time email codes)EU (Frankfurt) by default; see supabase.com/privacy
StripePayments, card processing, subscription billing, and invoicesUS and EU; see stripe.com/privacy
AnthropicThe AI model behind Generate Quiz, Diagnostic, Topic Deep Dive, etc. Receives the question-generation prompt; never receives your email, name, or other identifying data.US; see anthropic.com/legal/privacy
ResendSends sign-in codes and, later, emails like billing receipts. Receives your email address only.US; see resend.com
VercelHosting for the CertAnvil website and serverless API endpoints. Sees request metadata (IP, UA) but doesn't access database content. It also runs Vercel Web Analytics, which counts page visits and these steps: pricing page viewed, checkout started, checkout cancelled, payment confirmed, diagnostic finished. It uses no cookies, keeps no record that identifies you, records web addresses without sign-in codes, tokens or unsubscribe links, isn't used for visitors in the EU or EEA or when we can't tell your country, and you can turn it off on this device in §07.Global edge network; see vercel.com
AppleIf you buy Pro in the iPhone app, Apple takes the payment and tells us, through RevenueCat, that your subscription is active. We never receive your card or Apple ID details.Global; see apple.com/legal/privacy
RevenueCatRecords iPhone subscriptions and tells our server when one starts, renews or ends. Receives your CertAnvil account ID and the purchase details from Apple. We delete your record there when your account is deleted.US; see revenuecat.com/privacy
HostingerEmail inbox provider for support@certanvil.com. Receives any email you send us directly.EU; see hostinger.com

If you buy on the web, Onelink (Sold through Link, LLC, a Stripe company) takes your payment as merchant of record. It receives your payment details and billing address directly and is a separate controller of them under its own privacy policy, linked from your receipt. We receive your plan, the amount and the payment status, never your card number.

If we add a new sub-processor we'll update this list and increment the policy version (see § 12). We don't share data with anyone outside this list. No advertising networks, no analytics providers beyond what's listed, no data brokers.

§ 05Where it's stored

Your account and quiz data lives in Supabase's EU-Frankfurt region by default. Stripe billing data is stored across their US and EU regions. Vercel caches static assets and serverless function inputs globally on its edge network.

Your browser also caches state locally via localStorage (quiz history, streak, drill mastery, theme preference, optionally your Anthropic API key if you're a BYOK user). This local cache is purely client-side, and we don't read it remotely. You can clear it at any time via your browser's site-data tools.

§ 06How long we keep it

DataRetention
Account data (email, profile, quiz history)For as long as your account exists. Permanently deleted within 7 days when you self-delete from Settings.
Subscription, payment and consent recordsYour subscription, payment and consent records are kept for 6 years after your last payment for tax and legal claims, then deleted. Other account data is deleted with your account.
RevenueCat record (iPhone purchases)Deleted when your account is deleted.
Stripe recordsStripe retains payment records per their retention policy (typically 7 years for tax and chargeback purposes). We can't delete Stripe-side records ourselves.
Performance telemetryIndefinite while useful for product decisions. Periodic anonymisation purges may apply once the dataset grows; we'll update this when applicable.
Error logs (browser-local)Most recent 100 entries on your device. Auto-rolling; nothing leaves your browser unless you've configured GitHub auto-reporting.
Auto-backupsLast 7 days of your in-browser state. Stored locally only.

Self-delete: from the app's Settings or certanvil.com/account. Signing back in within 7 days cancels it. After 7 days we erase your account and everything linked to it (profile, quiz history and telemetry), delete your RevenueCat record, keep only the subscription, payment and consent records described above, remove your link from any error or bug reports you sent, and take your email off our waiting lists.

§ 07Cookies and similar technologies

TL;DR One first-party cookie for your sign-in session. No tracking cookies, no third-party advertising cookies.
  • Session cookie (essential): a single cookie scoped to .certanvil.com issued by our Supabase auth integration so you stay signed in across certanvil.com, networkplus.certanvil.com, and any future cert subdomains. Cleared when you sign out.
  • Theme preference: stored in localStorage (not technically a cookie). Remembers your dark/light setting.
  • App state cache: stored in localStorage. Mirrors your quiz history and progress for offline-tolerant operation. Not transmitted by itself.

We do not use third-party analytics cookies, advertising cookies, or social-media tracking pixels. We collect no information about your activity on other websites.

7.1 · Analytics

Vercel Web Analytics counts visits to certanvil.com without cookies (see § 04). It remembers your choice on this device.

Turn off analytics on this device.

§ 08Your rights

If you're in the UK or EU, the UK GDPR and EU GDPR give you specific rights over your personal data. If you're in California, the CCPA gives you similar rights. We honour these for everyone, regardless of where you live, because consistent data rights are simpler to maintain.

8.1 · Access

Export everything we have about you at any time. Cert app → Settings → Export Data. You'll get a JSON file with your full profile, quiz history, wrong bank, streak, milestones, and drill mastery. Stripe billing history is exportable separately from your Stripe Customer Portal.

8.2 · Erasure ("right to be forgotten")

Self-service deletion from Settings (see § 06). The cascade is irreversible. You can also email us if you'd prefer assisted deletion.

8.3 · Correction

Update your email, display name, cert preference, and exam date from Settings at any time.

8.4 · Portability

The Export Data action produces a machine-readable JSON snapshot, suitable for moving to another service.

8.5 · Restriction of processing

If you want us to stop processing your data temporarily (e.g. while a dispute is resolved), email support@certanvil.com. We'll restrict within 7 days.

8.6 · Objection

If you object to a specific processing activity, email us and we'll respond within 7 days. The performance telemetry described in § 2.4 is collected under legitimate interests. If you'd like to opt out of that specifically, contact us and we'll suppress your user ID from future telemetry rows.

8.7 · Lodge a complaint

To complain about how we use your data, email support@certanvil.com with 'Privacy complaint' in the subject. We acknowledge it within 30 days and then look into it. You can also complain to the Information Commissioner's Office at ico.org.uk.

§ 09International transfers

Some of our sub-processors (Stripe, Anthropic, Resend, Vercel) are based in the United States. When your data moves from the UK/EU to the US, we rely on the EU-US Data Privacy Framework and on Standard Contractual Clauses approved by the European Commission. The sub-processors named in § 04 all maintain these safeguards. RevenueCat is based in the United States and relies on the EU-US Data Privacy Framework or Standard Contractual Clauses. Apple is based in the United States and relies on its own safeguards, described in its privacy policy. Supabase data is held in the EU-Frankfurt region by default and does not leave the EEA for your account and quiz data.

§ 10Security

How we protect your data:

  • Encryption in transit: all traffic between your browser and our servers uses TLS 1.2 or above. The certificate is auto-rotated by Vercel.
  • Encryption at rest: Supabase and Stripe both encrypt stored data at rest using industry-standard AES-256.
  • Authentication: one-time email codes only. There are no passwords to leak. Each code works once and expires after 15 minutes.
  • Row-level security: Supabase RLS policies enforce that your data is only readable by you (and by the founder for admin tasks like subscription support).
  • Service-role keys: held only in server-side environment variables, never in client code.
  • No card data: Stripe handles all PCI scope. We never see card numbers, CVCs, or expiration dates.
  • Webhook signature verification: Stripe events posted to our endpoint are verified against the signing secret to prevent forged "subscription created" events.

If we ever have a security incident that affects your personal data, we'll notify you by email within 72 hours of becoming aware of it (GDPR Article 33) and we'll publish a status note on our blog/changelog.

§ 11Children

CertAnvil is intended for use by people aged 13 and over (or 16+ in jurisdictions where higher consent ages apply for online services, such as parts of the EU). We do not knowingly collect personal data from anyone under 13. If you believe a child has provided us with personal data, please email support@certanvil.com and we will delete it promptly.

§ 12Changes to this policy

If we make a meaningful change to this policy (adding a new sub-processor, expanding what we collect, or changing retention), we'll update the version date at the top of this page and send signed-in users an email summarising the change. Minor edits (typos, link fixes, clarifications that don't change substance) won't trigger an email.

This is v1.3. Versions so far:

  • v1.3 (5 November 2026): Pro goes on sale. Apple, RevenueCat and Onelink join the list for purchases, Vercel Web Analytics counts visits without cookies, and how to complain.
  • v1.2 (29 October 2026): self-delete now erases your account 7 days after you ask, and signing back in before then cancels it.
  • v1.1 (28 October 2026): you now sign in with a one-time 6-digit code sent to your email. What we collect and who we share it with haven't changed.
  • v1.0 (11 May 2026): first publication.

§ 13Contact us

Privacy questions, data requests, complaints

Email · support@certanvil.com

Response time · within 7 days for routine requests, 30 days for complex data access / erasure requests

Postal · CertAnvil, United Kingdom (full address provided on request for formal correspondence)

← Back to CertAnvil

certanvil.com · forged for the exam
Privacy Terms Analytics Contact