what we keep about you.

This is the Gwecode privacy notice: what we record, why, who else is involved and what you can ask us to do.

Last updated 9 November 2026

the short version.

we record

  • Your name, email and a scrambled copy of your password, if you make an account.
  • The lessons you finish, your quick check answers and the sites you build.
  • The pages you view, how long you stay and whether your code ran. If you’re signed in, this is tied to your account and the people who run Gwecode can see it. You can switch this off in account settings.

we don’t

  • Show ads or sell your data.
  • Use tracking cookies or outside analytics tools.
  • Store your IP address with your visits. It goes in our security log only when you join or a sign-in fails.
  • Save the code you run in lessons or the playground. If a run fails, we keep the error’s name or first line.

your visit, as we store it.

Here’s how your visit looks to us right now. A small script from our own server fills in the rest as you move around.

If you’re signed in, it’s saved against your account. The people who run Gwecode can see your name and email next to every page, time and code run.

If you’re a guest, it’s saved against a code, not a name. The code mixes your IP address and browser details with a random key. We replace the key every day and throw the old one away, so we can count you once today but can’t recognise you tomorrow. No cookie is used for this.

If you sign in or join during a visit, the visit joins your account, including the pages you’d already viewed. If you’ve switched tracking off, it stays a guest visit and stops there.

this visit

We’re not recording this visit.

who runs gwecode

Gwecode is run by WOM STUDIO LTD, Unit 20, Port Talbot Business Units, Addison Road, Port Talbot, SA12 6HZ, United Kingdom. We decide how your data is used, which makes us its controller. Anything about this notice goes to help@gwecode.com.

if you make an account

Every lesson is open without an account. If you make one, we store:

  • your name and email address
  • your password as a one-way hash, so nobody here can read it
  • when you joined and when you last signed in
  • the lessons you start and finish, the level checks you pass, and each quick check answer and whether it was right
  • the sites you build: their names, anything you typed to describe them, and every file
  • the languages you vote for or suggest
  • whether you’ve switched visit tracking off

The people who run Gwecode can open your profile to see these details, your progress and your visits. Each time they do, our admin log notes who opened it and when, so looking at your data always leaves a trace.

We don’t send email at the moment, so your address is only used to sign you in.

what a visit records

whatin detail
PagesThe address of each page, without anything after a question mark.
TimeCounted while the tab is showing and you’ve been active in the last five minutes.
Code runsThe language, whether it worked, and the error’s name or first line, up to 60 characters. Your code isn’t sent, but an error’s first line can quote a little of it.
CountryLooked up from your IP address, then the address is dropped.
DevicePhone, tablet or desktop.
BrowserThe name only, such as Firefox.
Where you came fromThe name of the site that sent you, such as reddit.com, or the campaign tag in the link. Not the full address.
Joining and signing inWhen it happened during the visit.

We don’t record the people who run the site, or bots we can spot.

your ip address

Our server has to see your IP address to reply to you. For visits, we use it to look up your country and to make the guest code, then drop it. It isn’t stored with your visit.

The lookup happens on our own server, using a copy of the DB-IP country database, so nothing about you goes to DB-IP.

We do store IP addresses in one place: our security log. It records your address when you join and when a sign-in fails, along with a partly hidden email address for failed sign-ins. This is how we spot break-in attempts. Entries are deleted after 90 days.

To slow down password guessing, we also count attempts from each address. The count is saved against a hash of the address and resets within the hour.

Our hosting provider may keep its own server logs, which usually include IP addresses.

turning tracking off

If you have an account, switch tracking off in account settings. We stop recording your pages, time and code runs straight away, on every device you’re signed in on, until you switch it back on.

The switch belongs to your account, so it only works while you’re signed in. If you sign out or your session ends, you’re a guest again: visits are saved against a daily code, not your name, and they don’t join your account when you sign back in.

If your browser sends the Global Privacy Control signal, we skip visitor tracking completely: the script doesn’t load and nothing is recorded, signed in or not. Firefox, Brave and DuckDuckGo offer it. Chrome needs an extension.

Neither of these erases visits we’ve already recorded. You can ask us to erase your visit history at any time, as the last section explains.

cookies and browser storage

namewhat it doeshow long
gwecode_sessioncookieKeeps you signed in and protects forms from forgery. Everyone gets one, because forms need it. It isn’t used to follow guests.Until you close your browser. Idle sessions end after two hours.
gwe_localecookieRemembers your language. Site languages are switched off right now, so this cookie isn’t being set.One year
gwecode-themebrowser storageRemembers light or dark mode.Until you clear it
pg-lang pg-code-* pg-heightbrowser storageKeeps your playground language, code and panel size. It stays in your browser and isn’t sent to us.Until you clear it
gwecode-engines-v1browser cacheKeeps downloaded language engines so your code starts faster.Until you clear it

We don’t use advertising or tracking cookies.

who else is involved

whowhat forwhat they get
jsDelivrDelivers some language engines, such as Python, to your browser. It’s a worldwide network, so your request may be handled in another country.Your browser connects to it directly, so it sees your IP address and browser details. Lesson pages can fetch engines before you press run, and every page opens a connection ahead of time to save waiting. Your code isn’t sent.
DB-IPSupplies the country lookup database. IP data by DB-IP, licensed under CC BY 4.0.Nothing about you. Our server downloads the file about once a month and does every lookup itself.

Code you write runs in your browser. If your code loads an image or a script from another website, your browser fetches it and that site sees the request.

Our fonts are on our own server. We’d only hand your data to anyone else if the law required it.

how long we keep things

whathow long
Your account, progress, answers and sitesUntil your account is deleted.
Visit details13 months, then deleted.
Daily totalsKept for good. Visits, pages, countries, devices, browsers, referring sites, code runs and sign-ups are added up into daily figures that don’t name anyone.
Which months and years an account was activeUntil your visit history is erased or your account is deleted. We use it to count learners per month and per year.
Security logUp to 90 days. We delete older entries once a day.
Who opened your profileUp to 90 days, in the same admin log.

why we’re allowed to

Data protection law asks for a reason behind each use of your data. Ours are:

  • Your account, progress and sites: we need them to give you what you signed up for.
  • Security log, attempt counts and the record of who opened your profile: our legitimate interest in keeping accounts and the site safe, and in being able to show who looked at your data.
  • Visitor tracking: our legitimate interest in seeing which lessons work, where learners get stuck and how people find us.

changes to this notice

When this notice changes, we update the date at the top. If a change matters, we’ll say so on the site first.

what you can ask us.

You can ask for a copy of your data, ask us to correct or delete it, ask us to limit how we use it, or object to visitor tracking. It’s free, and we’ll reply within a month.

email help@gwecode.com

you can do these yourself

  • Change your name or password in account settings.
  • Switch visit tracking off in account settings.
  • Download or delete a site you built, from the build page.
  • Delete your account from account settings. You’ll need your password. It happens straight away and can’t be undone: we remove your account, progress, answers, sites, votes and visit history. Totals stay, because they don’t name you. Security log lines stay for as long as how long we keep things says, and we keep a note that the account’s number was deleted, with no name or email.

ask us for these

  • Erase your visit history. We remove every page, time and code run tied to your account. Totals stay, because they don’t name you. New visits are still recorded unless you’ve switched tracking off or your browser sends Global Privacy Control.
  • Change your email address.
  • Delete your account, if you can’t sign in. We remove the same things.