Privacy Policy
How we protect and handle your data
Diffshot (“we,” “us,” or “our”) operates the Diffshot application and website at diffshot.app. This Privacy Policy explains how we collect, use, and protect your information when you use our service.
By using Diffshot, you agree to the collection and use of information as described in this policy.
1. Information We Collect
Account Information
When you create an account, we collect:
- Email address (via Clerk authentication)
- GitHub username and profile information (via GitHub OAuth)
GitHub Data
When you connect a GitHub repository and trigger a changelog via the API or GitHub Action, we access:
- Repository names and metadata
- Pull request titles, descriptions, and merge metadata
- Diff content (file patches) for the merged PR
- File addition/deletion counts and changed file paths
- PR author and merge author usernames
Diff content is processed transiently for AI summarization and is NOT stored permanently. We retain only the generated summary, category, and PR metadata. We do not store your full source code, environment variables, or secrets.
Integration Data
When you configure Slack or Discord webhooks, we store:
- Webhook URLs (masked in the UI after creation)
- Channel names (optional, for your reference)
- Delivery status and message IDs for idempotency
API Keys
API keys are SHA-256 hashed before storage. We store only the hash and a prefix for identification. The plaintext key is shown once at creation and cannot be recovered.
Usage Data
- Number of changelogs generated per month (for rate limiting)
- API key usage timestamps
- Account plan type (free or pro)
Payment Information
If you upgrade to Pro, payment is processed by Polar.sh, who acts as our Merchant of Record. Polar handles all payment processing, VAT collection, tax compliance, and invoicing under their own privacy policy. We do not store your credit card number, bank account details, or other sensitive financial information.
2. How We Use Your Information
We use the collected information to:
- Authenticate your account and manage your session
- Fetch pull request data from your GitHub repositories
- Generate AI-powered changelog summaries using Anthropic Claude
- Render visual changelog cards (OG images)
- Deliver changelogs to your configured Slack and Discord channels
- Track API usage for rate limiting and plan enforcement
- Process payments for Pro subscriptions
- Send essential service communications (account issues, critical updates)
We do not use your information to:
- Sell or rent your data to third parties
- Send marketing emails (unless you explicitly opt in)
- Train AI models on your data
- Track you across other websites
3. Third-Party Services
Diffshot uses the following third-party services that may process your data:
| Service | Purpose | Data Shared |
|---|---|---|
| Clerk | Authentication | Email, GitHub profile |
| Convex | Database and backend | Account data, changelogs, integration config |
| GitHub API | Fetching PR data | OAuth token (to read your repos and PRs) |
| Anthropic Claude | AI changelog summarization | PR diff content, titles, file paths (transient) |
| Slack / Discord | Webhook delivery | Changelog summaries, OG card URLs |
| Polar.sh | Payment processing (MoR) | Payment method, billing info |
| Vercel | Hosting | Standard server logs |
Each third-party service operates under its own privacy policy. We encourage you to review their policies.
4. Data Sent to AI
When generating changelog summaries, we send the following data to the Anthropic Claude API:
- Pull request title and description
- Diff content (file patches), trimmed to ~12,000 characters with priority given to source files over tests/config
- File addition/deletion statistics
Diff content is sent transiently to the AI and is NOT stored by Diffshot after processing. The AI generates a plain-English summary and category based on the diff. Anthropic does not use API inputs for model training.
5. Data Storage and Security
- Your data is stored on Convex’s secure cloud infrastructure
- API keys are SHA-256 hashed before storage — we never store plaintext keys
- Webhook URLs are masked in the dashboard UI after creation
- We use HTTPS for all data transmission
- Authentication is handled via Clerk with GitHub OAuth — we do not store passwords
- Webhook signature verification uses constant-time comparison to prevent timing attacks
6. Data Retention
- Your account data is retained as long as your account is active
- Generated changelogs (summaries, categories, PR metadata) are retained as long as your account exists
- Diff content is processed transiently and not stored after AI summarization
- If you delete your account, all your data (changelogs, API keys, integrations, repos) is deleted immediately
- Clerk webhook handles user deletion to ensure complete data cleanup
7. Your Rights
Under GDPR (as we operate from the European Union), you have the right to:
- Access your personal data
- Correct inaccurate data
- Delete your account and associated data
- Export your data in a portable format
- Withdraw consent at any time
- Object to data processing
To exercise any of these rights, contact us at legal@diffshot.app.
9. Children's Privacy
Diffshot is not intended for use by anyone under the age of 16. We do not knowingly collect personal information from children.
10. Revoking Access
You can revoke Diffshot's access at any time:
- GitHub: Go to GitHub Settings → Applications → Authorized OAuth Apps → Revoke Diffshot
- API Keys: Revoke any API key from the Integrations page in your dashboard
- Webhooks: Remove or pause Slack/Discord webhooks from the Integrations page
- Account deletion: Use the Danger Zone in your account settings or contact legal@diffshot.app.
11. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify you of significant changes by posting a notice on our website. Your continued use of Diffshot after changes constitutes acceptance of the updated policy.
12. Contact
If you have questions about this Privacy Policy, contact us at: