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, & 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, & 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, & 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 & 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 & 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&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 © 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.