← Back

Privacy Policy

Last updated: May 2025

Summary (plain language): We store only what is needed to run the service — your email, username, hashed password, uploaded files, and project data. We never sell your data. You can download everything you've uploaded and delete your account at any time. Stripe processes all payments; we only store identifiers they give us.

1. Who We Are

Vision Control Inc. ("we", "us", "our") is a file version-control and collaboration service. For the purposes of EU/UK data-protection law, we are the data controller for the personal data described in this policy.

If you have questions about how we handle your data, contact us at: support@visioncont.org

2. Data We Collect

2.1 Account data

FieldWhy we collect itStored as
Email addressAccount login, transactional emailsPlain text (unique)
PasswordAuthenticationbcrypt hash — never plain text
UsernameDisplay name across the servicePlain text
Bio & avatarOptional public profilePlain text / base-64 image
Account creation dateService administrationTimestamp

2.2 Project & file data

When you create projects and upload files we store the project metadata (name, description, visibility setting) and every version of every file you upload, including the filename, file size, storage path, version history, and the approval status of each version. File content is stored either on our VPS filesystem, in Cloudflare R2 object storage, or in our PostgreSQL database (for small delta records). We also store folder structure and per-file privacy settings you configure.

2.3 Collaboration data

We store the list of collaborators on each project, their assigned roles (collaborator / manager / co-owner), and who added them and when. Join-request messages and their acceptance/rejection status are also stored.

2.4 Usage & operational data

2.5 Email-related tokens

We create short-lived tokens for email verification (24-hour expiry) and password-reset links (1-hour expiry). These tokens are stored in the database and are invalidated immediately after use.

2.6 Payment data

Payments, subscriptions, and payouts are processed entirely by Stripe. We store only the Stripe-assigned identifiers Stripe gives us: stripe_customer_id, stripe_subscription_id, and your current plan key (free / pro / business / enterprise). We never store card numbers, bank account details, or any other raw payment data. If you enable Stripe Connect payouts, your Stripe Connect account ID (stripe_account_id) and onboarding/payout status are stored.

2.7 Notification preferences

We store your preferences for email notifications and daily-digest emails. You can change or disable these from your profile at any time.

2.8 Data we do NOT collect

3. Legal Basis for Processing (GDPR)

Processing activityLegal basis
Account creation & authentication Contract performance (Art. 6(1)(b)) — necessary to provide the service
Storing uploaded files & projects Contract performance (Art. 6(1)(b))
Sending transactional emails (verification, password reset, storage warnings) Contract performance (Art. 6(1)(b))
Compute usage logging for capacity planning Legitimate interests (Art. 6(1)(f)) — operating and improving infrastructure
Storing Stripe identifiers for billing Contract performance (Art. 6(1)(b))
Optional notification & digest emails Consent (Art. 6(1)(a)) — opt-in preferences you control
CSRF tokens & session security Legitimate interests (Art. 6(1)(f)) — security of the service

4. How We Use Your Data

We do not sell, rent, or trade your personal data to any third party.

5. Data Sharing & Sub-processors

RecipientPurposeLocation
Stripe, Inc. Payment processing, subscription management, Connect payouts United States (Standard Contractual Clauses apply)
Cloudflare (R2) Object storage for uploaded file versions Depends on R2 region configured — EU regions available
VPS hosting provider Server hosting, PostgreSQL database, on-disk file storage As configured in deployment
SMTP email provider Delivery of transactional and notification emails As configured in SMTP_HOST

We do not share your data with any other third parties. We have Data Processing Agreements (or rely on Standard Contractual Clauses) with all sub-processors listed above.

6. Data Retention

Data categoryRetention period
Account data, projects, and uploaded files Until you delete your account; or until auto-deletion under storage enforcement (see §8)
Email verification tokens 24 hours from creation; deleted or invalidated after first use
Password-reset tokens 1 hour from creation; immediately invalidated after use
Login sessions 24 hours from last activity
Compute usage logs Retained while your account is active; deleted when your account is deleted
Stripe billing identifiers Retained while your account is active; cleared when your account is deleted
Support messages Up to 2 years for audit/quality purposes, then deleted
Nginx access logs Rotated automatically (typically 7–30 days depending on server configuration)

7. Your Rights Under GDPR

If you are located in the European Economic Area (EEA), the United Kingdom, or another jurisdiction with applicable data-protection law, you have the following rights:

We will respond to data-subject requests within 30 days. We may ask you to verify your identity before fulfilling a request.

8. Storage Limits & Automated Enforcement

Each account has a storage limit based on your subscription plan (free accounts receive 10 GB). If you exceed your limit, the following automated process applies:

  1. Your grace period begins the day you first exceed your limit.
  2. On day 27 we send you a warning email with 3 days' notice.
  3. On day 30, if you are still over your limit, we permanently delete your most recently-created projects one by one until you are within your limit. You receive an email listing the deleted projects.
  4. If you bring your storage back under your limit at any point during the grace period, the process stops immediately and no data is deleted.

This processing is carried out under contract performance (our Terms of Service, §6). You are always notified before any automated deletion takes place.

GDPR note — automated decision-making (Art. 22): The deletion process described above is triggered automatically by a server-side job, but the decision is solely based on your storage usage vs. your plan limit — a simple numeric comparison with no profiling. The outcome (project deletion) follows directly from the Terms of Service you agreed to. You can prevent it at any time by upgrading your plan, deleting files, or deleting your account.

9. Cookies & Browser Storage

We use a single first-party session cookie (connect.sid) to keep you logged in. This cookie is:

We do not use advertising cookies, analytics cookies, or any third-party tracking cookies. No cookie consent banner is required for strictly-necessary session cookies under ePrivacy / PECR rules.

The desktop client stores your API token in the operating-system keychain (not a cookie).

10. Security

We take the security of your personal data seriously and use appropriate technical and organisational measures to protect it, including:

No method of transmission or storage over the internet is completely secure. While we strive to protect your data, we cannot guarantee absolute security. If you believe your account has been compromised, please contact us immediately at support@visioncont.org.

11. Stripe Connect & Donations

Project owners can opt in to receive donations from other users via Stripe Connect. If you do so:

12. Client Review Requests

When you use the Client Review feature to share a file version with an external reviewer, we store the reviewer's email address and any feedback they submit. That email address is also saved to your personal address book within the service so you can easily re-use it in future. You can delete individual address-book entries from your profile at any time.

The reviewer's email is used solely to facilitate the review link; it is not used for marketing or shared with any third party.

13. International Data Transfers

We and our sub-processors (Stripe, Cloudflare) may process your data outside the EEA. Where this occurs we rely on Standard Contractual Clauses (SCCs) approved by the European Commission, or equivalent transfer mechanisms, to ensure adequate protection.

14. Children's Privacy

The service is not directed at children under the age of 16. We do not knowingly collect personal data from children. If you believe a child has created an account, please contact us and we will delete the account promptly.

15. Changes to This Policy

We may update this policy from time to time. The "Last updated" date at the top of this page will always reflect the most recent revision. If we make material changes we will notify registered users by email before the changes take effect.

16. Contact

For any privacy-related questions, data-subject requests, or complaints: