Legal

Privacy Policy

Last updated: September 24, 2026

1. Overview

SQL Practice ("we", "us", "the site") is a browser-based SQL playground and formatter. This policy explains what information is and isn't collected when you use the site, and how third-party services such as advertising and analytics providers may use cookies if and when we enable them.

2. How the playgrounds and exercises handle your data

The query editor, sample database, query results and exercise answer checking are powered entirely by code running inside your own browser tab: JavaScript served from this site, and the SQLite database engine compiled to WebAssembly. The SQL you write, the results you see, the answers you submit, and the sample data you modify are never transmitted to, processed by, or stored on any server we operate. Checking an exercise answer runs both your query and the expected solution locally and compares the results in your browser; nothing about your attempt is uploaded. Closing or refreshing the tab clears the in-memory database back to its original state.

The same is true of the other languages that run here. Python, JavaScript and TypeScript programs are executed inside your own browser: JavaScript and TypeScript in an isolated background thread (a Web Worker) with no access to the page or the network, and Python by a copy of the CPython interpreter compiled to WebAssembly (Pyodide) that this site serves from its own domain. The code you write, the input you give it and the output it prints stay on your device. Lesson examples and exercise tests run the same way. This site does not send your code to an external execution service. Only languages with a working local browser runner are published.

3. Local storage

The site uses your browser's localStorage to remember a small amount of information between visits:

  • your light/dark theme preference;
  • your recent query history in the Playground;
  • which Practice exercises you have solved, and the dates you practised on, so your progress and streak can be shown;
  • the name you optionally type onto a Certificate of Completion;
  • whether you switched on the optional practice stopwatch (on/off only — no times are stored);
  • the lessons you have marked completed and the coding exercises and challenges you have attempted or solved, with the dates, so the language pages can show your progress;
  • code you typed into an exercise or challenge that you have not finished, and what is in the playground editor, so it is still there if you reload the page.

There are no user accounts on this site, so none of this is tied to an identity. All of it is stored only on your own device and is never sent to us. Because it lives in one browser, it does not follow you to another device, and clearing your browsing data will erase it. You can remove it at any time using the Playground's History panel, the "Reset progress" button on the Practice page, or your browser's site settings.

Separately from local storage, the site registers a service worker, which asks your browser to keep a copy of the site's own files — pages, stylesheets, fonts and the database engine — so that it loads quickly and keeps working offline. It stores only files we already serve you, never anything about you or what you did on the site, and it sends nothing back to us. Clearing your browsing data removes it. The Python runtime and the TypeScript compiler are large files; your browser keeps them in its ordinary cache after the first time you run code in those languages, so they do not download again.

4. Cookies and advertising

This site sets no cookies of any kind. Not for advertising, not for logins — there are no accounts — and not for the traffic measurement described in Section 5, which is deliberately cookieless. The small amount of information the site remembers between visits is held in your browser's local storage, described in Section 3, which is never transmitted anywhere. Because nothing stored on your device identifies you, there is no consent banner here to click through.

We may in future display advertisements served by Google AdSense to help cover the cost of running the site. No ads are running today. If they are enabled, those third parties may use cookies, web beacons or similar technologies to serve ads based on your prior visits to this and other websites, and this policy will be updated before that happens. Should that day come, you would be able to opt out of personalised advertising through Google's Ads Settings or www.aboutads.info, and visitors in regions requiring prior consent would be asked for it first.

5. Analytics

Since 22 September 2026 this site measures its traffic with Vercel Web Analytics and Vercel Speed Insights. Vercel is the company that hosts this site, so it already serves every page you read; these two features additionally count page views and measure how quickly pages load.

What they record. The page visited, the referring page if there was one, an approximate country derived from your IP address, and the general type of device and browser. Speed Insights additionally records loading measurements — how soon the page became visible, how quickly it responded. None of it is linked to a name, an account, or any identifier that follows you from one visit to the next.

What they do not record: your SQL, or your searches. A page's address can carry text after a # — a playground link keeps its query there, and the search page keeps your search words there. Before either feature sends anything, a short script on every page removes everything after ? or # from the address, and if it cannot, nothing is sent. The SQL you type never leaves your browser at all. One correction, stated plainly: from 22 to 24 September 2026 that script was not yet in place, so for a playground page opened from a tutorial's Run link, the address that was counted included that example's SQL.

Two things worth being concrete about, because they are unusual and because you can check both yourself. Neither feature sets a cookie or writes anything to your browser's storage — the scripts contain no code that could. And both are served from this site's own domain, at /_vercel/insights/ and /_vercel/speed-insights/, and report back to the same domain, so your browser still makes no request to another company's servers. Open your browser's developer tools and watch the Network and Application tabs while you use the site: you will see both facts for yourself.

What we do with it. Find out which tutorials people actually read, and whether the site is fast enough on real devices. That is the whole purpose. The figures are aggregate, we cannot pick you out of them, and they are neither sold nor shared. Vercel processes them for us as our hosting provider; their privacy notice is at vercel.com/legal/privacy-policy.

If you would rather not be counted, any content blocker that blocks those two script files will stop it, and the site behaves exactly the same without them — every tutorial, every exercise and the playground work unchanged.

6. Third-party services

Loading a page on this site makes no request to another company's servers. Everything your browser needs — the page itself, the styling, the fonts, the SQL engine (SQLite, compiled to WebAssembly), the Python runtime (Pyodide) and the TypeScript compiler, the code that runs your programs, and the two measurement scripts described in Section 5 — is served from this site's own domain. Our hosting provider necessarily sees the requests it serves, as any web host does; Section 5 sets out exactly what it records. The typefaces used to be loaded from Google Fonts, which meant your browser contacted Google's servers and revealed your IP address on every visit; they are now hosted here instead, specifically so that no longer happens.

The open-source components the site is built from, and their licences, are listed on our Open Source Licenses page.

The one exception, in the future, is advertising. Google AdSense is not currently enabled on this site and serves no ads today. If it is enabled later, your browser would then load ad code from Google, which may set cookies as described in Section 4. This policy and its "Last updated" date will be revised before that happens.

7. Children's privacy

This site is not directed at children under 13, and we do not knowingly collect personal information from children. If you believe a child has provided us personal information, please contact us and we will remove it.

8. Your rights over your data

Data protection laws — the GDPR in the European Economic Area and the UK, the CCPA in California, and India's Digital Personal Data Protection Act — give you rights to see the personal data an organisation holds about you, to have it corrected, to have it deleted, to obtain a copy of it, and to object to it being used.

We mention them because you are entitled to know about them, not because there is anything here for them to act on. As described in the sections above, this site collects no personal data. There are no accounts, no cookies, and no requests to another company's servers. The traffic measurement in Section 5 is cookieless and aggregate: it records that a page was viewed, not who viewed it. So there is no record of you for us to hand over, correct, delete, export or sell. That is a consequence of how the site is built rather than a promise we ask you to take on trust — you can confirm it yourself by opening your browser's developer tools and watching the Network and Application tabs while you use the site.

The one thing stored is your practice progress, which is kept in your own browser's local storage and never transmitted anywhere. It is yours to remove at any time: use the "Reset progress" button on the Practice page, or clear site data for this domain in your browser settings. Either one erases it completely, and we have no copy.

If you still want to exercise a right or ask a question about any of this, contact us using the details in the section below and we will respond.

9. Accessibility

We aim to meet the Web Content Accessibility Guidelines (WCAG) 2.1 at level AA. Every page is checked with automated accessibility tooling (axe-core) before changes go live, covering colour contrast, heading structure, form labelling, landmark regions and keyboard focus, and the site is usable with a keyboard alone and in both light and dark themes.

Automated checks catch a great deal but not everything, and no site is ever finished on this front. If you hit something that does not work with your screen reader, magnifier or other assistive technology, please tell us using the contact details below — it will be treated as a bug, because that is what it is.

10. Changes to this policy

We may update this Privacy Policy from time to time, for example to reflect a new advertising or analytics integration. The "Last updated" date at the top of this page will always reflect the most recent revision.

11. Contact us

Questions about this policy? Email contact@sqlpractice.co.in.