-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathterms.html
More file actions
109 lines (99 loc) · 5.14 KB
/
terms.html
File metadata and controls
109 lines (99 loc) · 5.14 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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Terms of Service | 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>Terms of Service</h1>
<p class="updated">Last updated: February 6, 2026</p>
<h2>Agreement</h2>
<p>By using dubltap.io services, you agree to these terms. If you don't agree, please don't use our services.</p>
<h2>Our Services</h2>
<p>dubltap.io provides AI-powered productivity applications. We offer both free tiers and paid subscriptions.</p>
<h2>Your Account</h2>
<ul>
<li>You must provide accurate information</li>
<li>You're responsible for your account security</li>
<li>One account per person</li>
</ul>
<h2>Acceptable Use</h2>
<p>You agree NOT to:</p>
<ul>
<li>Use our services for illegal purposes</li>
<li>Attempt to hack or disrupt our systems</li>
<li>Resell or redistribute our services</li>
<li>Generate harmful, abusive, or misleading content</li>
</ul>
<h2>Payments & Refunds</h2>
<ul>
<li>Subscriptions auto-renew unless cancelled</li>
<li>Cancel anytime from your account</li>
<li>30-day money-back guarantee on annual plans</li>
<li>No refunds on monthly plans after use</li>
</ul>
<h2>AI-Generated Content</h2>
<p>Our apps use AI to generate content. You own outputs you create, but we're not liable for their accuracy or use.</p>
<h2>Limitation of Liability</h2>
<p>Our services are provided "as is." We're not liable for indirect damages, data loss, or business interruption.</p>
<h2>Changes to Terms</h2>
<p>We may update these terms. Continued use after changes means you accept the new terms.</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: 'terms-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>