Privacy
No cookies, ads or ad trackers. No automated decisions about you.
Who’s responsible
Shubham, in Sweden. Email hey@devios.dev about anything here.
At a glance
| What | Why it’s allowed | How long | Where |
|---|---|---|---|
| Visit counts | Legitimate interest: knowing which pages are useful | Visitor codes about two days; anonymous daily totals | Cloudflare and Supabase, Stockholm |
| Notes on Visitors: drawing, message, name or Anonymous | Consent, by posting | While shown; declined notes 30 days, unreviewed ones 90 days | Supabase, Stockholm |
| Booking a call | A step you asked for: holding the call | 30 days after the call or its cancellation; an unbooked hold, or a booking that never got its calendar event, a day at most | Supabase, Stockholm; Google; Cloudflare |
| Error reports: message, page, browser and system; no IP address | Legitimate interest: keeping the site working | 90 days without a repeat | Cloudflare and Supabase, Stockholm |
| Map tiles | Legitimate interest: showing the map | Up to OpenFreeMap | OpenFreeMap |
| My retired live sessions: title, opened, last used | Legitimate interest: clearing them on schedule | 90 days from each session’s last use | Supabase, Stockholm |
| LinkedIn recommendations | Legitimate interest: showing what colleagues said | While shown; ask and yours comes down | Supabase, Stockholm |
GDPR Article 6(1): consent (a), contract or a step you asked for (b), legitimate interest (f). Old sessions could be zipped for me; none of those zips is kept, and no session can make one now.
Visit counts
- Daily totals: page, referring site, phone or computer, posts read, projects clicked. Other pages, DevIos IDE’s too, count as one, without addresses.
- Unique visitors: a one-way code of IP address, browser, a secret and the date, with page and time. Recent codes show how many people are here.
Booking a call
- On Book a call: name, email, optional note and topic, time, time zone, reminders sent.
- Turnstile checks you’re a person. Holds last 5 minutes. A one-way code of your IP address caps daily holds and bookings; holds keep it two days.
- Google Calendar gets your name, email, note and topic, sends the Meet invite, and keeps the event under Google’s policy.
- Cloudflare emails you the booking with a cancel or move link, then reminders a day and an hour before. I get each booking, move and cancellation by email.
Services your browser talks to
Each sees your IP address and browser. Fonts and the rest come from this site.
- Cloudflare: the site, and DevIos IDE’s live-editing server.
- Supabase: the database, images, Visitors notes, DevIos IDE sign-in.
- OpenFreeMap: map tiles.
challenges.cloudflare.com(Turnstile): booking only.github.com,api.github.com,avatars.githubusercontent.com: DevIos IDE only.cjrtnc.leaningtech.com(CheerpJ): the Java runtime, about 13 MB the first time Java opens on a computer or runs. Never your code.pypi.org,files.pythonhosted.org,cdn.jsdelivr.net/pyodide: a Python project’s listed packages. They get names and versions, never code.
Where it’s held
- Supabase: Stockholm. Server code: Cloudflare’s data centre nearest Stockholm.
- Cloudflare keeps error logs 7 days, and no log of each request. It answers from near you, so outside the EU if you are.
- Its Email Service keeps each email’s address, subject and delivery 30 days, with previews off, under its data processing agreement.
- Outside the EU: Anthropic (US), Google, GitHub (US), PyPI (Python Software Foundation, US), jsDelivr.
Kept in your browser
- Theme, achievements and the week calendar’s ticks.
- In a project: the name, sidebar and signed-out look you last used, and a closed phone tip.
- A Java program’s files, cleared as runs start and end.
- Booking: your last few time zones (
booking-recent-zones). - DevIos IDE’s: below.
None of it leaves your device; clearing site data removes it.
Your rights
Email hey@devios.dev to:
- see your data and get a copy (portability)
- have it corrected or deleted
- limit its use, or object to uses based on legitimate interest
- withdraw consent: delete a note, turn email off, keep my AI off your code
Answers within a month. Visit codes can’t be traced to you. Complaints: Sweden’s data protection authority, Integritetsskyddsmyndigheten (IMY).
DevIos IDE
My invite-only code editor, at /ide; you sign in with GitHub. Outside the group, a demo of made-up data saves and sends nothing.
At a glance
| What | Why it’s allowed | How long | Where |
|---|---|---|---|
| GitHub account: id, username, name, email, picture; joined, last on; colour | Contract | While in the group, and 30 days more if I remove you; a sign-in outside it, 7 days | Supabase, Stockholm |
| Renewable GitHub token | Contract | Until you sign out (a phone: your last sign-in), disconnect or leave, or I pause or remove you; six months at most | Supabase, Stockholm, encrypted |
| 8-hour GitHub token | Contract | 8 hours, cleared within the hour, or as above; the tab’s copy until it closes | Supabase, Stockholm, encrypted; your browser |
| Project files: versions (30 daily, 10 others), Git state, waiting commits; since 12 October 2026, who typed and deleted what, by minute and day | Contract | Until the owner deletes it or leaves without handing it on; 30 days more if I remove the owner | Cloudflare, EU |
| Who opened a project, as whom and when; whose typing is whose; last edit | Legitimate interest: nobody types as someone else | Until the project is deleted, even after you leave | Cloudflare, EU |
| Project record: name, language, description, owner, shares and roles; repository, branch, commit; a publish under way; Git choices; sent-out ids; a signed-in guest’s GitHub username | Contract | Until the project is deleted; sent-out ids until 20 more go; a guest’s username until they join | Supabase, Stockholm |
| A send-out the live-editing server missed | Legitimate interest: keeping people out | Until it’s heard, 30 days at most | Supabase, Stockholm |
| A guest’s name, from a guest link | Consent, by joining | Until the project is deleted | Cloudflare, EU |
| Line notes and replies | Contract | Until the note or project is deleted; private ones, until their author leaves | Supabase, Stockholm |
| Board stories in projects not on GitHub; card order on GitHub boards | Contract; order: legitimate interest | Until the story or project is deleted | Supabase, Stockholm |
| Invites: the friend’s name, a note to me, a project and role; the link’s fingerprint and encrypted copy | Legitimate interest: invite only | Unanswered requests 30 days; unused links 30 days after they end; the rest 30 days after they’re used, declined or taken back | Supabase, Stockholm |
| Inbox | Contract | 30 days from each item’s arrival or last update, read or not | Supabase, Stockholm |
| Inbox emails you turn on | Consent, by turning them on | Not kept; Cloudflare’s record, 30 days | Cloudflare Email Service |
| GitHub’s pull request and issue events for linked repositories | Contract | 7 days from GitHub’s last mention | Supabase, Stockholm |
| Preferences | Contract | While in the group | Supabase, Stockholm |
| Group activity: invites, joins, leaves, project changes, guest links, my settings | Legitimate interest: a record for me | 90 days | Supabase, Stockholm |
| Code my AI reads | Consent, by writing in a project it’s on for | Not stored by me; Anthropic deletes it within 30 days, or 2 years if flagged | Cloudflare, then Anthropic, US |
| My AI’s calls: time, model, tokens, cost | Legitimate interest: a monthly budget | 90 days | Supabase, Stockholm |
The editor can’t work without what’s marked Contract.
Who sees what
- Me (Group page): names, usernames, pictures, who invited whom, join and last-on times, project counts and sizes.
- Your inviter: your name, username, picture, join time.
- A project’s people: each other’s names, pictures, colours, cursors, runs and contributions.
- Invite links: their maker’s name, username and picture. Guest links: first names and colours of those in the project.
- Your email: only you; the server uses it to spot me, and for email you turn on.
I can’t open a project unless it’s shared with me.
Projects
- All code runs in your browser; none is sent away to run.
- Uploads and imports go straight to the live-editing server; uploads hold back likely keys.
- Deleting a project deletes its files at once; one row keeps its id from reuse.
- A guest who signs in from a project moves their typing to that GitHub account.
- The owner’s phone can run a project in an editor’s computer tab.
- In memory only: who’s in a project, 30 seconds; short-address lookups, 10 minutes. Those pages ask not to be indexed.
GitHub
- Tokens work only where the DevIos IDE app is installed and you have access; the renewable one only fetches 8-hour ones.
- Your browser reads repositories you open, and writes only when you act: commits (with your noreply address), pull requests, reviews, releases, issues.
- The server acts as you to check pushes, publish, attach releases, open issues and manage push access. It keeps only repository, branch and commit.
- Nothing deletes a repository or force-moves a branch. It deletes only its publish branch, revoked push access and undone invitations.
- A note sent as a pull request comment becomes GitHub’s; another’s goes quoted, with their first name.
- Revoking the app in GitHub’s settings deletes the kept tokens.
Inbox and email
- A note’s item keeps its first 280 characters; a failed public build’s, five error lines.
- For a repository without a project: only GitHub’s message id, kind and time.
- Email is off until you turn a kind on; it goes to your GitHub email, with one-click off.
My AI
Only I can use it, only where I turn it on. It reads that project’s files, yours too: near my cursor for suggestions, all for questions. It writes only what I accept. Retired /live sessions could also use my Claude subscription; none do now.
Kept in your browser
- Local storage: your sign-in;
ide.blame,ide.testsRunOnSave,ide.dontAsk;ide.ownClients, your typing ids (last 200). ide.reviewed: Cursor-look Review ticks, as fingerprints; 30 days, or until the lines change.- Guests:
ide.guestPasses(last 20, 30 days each), name, a closed note. ide.knownMember: a signed-out member’s first name, username, colour, and whether to sign them back in.- IndexedDB
devios-git: History’s GitHub cache, per account; unused parts 30 days, all of it until sign-out. - Session storage, until the tab closes:
ide.githubTokenand return notes.
Only guest passes are sent, back to the site.
Leaving
Leaving (on Account) first offers your projects as a download. Projects others use go to someone you pick, or are deleted; the rest are deleted. Shared notes, stories, typing and the people you invited stay, under “a former member”. Private notes, inbox, preferences, tokens and account go at once; your sign-in after 7 days. You’re signed out everywhere. If I remove you, your account and projects wait 30 days for you to download.
Credits
- Map data © OpenStreetMap contributors(Open Database Licence).
- Tiles: OpenFreeMap (OpenMapTiles schema, Positron styles). Map: MapLibre GL JS (BSD 3-Clause).
- Icons: Lucide (ISC). Fonts (SIL Open Font Licence): Geist, Geist Mono, Inter, Inter Tight, IBM Plex Sans and Mono, JetBrains Mono, Fira Code, Space Grotesk.
- C and C++: LLVM’s clang, wasm-ld and libc++, built by YoWASP, with wasi-sdk (Apache 2.0 with LLVM Exceptions; notice).
- Java: CheerpJ by Leaning Technologies (Community License); Eclipse Compiler for Java (EPL 2.0).
- Technology logos belong to their owners.
Last updated 16 October 2026.