-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprivacy.html
More file actions
172 lines (151 loc) · 8.36 KB
/
privacy.html
File metadata and controls
172 lines (151 loc) · 8.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy - SaneSales</title>
<meta name="description" content="SaneSales keeps sales data off SaneApps servers and stores provider keys in iCloud Keychain for your own Apple devices.">
<meta name="author" content="Mr. Sane">
<meta name="robots" content="index, follow">
<link rel="icon" type="image/png" sizes="32x32" href="favicon.png">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png">
<meta name="theme-color" content="#08080c">
<link rel="canonical" href="https://sanesales.com/privacy.html" />
<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:title" content="Privacy Policy - SaneSales">
<meta property="og:description" content="SaneSales keeps sales data off SaneApps servers and stores provider keys in iCloud Keychain for your own Apple devices.">
<meta property="og:image" content="https://sanesales.com/images/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://sanesales.com/privacy.html">
<meta property="og:site_name" content="SaneSales">
<meta property="og:locale" content="en_US">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Privacy Policy - SaneSales">
<meta name="twitter:description" content="SaneSales keeps sales data off SaneApps servers and stores provider keys in iCloud Keychain for your own Apple devices.">
<meta name="twitter:image" content="https://sanesales.com/images/og-image.png">
<meta name="twitter:site" content="@saneapps">
<meta name="twitter:url" content="https://sanesales.com/privacy.html">
<style>
:root {
--bg-primary: #08080c;
--bg-card: #16161f;
--accent: #34B062;
--text: #f5f5f8;
--text-muted: #d0d0e0;
--border: #252530;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif;
background: var(--bg-primary);
color: var(--text);
min-height: 100vh;
line-height: 1.8;
padding: 40px 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: var(--bg-card);
padding: 48px;
border-radius: 16px;
border: 1px solid var(--border);
}
h1 {
font-size: 2.5rem;
margin-bottom: 32px;
color: var(--accent);
}
h2 {
font-size: 1.5rem;
margin: 32px 0 16px;
color: var(--text);
}
p {
margin-bottom: 16px;
color: var(--text-muted);
}
ul {
margin: 16px 0;
padding-left: 24px;
color: var(--text-muted);
}
li {
margin-bottom: 8px;
}
a {
color: var(--accent);
}
.back-link {
display: inline-block;
margin-bottom: 24px;
color: var(--accent);
text-decoration: none;
}
.updated {
font-size: 0.9rem;
color: var(--text-muted);
margin-bottom: 32px;
}
</style>
</head>
<body>
<div class="container">
<a href="/" class="back-link">← Back to SaneSales</a>
<h1>Privacy Policy</h1>
<p class="updated">Last updated: May 2026</p>
<h2>Summary</h2>
<p><strong>SaneSales does not upload your sales data or API keys to SaneApps servers.</strong> Your provider API keys are stored in iCloud Keychain so your own Apple devices can reconnect automatically. Your sales data is fetched directly from LemonSqueezy, Gumroad, or Stripe. The app and website may send a few simple anonymous counts, such as whether the app opened in Basic or Pro, whether a locked feature was viewed, or whether a website download or purchase button was clicked. These counts do not use cookies, user IDs, advertising IDs, email addresses, sales data, API keys, page paths, or clicked URLs.</p>
<h2>Data Collection</h2>
<p>The SaneSales app does not collect:</p>
<ul>
<li>Personal information</li>
<li>Your sales data on SaneApps servers</li>
<li>Crash reports</li>
<li>Your provider API keys on SaneApps servers</li>
<li>Sales data or revenue information</li>
</ul>
<h2>Local Storage</h2>
<p>SaneSales stores the following data locally or in your Apple-provided Keychain storage:</p>
<ul>
<li><strong>Preferences:</strong> Standard iOS/macOS UserDefaults</li>
<li><strong>API Keys:</strong> Stored securely in iCloud Keychain for your own Apple devices</li>
<li><strong>Sales Data:</strong> Cached locally for offline viewing (never transmitted to SaneApps servers)</li>
</ul>
<p>Sales data is not transmitted to SaneApps servers. Provider keys may sync through Apple's iCloud Keychain when that Apple feature is enabled for your account.</p>
<h2>API Credentials</h2>
<p>SaneSales connects directly to LemonSqueezy, Gumroad, and Stripe APIs using your API keys. These keys are:</p>
<ul>
<li>Stored in iCloud Keychain for your own Apple devices</li>
<li>Never transmitted to SaneApps servers</li>
<li>Only used to fetch your sales data directly from the provider APIs</li>
</ul>
<h2>Network Access</h2>
<p>SaneSales accesses the network for:</p>
<ul>
<li><strong>API Requests:</strong> Direct communication with LemonSqueezy, Gumroad, and Stripe to fetch your sales data</li>
<li><strong>App Updates:</strong> Direct-download macOS builds check for updates via Sparkle (can be disabled in Settings). App Store builds use Apple's update system. No personal content is transmitted.</li>
<li><strong>Simple anonymous app and website counts:</strong> The app and website may send a few simple counts, such as whether the app opened in Basic or Pro, whether a locked feature was viewed, or whether a website download or purchase button was clicked. These do not include your API keys, order history, revenue data, name, email address, page path, clicked URL, advertising identifier, or cross-site tracking identifier.</li>
</ul>
<p>All API communication is encrypted (HTTPS). No sales data is sent to SaneApps servers.</p>
<h2>Third-Party Services</h2>
<p>SaneSales uses:</p>
<ul>
<li><strong>Apple iCloud Keychain:</strong> For syncing provider keys across your own Apple devices when enabled for your Apple account.</li>
<li><strong>Sparkle:</strong> For checking updates in direct-download macOS builds only. Only checks for updates from sanesales.com. No personal content is transmitted.</li>
<li><strong>LemonSqueezy API:</strong> To fetch your sales data (optional, only if you configure it)</li>
<li><strong>Gumroad API:</strong> To fetch your sales data (optional, only if you configure it)</li>
<li><strong>Stripe API:</strong> To fetch your sales data (optional, only if you configure it)</li>
<li><strong>SaneApps distribution service:</strong> Receives simple anonymous app and website button-click counts. These do not include your API keys or sales data.</li>
<li><strong>Cloudflare Web Analytics (website only):</strong> The sanesales.com website uses cookie-free aggregate traffic stats, such as page views and referrers. This applies to the website only, not the app.</li>
</ul>
<h2>100% Transparent Code</h2>
<p>SaneSales is 100% transparent code. You can review the code at <a href="https://github.com/sane-apps/SaneSales">github.com/sane-apps/SaneSales</a>.</p>
<h2>Contact</h2>
<p>Questions about privacy? Email <a href="mailto:hi@saneapps.com">hi@saneapps.com</a> or open an issue on <a href="https://github.com/sane-apps/SaneSales/issues/new?template=bug_report.md">GitHub</a>.</p>
</div>
</body>
</html>