PageSourceSearch

https://www.tiptinker.com/pricing/

html tiptinker.com collected 2026-10-01 10:36:41 UTC 28,257 bytes, 562 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<title>TipTinker Pro - Chrome Extensions Pro Membership</title>
7<meta name="description" content="One simple pass to unlock advanced feature modules across all TipTinker Chrome extensions. 50+ web utilities remain 100% free forever.">
8<link rel="canonical" href="https://www.tiptinker.com/pricing/">
9<meta property="og:title" content="TipTinker Pro - Chrome Extensions Pro Membership">
10<meta property="og:description" content="Unlock advanced feature modules across all TipTinker Chrome extensions under one simple membership.">
11<meta property="og:url" content="https://www.tiptinker.com/pricing/">
12<link rel="icon" href="/assets/icon/cropped-icon-32x32.webp">
13<link rel="icon" href="/assets/icon/cropped-icon-192x192.webp">
14<link rel="apple-touch-icon" href="/assets/icon/cropped-icon-180x180.webp">
15<meta name="msapplication-TileImage" content="/assets/icon/cropped-icon-270x270.webp">
16<link rel="stylesheet" href="/assets/css/site.css?v=20260920">
17<link rel="stylesheet" href="/assets/css/tool-ui.css?v=20260920">
18<!-- PayPal SDK for Subscriptions -->
19<script src="https://www.paypal.com/sdk/js?client-id=BAAajSOwmWgLDsFLN0YlxaYj7cQ45N_JiidPOSTnOBJJKR4_KI-8VcgoF76dCH9g-R1OoS1Eg15mmtKuwE&vault=true&intent=subscription" data-sdk-integration-source="button-factory"></script>
19
20<!-- Google tag (gtag.js) -->
21<script async src="https://www.googletagmanager.com/gtag/id=G-FMTD6NQZER"></script>
vendor: 1 bytes, line 21
21
22<script>
vendor: 127 bytes, lines 23-26
23window.dataLayer = window.dataLayer || [];
24function gtag(){dataLayer.push(arguments);}
25gtag("js", new Date());
26gtag("config", "
26G-FMTD6NQZER
vendor: 4 bytes, line 26
26");
27</script>
27
28<style>
29/* Pricing Page Specific Styling */
30.pricing-hero {
31  text-align: center;
32  margin: 40px auto 48px;
33  max-width: 820px;
34  padding: 0 16px;
35}
36.pricing-badge {
37  display: inline-flex;
38  align-items: center;
39  gap: 6px;
40  padding: 6px 14px;
41  background: rgba(79, 70, 229, 0.08);
42  border: 1px solid rgba(79, 70, 229, 0.2);
43  border-radius: var(--radius-pill, 9999px);
44  color: var(--primary, #4f46e5);
45  font-size: 0.8125rem;
46  font-weight: 700;
47  text-transform: uppercase;
48  letter-spacing: 0.05em;
49  margin-bottom: 18px;
50}
51.pricing-hero h1 {
52  font-size: clamp(2rem, 4vw, 2.75rem);
53  font-weight: 800;
54  color: var(--text, #0f172a);
55  letter-spacing: -0.03em;
56  line-height: 1.15;
57  margin-bottom: 16px;
58}
59.pricing-hero p {
60  font-size: 1.125rem;
61  color: var(--muted, #64748b);
62  line-height: 1.6;
63  max-width: 720px;
64  margin: 0 auto;
65}
66
67/* Pricing Grid */
68.pricing-grid {
69  display: grid;
70  grid-template-columns: repeat(3, 1fr);
71  gap: 24px;
72  max-width: 1080px;
73  margin: 0 auto 64px auto;
74  padding: 0 16px;
75}
76@media (max-width: 900px) {
77  .pricing-grid {
78    grid-template-columns: 1fr;
79    max-width: 480px;
80  }
81}
82.pricing-card {
83  background: var(--surface, #ffffff);
84  border: 1px solid var(--line, rgba(15,23,42,0.1));
85  border-radius: var(--radius-lg, 20px);
86  padding: 32px 28px;
87  display: flex;
88  flex-direction: column;
89  position: relative;
90  transition: transform 0.2s ease, box-shadow 0.2s ease;
91  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,0.08));
92  box-sizing: border-box;
93}
94.pricing-card:hover {
95  transform: translateY(-3px);
96  box-shadow: var(--shadow-md, 0 4px 12px rgba(0,0,0,0.08));
97}
98.pricing-card--popular {
99  border: 2px solid var(--primary, #4f46e5);
100  box-shadow: var(--shadow-glow, 0 0 24px -4px rgba(79,70,229,0.25));
101}
102.popular-tag {
103  position: absolute;
104  top: -13px;
105  left: 50%;
106  transform: translateX(-50%);
107  background: var(--primary, #4f46e5);
108  color: #ffffff;
109  font-size: 0.75rem;
110  font-weight: 700;
111  padding: 4px 14px;
112  border-radius: var(--radius-pill, 9999px);
113  text-transform: uppercase;
114  letter-spacing: 0.05em;
115  white-space: nowrap;
116}
117.plan-name {
118  font-size: 1.25rem;
119  font-weight: 800;
120  margin-bottom: 6px;
121  color: var(--text, #0f172a);
122}
123.plan-desc {
124  font-size: 0.875rem;
125  color: var(--muted, #64748b);
126  min-height: 40px;
127  line-height: 1.45;
128  margin-bottom: 20px;
129}
130.plan-price {
131  display: flex;
132  align-items: baseline;
133  gap: 4px;
134  margin-bottom: 24px;
135  padding-bottom: 20px;
136  border-bottom: 1px solid var(--line, rgba(15,23,42,0.08));
137}
138.price-amount {
139  font-size: 2.6rem;
140  font-weight: 800;
141  color: var(--text, #0f172a);
142  letter-spacing: -0.03em;
143}
144.price-period {
145  font-size: 0.9375rem;
146  color: var(--muted, #64748b);
147  font-weight: 500;
148}
149.plan-features {
150  list-style: none;
151  padding: 0;
152  margin: 0 0 32px 0;
153  flex-grow: 1;
154}
155.plan-features li {
156  font-size: 0.9rem;
157  color: var(--text-soft, #334155);
158  margin-bottom: 14px;
159  display: flex;
160  align-items: flex-start;
161  gap: 10px;
162  line-height: 1.45;
163}
164.plan-features svg {
165  color: #10b981;
166  flex-shrink: 0;
167  margin-top: 2px;
168}
169.btn-plan {
170  display: block;
171  width: 100%;
172  text-align: center;
173  padding: 13px 20px;
174  border-radius: var(--radius-sm, 10px);
175  font-weight: 700;
176  font-size: 0.95rem;
177  text-decoration: none;
178  cursor: pointer;
179  transition: all 0.2s;
180  border: none;
181}
182.btn-plan--primary {
183  background: var(--primary, #4f46e5);
184  color: #ffffff;
185}
186.btn-plan--primary:hover {
187  background: var(--primary-hover, #4338ca);
188}
189
190.plan-action {
191  margin-top: auto;
192  display: flex;
193  flex-direction: column;
194  justify-content: flex-start;
195}
196.lifetime-trust-card {
197  margin-top: 14px;
198  padding: 12px 14px;
199  background: var(--surface-subtle, rgba(248, 250, 252, 0.8));
200  border: 1px solid var(--line, rgba(15, 23, 42, 0.08));
201  border-radius: var(--radius-sm, 10px);
202  display: flex;
203  flex-direction: column;
204  gap: 7px;
205  font-size: 0.8125rem;
206  color: var(--muted, #64748b);
207  box-sizing: border-box;
208}
209.lifetime-trust-item {
210  display: flex;
211  align-items: center;
212  gap: 8px;
213  line-height: 1.4;
214}
215.lifetime-trust-item svg {
216  flex-shrink: 0;
217}
218
219/* Pricing Guarantee Note */
220.pricing-note {
221  text-align: center;
222  margin: -36px auto 56px auto;
223  font-size: 0.875rem;
224  color: var(--muted, #64748b);
225  line-height: 1.5;
226  padding: 0 16px;
227}
228
229/* FAQ Grid */
230.pricing-faq {
231  margin: 0 auto 64px auto;
232  max-width: 980px;
233  padding: 0 16px;
234}
235.pricing-faq h2 {
236  font-size: 1.85rem;
237  font-weight: 800;
238  text-align: center;
239  margin-bottom: 36px;
240  color: var(--text, #0f172a);
241}
242.faq-grid {
243  display: grid;
244  grid-template-columns: 1fr 1fr;
245  gap: 24px;
246}
247@media(max-width: 768px) {
248  .faq-grid { grid-template-columns: 1fr; }
249}
250.faq-item {
251  background: var(--surface, #ffffff);
252  border: 1px solid var(--line, rgba(15,23,42,0.08));
253  border-radius: var(--radius-md, 14px);
254  padding: 22px 24px;
255}
256.faq-item h3 {
257  font-size: 1.05rem;
258  font-weight: 700;
259  margin-bottom: 8px;
260  color: var(--text, #0f172a);
261}
262.faq-item p {
263  font-size: 0.9rem;
264  color: var(--muted, #64748b);
265  line-height: 1.6;
266  margin: 0;
267}
268</style>
269</head>
270<body>
271<a class="skip-link" href="#content">Skip to content</a>
272<header class="site-header"><div class="site-header-inner"><div class="site-branding"><h1 class="site-title"><a href="https://www.tiptinker.com/" rel="home">TipTinker</a></h1></div><nav class="site-nav" id="siteNav" aria-label="Main Navigation"><a href="/#extensions">Extensions</a><a href="/#tools">Web Tools</a><a href="/pricing/">Pricing</a><a href="/about-us/">About Us</a><a href="/contact-us/">Contact</a></nav><div class="header-action"><div id="headerAuthSlot" class="header-auth-slot"></div><button type="button" class="nav-toggle" id="navToggle" aria-label="Toggle Navigation" aria-expanded="false"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg></button></div></div></header>
273
274<main id="content" class="site-main"><div class="page-shell">
275
276<!-- Hero Section -->
277<div class="pricing-hero">
278  <div class="pricing-badge">
279    <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"></path></svg>
280    <span>TipTinker Pro Pass</span>
281  </div>
282  <h1>One Membership. Unlock Advanced Modules in All Chrome Extensions.</h1>
283</div>
284
285<!-- Pricing Cards Grid -->
286<div class="pricing-grid">
287
288  <!-- Monthly -->
289  <div class="pricing-card">
290    <div class="plan-name">Pro Monthly</div>
291    <div class="plan-desc">Flexible month-to-month access to all Chrome extension Pro modules.</div>
292    <div class="plan-price">
293      <span class="price-amount">$4.99</span>
294      <span class="price-period">/ month</span>
295    </div>
296    <ul class="plan-features">
297      <li>
298        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
299        <span><strong>All Chrome extension Pro modules</strong> unlocked</span>
300      </li>
301      <li>
302        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
303        <span>One account activates across all extensions</span>
304      </li>
305      <li>
306        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
307        <span>Syncs across desktop, laptop, &amp; work profiles</span>
308      </li>
309    </ul>
310    <div class="plan-action">
311      <div id="paypal-button-container-monthly" style="min-height: 48px;"></div>
312    </div>
313  </div>
314
315  <!-- Yearly (Popular) -->
316  <div class="pricing-card pricing-card--popular">
317    <div class="popular-tag">Best Value · Save 33%</div>
318    <div class="plan-name">Pro Yearly</div>
319    <div class="plan-desc">Maximum savings for active daily developers and creators.</div>
320    <div class="plan-price">
321      <span class="price-amount">$39.99</span>
322      <span class="price-period">/ year</span>
323    </div>
324    <ul class="plan-features">
325      <li>
326        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
327        <span><strong>All Chrome extension Pro modules</strong> unlocked</span>
328      </li>
329      <li>
330        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
331        <span>One account activates across all extensions</span>
332      </li>
333      <li>
334        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
335        <span>Syncs across desktop, laptop, &amp; work profiles</span>
336      </li>
337    </ul>
338    <div class="plan-action">
339      <div id="paypal-button-container-yearly" style="min-height: 48px;"></div>
340    </div>
341  </div>
342
343  <!-- Lifetime -->
344  <div class="pricing-card">
345    <div class="plan-name">Lifetime Deal</div>
346    <div class="plan-desc">Pay once, own forever. Never worry about recurring subscription fees.</div>
347    <div class="plan-price">
348      <span class="price-amount">$69.99</span>
349      <span class="price-period">/ one-time</span>
350    </div>
351    <ul class="plan-features">
352      <li>
353        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
354        <span><strong>All Chrome extension Pro modules</strong> unlocked</span>
355      </li>
356      <li>
357        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
358        <span>One account activates across all extensions</span>
359      </li>
360      <li>
361        <svg viewBox="0 0 20 20" width="18" height="18" fill="currentColor"><path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/></svg>
362        <span>Syncs across desktop, laptop, &amp; work profiles</span>
363      </li>
364    </ul>
365    <div class="plan-action">
366      <button onclick="checkoutPlan('lifetime')" class="btn-plan btn-plan--primary" style="padding: 14px 20px; box-shadow: 0 4px 12px rgba(79,70,229,0.25);">Get Lifetime Access</button>
367      <div class="lifetime-trust-card">
368        <div class="lifetime-trust-item">
369          <svg viewBox="0 0 20 20" width="14" height="14" fill="#10b981"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg>
370          <span style="font-weight: 500; color: var(--text, #0f172a);">One-time payment · Never recurring</span>
371        </div>
372        <div class="lifetime-trust-item">
373          <svg viewBox="0 0 20 20" width="14" height="14" fill="#6366f1"><path d="M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z"/><path fill-rule="evenodd" d="M18 9H2v5a2 2 0 002 2h12a2 2 0 002-2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-2H9z" clip-rule="evenodd"/></svg>
374          <span>PayPal, Debit &amp; Credit Cards</span>
375        </div>
376        <div class="lifetime-trust-item">
377          <svg viewBox="0 0 20 20" width="14" height="14" fill="#0ea5e9"><path fill-rule="evenodd" d="M2.166 4.999A11.954 11.954 0 0010 1.944 11.954 11.954 0 0017.834 5c.11.65.166 1.32.166 2.001 0 5.225-3.34 9.67-8 11.317C5.34 16.67 2 12.225 2 7c0-.682.057-1.35.166-2.001zm11.541 3.708a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/></svg>
378          <span>Instant license activation</span>
379        </div>
380      </div>
381    </div>
382  </div>
383</div><!-- /pricing-grid -->
384
385<p class="pricing-note">
386  🔒 <strong>Virtual digital products:</strong>
386 All purchases and subscriptions are final and non-refundable. You can cancel recurring subscriptions anytime with 1 click.
387</p>
388
389<!-- FAQ -->
390<div class="pricing-faq">
391  <h2>Frequently Asked Questions</h2>
392  <div class="faq-grid">
393    <div class="faq-item">
394      <h3>What does TipTinker Pro unlock?</h3>
395      <p>
396        A single Pro pass unlocks the advanced feature modules across all TipTinker Chrome extensions. All 50+ web utilities on our site and core extension features remain 100% free forever.
397      </p>
398    </div>
399    <div class="faq-item">
400      <h3>Can I use my subscription across multiple devices?</h3>
401      <p>
402        Yes! Your Pro entitlement is tied to your account email, allowing you to use Pro modules across your laptop, desktop, and multiple browser profiles seamlessly.
403      </p>
404    </div>
405    <div class="faq-item">
406      <h3>What is the refund policy?</h3>
407      <p>
408        Because TipTinker Pro is a virtual digital product with instant software feature unlock, all sales and subscription renewals are final and n
408on-refundable. You can cancel recurring subscriptions anytime with zero future charges.
409      </p>
410    </div>
411    <div class="faq-item">
412      <h3>What payment methods are supported?</h3>
413      <p>
414        Payments are processed securely via PayPal Business. You can pay using your PayPal balance or directly with any major Credit/Debit Card (Visa, MasterCard, American Express).
415      </p>
416    </div>
417  </div>
418</div>
419
420</div></main>
421
422<footer class="site-footer"><div class="site-footer-shell"><div class="site-footer-card"><div class="site-footer-main"><div class="site-footer-brand"><a href="https://www.tiptinker.com/" class="site-footer-brand-link" rel="home" aria-label="TipTinker Home"><img src="/assets/icon/cropped-icon-32x32.webp" alt="TipTinker" width="30" height="30" class="site-footer-icon"><span class="site-footer-name">TipTinker</span></a><p class="site-footer-tagline">Engineering high-performance browser extensions &amp; privacy-first web utilities.</p></div><div class="site-footer-actions"><nav class="site-social" aria-label="Social media"><a href="https://www.facebook.com/tiptinker/" class="site-social-link site-social-link--facebook" aria-label="Facebook" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z"/></svg></a><a href="https://x.com/tip_tinker" class="site-social-link site-social-link--x" aria-label="X" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg></a><a href="https://www.instagram.com/tiptinker/" class="site-social-link site-social-link--instagram" aria-label="Instagram" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M12 2.163c3.204 0 3.584.012 4.85.07 1.366.062 2.633.334 3.608 1.308.974.974 1.246 2.241 1.308 3.608.058 1.266.07 1.646.07 4.85s-.012 3.584-.07 4.85c-.062 1.366-.334 2.633-1.308 3.608-.974.974-2.241 1.246-3.608 1.308-1.266.058-1.646.07-4.85.07s-3.584-.012-4.85-.07c-1.366-.062-2.633-.334-3.608-1.308-.974-.974-1.246-2.241-1.308-3.608C2.175 15.747 2.163 15.367 2.163 12s.012-3.584.07-4.85c.062-1.366.334-2.633 1.308-3.608.974-.974 2.241-1.246 3.608-1.308C8.416 2.175 8.796 2.163 12 2.163zm0 1.622c-3.15 0-3.524.012-4.758.069-1.026.047-1.584.218-1.955.363-.492.192-.843.422-1.211.79-.368.368-.598.719-.79 1.211-.145.371-.316.929-.363 1.955-.057 1.234-.069 1.608-.069 4.758s.012 3.524.069 4.758c.047 1.026.218 1.584.363 1.955.192.492.422.843.79 1.211.368.368.719.598 1.211.79.371.145.929.316 1.955.363 1.234.057 1.608.069 4.758.069s3.524-.012 4.758-.069c1.026-.047 1.584-.218 1.955-.363.492-.192.843-.422 1.211-.79.368-.368.598-.719.79-1.211.145-.371.316-.929.363-1.955.057-1.234.069-1.608.069-4.758s-.012-3.524-.069-4.758c-.047-1.026-.218-1.584-.363-1.955-.192-.492-.422-.843-.79-1.211-.368-.368-.719-.598-1.211-.79-.371-.145-.929-.316-1.955-.363-1.234-.057-1.608-.069-4.758-.069zm0 3.351a5.864 5.864 0 1 1 0 11.728 5.864 5.864 0 0 1 0-11.728zm0 1.622a4.242 4.242 0 1 0 0 8.484 4.242 4.242 0 0 0 0-8.484zm6.406-4.845a1.44 1.44 0 1 1-2.881 0 1.44 1.44 0 0 1 2.881 0z"/></svg></a><a href="https://www.threads.com/@tiptinker" class="site-social-link site-social-link--threads" aria-label="Threads" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M9.774 0C4.373 0 0 4.371 0 9.771v4.457c0 5.4 4.373 9.771 9.774 9.771h4.452c5.4 0 9.774-4.371 9.774-9.771V9.771C24 4.371 19.627 0 14.226 0H9.774zm0 2.229h4.452c4.179 0 7.545 3.366 7.545 7.542v4.457c0 4.176-3.366 7.542-7.545 7.542H9.774c-4.179 0-7.545-3.366-7.545-7.542V9.771c0-4.176 3.366-7.542 7.545-7.542zm5.728 5.626c-2.408-.01-4.229.83-5.59 2.072-1.362 1.242-2.185 3.018-2.31 5.342-.125 2.324.417 4.298 1.624 5.922 1.206 1.624 2.957 2.454 5.253 2.49 2.296.035 4.116-.763 5.46-2.405 1.343-1.642 1.948-3.792 1.815-6.446l-2.203.327c.075 2.05-.333 3.553-1.225 4.512-.892.959-2.222 1.442-3.99 1.442-1.767 0-3.136-.51-4.108-1.53-.973-1.02-1.465-2.505-1.474-4.456-.01-1.95.45-3.418 1.38-4.404.931-.986 2.26-1.48 3.992-1.48 1.492 0 2.668.428 3.532 1.284.864.856 1.396 2.094 1.594 3.714l2.213-.284c-.266-2.075-1.054-3.663-2.365-4.763-1.31-1.101-3.08-1.654-5.311-1.658z"/></svg></a><a href="https://bsky.app/profile/tiptinker.bsky.social" class="site-social-link site-social-link--bluesky" aria-label="Bluesky" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true">
422<path fill="currentColor" d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276-.042-.415-.056-3.912.58-7.387 2.37-2.829 8.386 5.016 5.187 6.866-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-7.806-2.739-8.386-.139.014-.277.036-.415.056.14-.017.279-.036.415-.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.788.624-6.478 0-.69-.139-1.861-.902-2.203-.659-.299-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8z"/></svg></a><a href="https://github.com/tiptinker" class="site-social-link site-social-link--github" aria-label="GitHub" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" width="16" height="16" aria-hidden="true"><path fill="currentColor" d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.404 1.02.005 2.04.137 3 .404 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297 24 5.373 18.627.297 12 .297"/></svg></a></nav><div class="site-footer-stores" aria-label="Android apps"><a href="https://play.google.com/store/apps/dev?id=4966279138774689150&amp;hl=en" class="site-store-btn" target="_blank" rel="noopener noreferrer" title="Google Play" aria-label="Google Play"><svg width="18" height="18" viewBox="0 0 24 24" fill="none"><path d="M3.609 1.814L13.793 12 3.61 22.186c-.367-.323-.61-.83-.61-1.42V3.234c0-.59.243-1.097.61-1.42z" fill="#00E676"/><path d="M17.227 8.567L4.697.74c-.347-.216-.738-.282-1.088-.173L13.793 12l3.434-3.433z" fill="#FFD600"/><path d="M17.227 15.433L13.793 12 3.61 22.186c.35.11.74.043 1.087-.173l12.53-7.827c.725-.453.725-1.19 0-1.644z" fill="#FF1744"/><path d="M21.28 11.178l-4.053-2.611L13.793 12l3.434 3.433 4.053-2.611c.725-.454.725-1.19 0-1.644z" fill="#00B0FF"/></svg><span>Google Play</span></a></div></div></div><div class="site-footer-meta"><p class="site-footer-copy">Copyright &copy; TipTinker.com. All rights reserved.</p><nav class="site-footer-legal" aria-label="Legal"><a href="/privacy-policy/">Privacy Policy</a><a href="/terms/">Terms of Service</a><a href="/contact-us/">Contact Us</a></nav></div></div></div></footer>
423
424<script>
425const API_BASE = "https://api.tiptinker.com";
426
427function getCheckoutSession() {
428  let user = null;
429  try { user = JSON.parse(localStorage.getItem("tt_user") || "null"); } catch {}
430  const token = localStorage.getItem("tt_token") || "";
431  if (!token || !user?.email || !user.email.includes("@")) return null;
432  return { token, user };
433}
434
435function requireCheckoutSession() {
436  const session = getCheckoutSession();
437  if (!session) {
438    window.location.href = "/signin/?redirect=" + encodeURIComponent("/pricing/");
439    return null;
440  }
441  return session;
442}
443
444// Initialize PayPal buttons once SDK is loaded
445document.addEventListener("DOMContentLoaded", () => {
446  const checkPayPal = setInterval(() => {
447    if (window.paypal && paypal.Buttons) {
448      clearInterval(checkPayPal);
449      renderPayPalButtons();
450    }
451  }, 200);
452});
453
454function renderPayPalButtons() {
455  if (!window.paypal || !paypal.Buttons) return;
456
457  // 1. Monthly Plan ($4.99/mo)
458  const monthlyEl = document.getElementById("paypal-button-container-monthly");
459  if (monthlyEl && !monthlyEl.hasChildNodes()) {
460    paypal.Buttons({
461      style: {
462        shape: "rect",
463        color: "gold",
464        layout: "vertical",
465        label: "subscribe"
466      },
467      createSubscription: function(data, actions) {
468        const session = requireCheckoutSession();
469        if (!session) return Promise.reject(new Error("Sign in required"));
470        return actions.subscription.create({
471          plan_id: "P-5FX68907S96137602NKXHKDQ",
472          custom_id: session.user.email
473        });
474      },
475      onApprove: function(data, actions) {
476        refreshMembershipAfterPayment(data.subscriptionID);
477      }
478    }).render("#paypal-button-container-monthly");
479  }
480
481  // 2. Yearly Plan ($39.99/yr)
482  const yearlyEl = document.getElementById("paypal-button-container-yearly");
483  if (yearlyEl && !yearlyEl.hasChildNodes()) {
484    paypal.Buttons({
485      style: {
486        shape: "rect",
487        color: "gold",
488        layout: "vertical",
489        label: "subscribe"
490      },
491      createSubscription: function(data, actions) {
492        const session = requireCheckoutSession();
493        if (!session) return Promise.reject(new Error("Sign in required"));
494        return actions.subscription.create({
495          plan_id: "P-7F488481MC9929517NKXHOPA",
496          custom_id: session.user.email
497        });
498      },
499      onApprove: function(data, actions) {
500        refreshMembershipAfterPayment(data.subscriptionID);
501      }
502    }).render("#paypal-button-container-yearly");
503  }
504}
505
506// PayPal Plan & Hosted Button Links
507const PAYPAL_LINKS = {
508  monthly: "https://www.paypal.com/webapps/billing/plans/subscribe?plan_id=P-5FX68907S96137602NKXHKDQ",
509  yearly: "https://www.paypal.com/webapps/billing/plans/subscribe?plan_id=P-7F488481MC9929517NKXHOPA",
510  lifetime: "https://www.paypal.com/ncp/payment/PJJTPP3X74YXA"
511};
512
513function checkoutPlan(planType) {
514  const session = requireCheckoutSession();
515  const targetUrl = PAYPAL_LINKS[planType];
516
517  if (!targetUrl) {
518    alert("Checkout link is being updated. Please try again shortly.");
519    return;
520  }
521
522  if (session) proceedToPayPal(targetUrl);
523}
524
525function proceedToPayPal(targetUrl) {
526  window.location.href = targetUrl;
527}
528
529async function refreshMembershipAfterPayment(paymentId) {
530  const session = getCheckoutSession();
531  if (!session) return;
532  for (let attempt = 0; attempt < 5; attempt += 1) {
533    try {
534      const res = await fetch(`${API_BASE}/api/user/me`, {
535        headers: { "Authorization": "Bearer " + session.token }
536      });
537      const data = await res.json();
538      if (res.ok && data.success && data.user) {
539        localStorage.setItem("tt_user", JSON.stringify(data.user));
540        if (data.user.isPro) {
541          alert("🎉 Payment confirmed. TipTinker Pro is active across all supported extensions.");
542          return;
543        }
544      }
545    } catch {}
546    await new Promise((resolve) => setTimeout(resolve, 1500));
547  }
548  alert("Payment received. The payment provider is still notifying TipTinker; please refresh this page in a moment.");
549}
550
551// URL Return Param Detection
552window.addEventListener("DOMContentLoaded", () => {
553  const urlParams = new URLSearchParams(window.location.search);
554  if (urlParams.has("payment") && urlParams.get("payment") === "success") {
555    refreshMembershipAfterPayment(urlParams.get("transaction_id") || "");
556  }
557});
558</script>
vendor: 1 bytes, line 558
558
559<script src="/assets/js/tiptinker.js" defer></script>
vendor: 1 bytes, line 559
559
560<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"dd6d18e22a3047598ec1d83576298561","r":1,"spa":2}' crossorigin="anonymous"></script>
560
561</body>
562</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.