Privacy & Data Protection
Core principle: Your code never leaves your machine unless you explicitly choose cloud features. We are privacy-first, privacy-by-default, and fully GDPR compliant.
Your Privacy Rights (GDPR)
You have complete control over your data:
Right to Access Your Data
Request a complete export of all your data:
- Open SnapBack Settings in VS Code
- Click “Export My Data”
- You’ll receive a ZIP file with:
- All snapshots you’ve created
- Account information
- API keys and sessions
- Subscription details
- Audit log of all access
Request data export →
Right to Erasure (“Right to be Forgotten”)
We’ll delete all your data permanently:
- Go to SnapBack account settings
- Scroll to “Danger Zone”
- Click “Delete My Account”
- Confirm your identity
- All data deleted in <24 hours
- Your snapshots
- Your account
- Your API keys
- Audit logs mentioning you
This includes cascade deletion of dependent records (sessions, subscriptions, API keys).
Right to Anonymization
We can anonymize your data while keeping historical records:
SnapBack replaces your user ID with a one-way hash (e.g., anon_a7f3e2b1c9d4e) in all systems:
- Analytics
- Audit logs
- Performance metrics
- Error tracking
Benefit: You remain privacy-protected in our systems while we keep valuable product data.
Request anonymization →
Right to Data Portability
Your data export includes:
- Raw snapshot files (original format)
- Metadata (timestamps, file paths)
- Subscription history
- API keys (plaintext, one-time export)
Use this to:
- Migrate to another tool
- Archive your work
- Integrate with other services
Data Collection & Consent
VS Code Extension
When you first install the SnapBack VS Code extension, you’ll see a consent modal that explains what data we collect and why. You can:
- Accept - Enable analytics collection
- Remind Me Later - Postpone the decision for 7 days
- Cancel - Disable analytics collection
You can change your consent preferences anytime in VS Code Settings:
- Open VS Code Settings (⌘+, or Ctrl+,)
- Search for “SnapBack Privacy”
- Toggle the consent options as desired
Web Dashboard
Our web dashboard uses a cookie consent banner to manage analytics preferences. You can:
- Allow - Enable analytics collection
- Decline - Disable analytics collection
What We Collect: The Complete Picture
| Data | Collected? | Default | Storage | Purpose |
|---|---|---|---|---|
| Source code contents | Never | n/a | n/a | n/a |
| File paths | Optional | Off | Hashed locally | Session grouping |
| File types (.ts, .py) | Optional | Off | Cloud (if enabled) | Detection accuracy |
| Event metadata | Optional | Off | Cloud (if enabled) | Improve detection |
| Restore history | Yes | On | Local only | Risk scoring |
| AI tool detected | Optional | Off | Cloud (if enabled) | Tool-specific learning |
Pioneer Program Telemetry
Pioneers who opt into “Help Improve Detection” share:
- Which AI tool was detected (not what it wrote)
- File types affected (not file names or contents)
- Whether a restore occurred (not what was restored)
This data trains our detection models. Your code never leaves your machine.
What “Opt In” Means
| Setting | Default | What’s Shared |
|---|---|---|
| Basic analytics | Off | Feature usage, errors |
| Detection improvement | Off | AI tool + file type + restore event |
| Crash reports | Off | Stack traces (no code) |
You control each setting independently in VS Code preferences.
Data We Collect
Usage Analytics
We collect data about how you use SnapBack to improve the product:
- Feature usage - Which features you use and how often
- Navigation patterns - How you move through the interface
- Performance metrics - Load times and responsiveness
- Error rates - When things don’t work as expected
Technical Information
We collect technical information to ensure compatibility and performance:
- VS Code version - To ensure compatibility
- Operating system - To optimize for different platforms
- Extension version - To track adoption of new features
- Screen resolution - To optimize UI design
Interaction Data
We collect interaction data to understand user behavior:
- Command usage - Which commands you execute
- UI interactions - Button clicks and form submissions
- Session duration - How long you use SnapBack
- Workflow patterns - Common sequences of actions
Data We Don’t Collect
We are committed to protecting your privacy and do NOT collect:
- Source code - Your actual code content
- File contents - The text of your files
- Personal identification - Beyond what’s necessary for account management
- Sensitive personal data - Health, financial, or other sensitive information
- Private repository names - Specific project identifiers
- API keys or secrets - Any authentication credentials
Privacy Controls
VS Code Extension Settings
You can control privacy settings in VS Code:
{
"snapback.privacy.consent": true,
"snapback.privacy.clipboard": true,
"snapback.privacy.watcher": true,
"snapback.privacy.gitWrapper": true
}
Web Dashboard Controls
You can manage cookie consent through the consent banner or by clearing your browser cookies for snapback.dev.
Data Processing & Security
Encryption
All data is transmitted over encrypted connections (HTTPS/TLS) and stored securely with appropriate access controls.
Access Controls
Analytics data is only accessible to authorized SnapBack team members who need it for product development and support.
Third-Party Services
We use PostHog for analytics processing, which has its own privacy policy.
GDPR Compliance
SnapBack is fully compliant with GDPR requirements:
- Explicit consent for data collection
- Right to access your data
- Right to rectification of your data
- Right to erasure of your data
- Right to data portability
- Privacy by design principles
Data Subject Rights
You can exercise your rights by contacting us at privacy@snapback.dev.
Data Retention
We retain analytics data for different periods based on its type:
- Usage analytics - 24 months
- Performance metrics - 12 months
- Error logs - 6 months
- Session replays - 3 months
You can request deletion of your data at any time.
Schema Documentation
Event Properties
We use a consistent schema for event properties:
| Property | Type | Description | Example |
|---|---|---|---|
event | string | Event name | snapshot_created |
timestamp | ISO date | When event occurred | 2023-01-01T12:00:00Z |
distinctId | string | Unique user identifier | user_12345 |
user_id | string | User identifier | user_12345 |
org_id | string | Organization identifier | org_67890 |
version | string | Extension version | 1.2.3 |
Privacy Filtering
All events pass through our privacy gate which:
- Filters out sensitive properties using an allow-list
- Blocks known patterns of sensitive data
- Scrubs potentially identifying information
Our privacy implementation uses an allow-list filtering approach to ensure only safe, anonymized data is collected.
Contact Us
For privacy questions or requests, contact us at:
For general support, contact:
Policy Updates
We may update this privacy policy from time to time. We’ll notify you of significant changes through:
- Email notification
- In-app messaging
- Website announcements
The latest version will always be available at this page.