-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprivacy.html
More file actions
104 lines (95 loc) · 5.05 KB
/
privacy.html
File metadata and controls
104 lines (95 loc) · 5.05 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Privacy Policy | dubltap.io</title>
<style>
:root { --ocean-deep: #264653; --sand-light: #FDF8F3; --sand-dark: #4A4238; --sunset-gold: #F4A261; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'DM Sans', system-ui, sans-serif; background: var(--sand-light); color: var(--sand-dark); line-height: 1.7; padding: 2rem; }
.container { max-width: 800px; margin: 0 auto; }
h1 { color: var(--ocean-deep); margin-bottom: 0.5rem; font-size: 2rem; }
h2 { color: var(--ocean-deep); margin: 1.5rem 0 0.75rem; font-size: 1.25rem; }
p, li { margin-bottom: 0.75rem; }
ul { padding-left: 1.5rem; }
a { color: var(--sunset-gold); }
.updated { font-size: 0.875rem; opacity: 0.7; margin-bottom: 1.5rem; }
.back { display: inline-block; margin-bottom: 1.5rem; color: var(--sunset-gold); text-decoration: none; }
</style>
</head>
<body>
<div class="container">
<a href="https://dubltap.io" class="back">← Back to dubltap.io</a>
<h1>Privacy Policy</h1>
<p class="updated">Last updated: February 6, 2026</p>
<h2>Overview</h2>
<p>dubltap.io LLC ("we", "our", "us") respects your privacy. This policy explains how we collect, use, and protect your information.</p>
<h2>Information We Collect</h2>
<ul>
<li><strong>Email address</strong> — When you sign up for our services</li>
<li><strong>Usage data</strong> — How you interact with our apps</li>
<li><strong>Payment information</strong> — Processed securely by Stripe; we never store card details</li>
</ul>
<h2>How We Use Your Information</h2>
<ul>
<li>To provide and improve our services</li>
<li>To send account updates (unsubscribe anytime)</li>
<li>To process payments</li>
</ul>
<h2>Third-Party Services</h2>
<p>We use trusted third parties:</p>
<ul>
<li><strong>Stripe</strong> — Payment processing</li>
<li><strong>Anthropic</strong> — AI processing</li>
<li><strong>Cloudflare</strong> — Security and performance</li>
</ul>
<h2>Data Security</h2>
<p>We use industry-standard security measures to protect your data. All connections are encrypted via HTTPS.</p>
<h2>Your Rights</h2>
<p>You can request to view, update, or delete your data at any time by emailing support@dubltap.io.</p>
<h2>Cookies</h2>
<p>We use essential cookies for functionality and localStorage for your preferences. No tracking cookies.</p>
<h2>Contact</h2>
<p>Questions? Use the form below to reach us.</p>
<form id="contactForm" style="margin-top: 1rem;">
<input type="text" id="contactName" placeholder="Your name" style="width: 100%; padding: 0.5rem; margin-bottom: 0.5rem; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;">
<input type="email" id="contactEmail" placeholder="Your email" required style="width: 100%; padding: 0.5rem; margin-bottom: 0.5rem; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box;">
<textarea id="contactMessage" placeholder="Your message" required rows="4" style="width: 100%; padding: 0.5rem; margin-bottom: 0.5rem; border: 1px solid #ccc; border-radius: 4px; resize: vertical; box-sizing: border-box;"></textarea>
<button type="submit" style="background: var(--sunset-gold); color: white; border: none; padding: 0.75rem 2rem; border-radius: 4px; cursor: pointer; font-size: 1rem;">Send Message</button>
<p id="contactStatus" style="margin-top: 0.5rem; display: none;"></p>
</form>
<script>
document.getElementById('contactForm').addEventListener('submit', async (e) => {
e.preventDefault();
const status = document.getElementById('contactStatus');
const btn = e.target.querySelector('button');
btn.disabled = true; btn.textContent = 'Sending...';
status.style.display = 'none';
try {
const res = await fetch('https://api.dubltap.io/api/contact', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
name: document.getElementById('contactName').value,
email: document.getElementById('contactEmail').value,
message: document.getElementById('contactMessage').value,
source: 'privacy-page'
})
});
const data = await res.json();
status.textContent = res.ok ? 'Message sent! We will get back to you soon.' : (data.error || 'Something went wrong.');
status.style.color = res.ok ? 'green' : 'red';
if (res.ok) e.target.reset();
} catch (err) {
status.textContent = 'Network error. Please try again.';
status.style.color = 'red';
}
status.style.display = 'block';
btn.disabled = false; btn.textContent = 'Send Message';
});
</script>
<p style="margin-top: 2rem; opacity: 0.7;">© 2026 dubltap.io LLC - ALL RIGHTS RESERVED</p>
</div>
</body>
</html>