Privacy Policy
Effective 6 September 2026. Not yet reviewed by a lawyer; it describes what the service actually does today and will be updated when that changes.
1. Who is responsible
Graphden — the website at graphden.dev, the hosted editor at
app.graphden.dev, and the public demo — is operated by Artem Markov,
an individual developer, who is the data controller for the personal data
described here.
Contact for anything in this policy: privacy@graphden.dev.
2. What we collect, and why
| Data | When | Why (legal basis) | Kept for |
|---|---|---|---|
| Your email address and what you wrote | You email us at any @graphden.dev address |
To answer you (legitimate interest) | Until the conversation is closed, then up to 12 months |
| Email, username, password (stored as a bcrypt hash), and — if you use them — your Google or GitHub account identifier and the email they return | You create an account | To run your account and let you sign in (contract) | While the account exists, plus the database backup window (section 4) |
| TOTP secret and recovery codes | You enable two-factor sign-in | Account security (contract) | While enabled |
| Organisation membership and role | You join or create an organisation | To decide what you can see and do (contract) | While the membership exists |
| The content you author: functions, bindings, branches, versions, test runs, and secrets you store | You use the editor | To store and run it for you — that is the service (contract). It is yours, see section 5 | While the account or organisation exists. Free organisations with no sign-in and no execution for 60 days are marked and deleted 14 days later unless the owner returns. Demo organisations are deleted after one hour |
| Execution records (what ran, when, how long, the result or error) | Your functions run | To show you results and debug failures (contract) | Succeeded and cancelled runs 7 days, failed runs 30 days |
| Usage counters per organisation (calls, executions, storage) | Your functions run | To enforce per-plan limits and show you usage (contract) | 90 days |
| Server logs: IP address, user agent, requested URL, timestamp | Every request | Security, abuse prevention, capacity planning (legitimate interest) | Rotated by size (five files of 50 MB per container); in practice days to a few weeks |
| Session cookie | You sign in | To keep you signed in (strictly necessary; no consent banner is needed for it) | Until you sign out or the session expires |
| Feedback you send through the in-app form, and the page you sent it from | You send feedback | To act on it (legitimate interest) | Until resolved, then up to 12 months |
We use no third-party analytics, advertising trackers, or tracking pixels. If we ever add self-hosted, cookie-free analytics, this section will say so before it goes live.
3. The public demo
The demo at app.graphden.dev/?demo=1 works without an account. It runs in
a shared public organisation: anything you create there is visible to other
demo users and is deleted after one hour. Do not put personal data or
secrets into the demo. Server logs for demo requests are kept as described
in section 2.
4. Who else sees your data
We use these providers to run the service. Each processes data only on our instructions:
| Provider | What for | Where |
|---|---|---|
| Vultr Holdings Corp. (The Constant Company, LLC) | Servers and the managed PostgreSQL database, including its automatic backups (a short rolling window, currently up to 7 days) | Frankfurt, Germany (EU) |
| Resend, Inc. | Sending sign-up verification and account emails from noreply@graphden.dev |
USA |
| Google LLC, GitHub Inc. | Only if you choose to sign in with them; they tell us your identifier and email | USA, under their own privacy policies |
Secrets you store in the editor are kept in a self-hosted vault (OpenBao) on our own server, encrypted at rest; no third party hosts them.
We do not sell personal data and do not share it with anyone else, unless a law or court order requires it.
5. Your content is yours
Functions and graphs you author belong to you. We store and execute them to
provide the service and for nothing else. You can export your whole graph at
any time from the editor (GET /api/export/graph returns it as EDN) and
take it to a self-hosted Graphden instance or anywhere else.
6. Where data lives, and transfers
Your data is stored in the European Union (Frankfurt). Two things leave it: account emails are sent through Resend in the USA, and sign-in through Google or GitHub involves those companies in the USA. Each acts under its own legal framework for international transfers (the EU–US Data Privacy Framework and standard contractual clauses). We do not otherwise transfer personal data outside the EU.
7. Your rights
If you are in the EU, UK, or another jurisdiction with similar rules, you can ask us to:
- tell you what personal data we hold about you and give you a copy;
- correct it;
- delete it (you can also delete your account yourself in Settings);
- give it to you in a portable format (your graph: see section 5; account data: on request);
- stop or restrict certain processing, or object to processing based on legitimate interest;
- withdraw consent where processing is based on it.
Write to privacy@graphden.dev. We answer within one month. You can also complain to your local data-protection authority.
8. Security
Passwords are stored as bcrypt hashes. Traffic is encrypted in transit (TLS). Stored secrets are encrypted at rest in a dedicated vault. Access to production systems is limited to the operator. If a breach affects your personal data, we will notify you and, where required, the supervisory authority within 72 hours of becoming aware of it. Our security model and how to report a vulnerability are published in the open-source repository (SECURITY.md, SECURITY_MODEL.md).
9. Children
The service is not directed at children under 16 and we do not knowingly collect their data. If you believe a child has given us data, write to us and we will delete it.
10. Changes
We post changes here with a new effective date and, for material changes, email account holders before they take effect.