Privacy policy
Last updated 24 October 2026
portfolbio hosts personal pages. This policy says what we collect, why, where it goes and how long we keep it. It describes how the service works today; if that changes, this page changes first.
Who we are
portfolbio runs portfolbio.online and is the data controller. Contact: [email protected].
If you have an account
| What | Why | How long |
|---|---|---|
| Email address, and a password hash (argon2id; we never see or store the password itself) | Signing in, security messages, receipts and gift codes. We don't send marketing email. | While you have an account |
| Two-factor secrets, backup codes and passkeys, if you set them up | Signing in | Until you remove them or the account |
| Sign-in sessions: the IP address and browser they started from | So you can see and end your sessions, and to spot account takeover | Until the session ends; sessions expire after 30 days |
| Your Discord, Google or GitHub account id, if you sign in with one | Signing in with that provider | While it's linked |
| Your page: everything you put in the editor, its version history, and the files you upload | Showing your page. Uploads are re-encoded and their metadata (camera details, GPS location) is removed before anything is published. | While you keep them. Files you delete are purged after 30 days; abandoned uploads after 24 hours. |
| Purchases: what you bought, the amount, the currency and Stripe's reference numbers | Giving you what you paid for, handling refunds, keeping accounts | As long as tax law requires (six years in the UK) |
| A record of security-relevant actions (publishing, purchases, admin changes) | Security and resolving disputes | While the service runs. When you delete your account, the entries no longer point to it, apart from a note of the deletion itself. |
If you visit someone's page
We don't use cookies or any other identifier on public pages to track you, and we don't load third-party scripts, fonts or trackers. Fonts and images come from our own servers.
- Visit statistics. Each page view adds one to daily counters for that page: views, the page, the site that linked to it (just the domain), your country, and a coarse device type and browser family. To count unique visitors, we keep a one-way hash of your IP address and browser, mixed with a random value that changes every day. Both the hash and that day's random value are deleted after midnight UTC, so visits can't be linked across days. Your IP address itself is never stored. Your country comes from our network provider's location header. Bots and the page owner's own visits aren't counted. When the owner views their statistics, anything seen fewer than five times is grouped as "Other".
- Things your browser keeps (in its local storage, never sent to us): the player volume you chose, your choices for sound, motion and light or dark mode, and, on pages with a visitor counter, a note that you've been counted today.
- Guestbooks store the name and message you write, and nothing about you beyond that (no IP address).
- Contact forms aren't stored by us. The message goes by email to the page owner, with your address set as the reply-to so they can answer you. Your email then sits in their inbox under their control.
- Embedded players (YouTube, Spotify, SoundCloud, Twitch, Vimeo, Bandcamp) only load when you press play. From then on, that service's own privacy policy applies.
- Reports keep what you write and, if you choose to give one, your email so we can reply. No IP address.
Rate limits
To stop abuse, the server counts recent requests per IP address in memory. These counts are never written to disk and disappear within minutes.
Who else handles data
| Provider | What for |
|---|---|
| Oracle Cloud (London, UK) | The servers that run the site and the database |
| Cloudflare | Network protection and delivery, storage of uploaded files (R2) and nightly database backups |
| Resend | Sending email |
| Stripe | Payments. Stripe is the merchant of record and handles your card details and tax; we never see your card number. |
| Discord, Google, GitHub | Only if you choose to sign in with them |
Live widgets show public information from services you link, such as GitHub, game ranks, Discord status or music you're playing. Our server fetches it using the usernames you enter. We don't ask for access to those accounts. Font files come from Fontsource once, through our server, and are then served from ours.
Legal bases
We run your account and page to provide the service you asked for (contract). Security records, abuse prevention and aggregate visit statistics are in our legitimate interests, kept as small as we could make them. We keep purchase records to meet legal obligations.
Your rights
You can ask for a copy of your data, correct it, delete it, object to how it's used, or take it elsewhere. Most of it is in the dashboard: you can edit everything and delete files, and under Account you can download all your data as one file or delete your account. Deleting removes your pages, their history, your uploads and stats straight away; stored files go within the hour. Your username stays unclaimable for 30 days so nobody can inherit your links. For anything else, email [email protected]; we answer within a month. If you're unhappy with how we handle your data, you can complain to the UK Information Commissioner's Office (ico.org.uk).
Public by design
Your page, everything on it and your username are public. Search engines may list them unless you turn on "Ask search engines not to list it" for the page. The README badge, which shows your view count, stays off until you switch it on.
Children
portfolbio isn't for children under 13.