1<!DOCTYPE html> 2<html lang="en" class="scroll-smooth"> 3 <head> 4 <title data-suffix=" - Autoshopz">Terms of Service - Autoshopz</title> 5 <meta name="csrf-token" content="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91"> 6 7 <meta charset="utf-8"> 8 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 10 <meta name="description" content=""> 11 12 <link rel="icon" href="/images/favicon-814dbf680f022d9f80f3a7fb0ae8e06a.png?vsn=d"> 13 <link rel="manifest" href="/manifest-e9d4480c1f686976449d5e5ca80b11d3.webmanifest?vsn=d"> 14 <link rel="apple-touch-icon" href="/images/pwa/apple-touch-icon-40811b9ab3ed58ab2fe41ac0506f45f6.png?vsn=d"> 15 <meta name="theme-color" content="#155dfc" media="(prefers-color-scheme: light)"> 16 <meta name="theme-color" content="#030712" media="(prefers-color-scheme: dark)"> 17 <!-- Open Graph (used by Facebook/Twitter). See layout_view.ex for relevant function --> 18 <meta property="og:type" content="website"> 19 <meta property="og:url" content="http://clark.fly.dev/license"> 20 <meta property="og:title" content="Terms of Service"> 21 <meta property="og:description" content=""> 22 <meta property="og:image" content="http://clark.fly.dev/images/open-graph-dd0ad15350741ee6d6a32705653bb027.png?vsn=d"> 23 <meta property="og:image:width" content="1200"> 24 <meta property="og:image:height" content="630"> 25 <meta property="og:image:type" content="image/png"> 26 <!-- Twitter only --> 27 <meta name="twitter:card" content="summary"> 28 <meta name="twitter:site" content=""> 29 <meta name="twitter:creator" content=""> 30 <!-- Helps keep 80% of duplicate content errors on Google away by default --> 31 <link rel="canonical" href="/license"> 32 33 <link async defer phx-track-static rel="stylesheet" href="/assets/app-7a8cd1e41fd6a0927e77238a5e8d5c75.css?vsn=d"> 34 35
35<script> 36 window.userToken = ""; 37 </script>
37 38
38<script defer phx-track-static type="text/javascript" src="/assets/app-d8213e94152358656c7846789af7776a.js?vsn=d"> 39 </script>
39 40 41
41<script> 42 (() => { 43 const KEY = "scheme"; 44 const media = window.matchMedia("(prefers-color-scheme: dark)"); 45 const preference = () => { 46 try { 47 return localStorage.getItem(KEY) || "system"; 48 } catch (_e) { 49 return "system"; 50 } 51 }; 52 const resolved = () => { 53 const pref = preference(); 54 return pref === "system" ? (media.matches ? "dark" : "light") : pref; 55 }; 56 const apply = () => { 57 document.documentElement.classList.toggle("dark", resolved() === "dark"); 58 window.dispatchEvent( 59 new CustomEvent("petal:scheme-changed", { 60 detail: { preference: preference(), resolved: resolved() }, 61 }) 62 ); 63 }; 64 window.PetalColorScheme = { 65 preference, 66 resolved, 67 set(pref) { 68 // storage can throw (private browsing, sandboxed iframes) - 69 // the scheme still applies for this page view 70 try { 71 if (pref === "system") localStorage.removeItem(KEY); 72 else localStorage.setItem(KEY, pref); 73 } catch (_e) {} 74 apply(); 75 }, 76 }; 77 media.addEventListener("change", () => { 78 if (preference() === "system") apply(); 79 }); 80 window.addEventListener("storage", (e) => { 81 if (e.key === KEY || e.key === null) apply(); 82 }); 83 apply(); 84 })(); 85</script>
85 86
86<script> 87 // The theme-color metas above are media-scoped, so they only ever track the OS 88 // preference. Repaint both from the resolved in-app scheme -- inline, because a 89 // deferred bundle would land after first paint and flash the wrong colour. 90 (() => { 91 // Assumes exactly one light-media and one dark-media meta above; a third 92 // would collapse into whichever of the two keys its media matched. 93 const metas = [...document.querySelectorAll('meta[name="theme-color"]')]; 94 const colors = Object.fromEntries( 95 metas.map((el) => [(el.getAttribute("media") || "").includes("dark") ? "dark" : "light", el.content]) 96 ); 97 const paint = (resolved) => 98 metas.forEach((el) => el.setAttribute("content", colors[resolved] || colors.light)); 99 100 window.addEventListener("petal:scheme-changed", (e) => paint(e.detail?.resolved)); 101 102 if (window.PetalColorScheme) { 103 paint(window.PetalColorScheme.resolved()); 104 } else { 105 console.warn("[theme-color] PetalColorScheme missing; metas left on the OS preference"); 106 } 107 })(); 108 </script>
108 109 110</head> 111 112 <body class="font-sans antialiased text-gray-600 bg-white dark:text-gray-400 dark:bg-gray-950"> 113
114<script> 115 // When you scroll down, you will notice the navbar becomes translucent. 116 function makeHeaderTranslucentOnScroll() { 117 const header = document.querySelector("header"); 118 if (header) { 119 const distanceFromTop = window.scrollY; 120 distanceFromTop > 0 121 ? header.classList.add("is-active") 122 : header.classList.remove("is-active"); 123 } 124 } 125</script>
125 126 127<style> 128 /* Hover effects for the top menu */ 129 header .menu-item { 130 position: relative; 131 } 132 133 header .menu-item:before { 134 content: ''; 135 position: absolute; 136 right: 0; 137 width: 0; 138 bottom: 0; 139 height: 2px; 140 background: #4b5563; 141 transition: 0.3s all ease; 142 } 143 144 .dark header .menu-item:before { 145 background: #ccc; 146 } 147 148 header .menu-item:hover:before { 149 left: 0; 150 width: 100%; 151 } 152 153 header .menu-item.is-active:before { 154 left: 0; 155 width: 100%; 156 } 157 158 /* Translucent effects for the the navbar when you scroll down the page */ 159 header.is-active { 160 background: rgba(255, 255, 255, .55); 161 @apply shadow; 162 } 163 164 .dark header.is-active { 165 background: rgba(0,0,0,.45); 166 @apply shadow; 167 } 168 169 header.is-active.semi-translucent { 170 backdrop-filter: saturate(180%) blur(10px); 171 -webkit-backdrop-filter: saturate(180%) blur(10px); 172 -moz-backdrop-filter: saturate(180%) blur(10px); 173 } 174</style> 175 176<div id="flash_group" class="fixed bottom-0 right-0 z-[9999] w-5/6 max-w-sm m-4 space-y-4"> 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 <div id="disconnected" phx-disconnected="[["show",{"time":300,"to":"#disconnected","transition":[["transition-all","transform","ease-out","duration-300"],["opacity-0"],["opacity-100"]]}]]" phx-connected="[["hide",{"to":"#disconnected","transition":[["transition-all","transform","ease-in","duration-200"],["opacity-100"],["opacity-0"]]}]]" hidden> 200 <div id="disconnected-flash" phx-hook="ClearFlashHook" phx-mounted="[["show",{"time":300,"to":"#disconnected-flash","transition":[["transition-all","transform","ease-out","duration-300"],["opacity-0"],["opacity-100"]]}]]" data-timer-length="99999" data-type="error" data-is-static="true" class="bg-danger-600 rounded-lg shadow-lg text-white sm:w-full hidden group"> 201 <div class="overflow-hidden rounded-lg shadow-xs"> 202 203 <div class="flex items-start p-4"> 204 <div class="shrink-0"> 205 206 207 <span class="hero-exclamation-circle w-6 h-6"></span> 208 </div> 209 <div class="ml-3 w-0 flex-1 pt-0.5"> 210 <div class="text-sm font-medium leading-5 text-white"> 211 <div class="whitespace-pre-line">Internet lost. Attempting reconnection...</div> 212 </div> 213 </div> 214 <div class="flex shrink-0 ml-4"> 215 216 </div> 217 </div> 218 </div> 219</div> 220 </div> 221</div> 222 223<header x-data="{mobile: false}" x-init="window.addEventListener('scroll', makeHeaderTranslucentOnScroll)" class="fixed top-0 left-0 z-30 w-full bg-white md:sticky semi-translucent dark:bg-gray-950"> 224 <div class="pc-container pc-container--xl pc-container--mobile-padded"> 225 226 <div class="flex flex-wrap items-center h-16 md:h-18"> 227 <div class="lg:w-3/12"> 228 <div class="flex items-center"> 229 <a href="/" class="inline-block ml-1 text-2xl font-bold leading-none"> 230 231 <img class="h-10 block dark:hidden" src="/images/logo_dark-b64fa18b769e902e69316f40e3941ca0.svg?vsn=d" alt="Autoshopz"> 232 <img class="h-10 hidden dark:block" src="/images/logo_light-b64fa18b769e902e69316f40e3941ca0.svg?vsn=d" alt="Autoshopz"> 233 234 </a> 235 236 <a href="/" class="hidden ml-3 lg:block"></a> 237 </div> 238 </div> 239 240 <div class="hidden lg:w-6/12 md:block"> 241 <ul class="justify-center md:flex"> 242 243 <li class="ml-8 lg:mx-4 xl:mx-6"> 244 <a href="/#features" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#features" class="block font-medium leading-7 capitalize dark:text-gray-100 menu-item"> 245 Features 246 </a> 247 </li> 248 249 <li class="ml-8 lg:mx-4 xl:mx-6"> 250 <a href="/#pricing" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#pricing" class="block font-medium leading-7 capitalize dark:text-gray-100 menu-item"> 251 Pricing 252 </a> 253 </li> 254 255 </ul> 256 </div> 257 258 <div class="flex items-center justify-end ml-auto lg:w-3/12"> 259 <div class="flex items-center gap-3 mr-4"> 260 <button type="button" id="public-color-scheme-switch" phx-hook="PetalColorScheme" data-variant="toggle" class="pc-scheme-toggle " aria-label="Light / Dark"> 261 <span class="pc-scheme-toggle__sun"> 262 <span class="hero-sun"></span> 263 264 </span> 265 <span class="pc-scheme-toggle__moon"> 266 <span class="hero-moon"></span> 267 268 </span> 269</button> 270 </div> 271 272 <div class="hidden md:block"> 273 <div phx-click-away="[["hide",{"to":"#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5","transition":[["transition","ease-in","duration-75"],["transform","opacity-100","scale-100"],["transform","opacity-0","scale-95"]]}]]" phx-window-keydown="[["hide",{"to":"#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5","transition":[["transition","ease-in","duration-75"],["transform","opacity-100","scale-100"],["transform","opacity-0","scale-95"]]}]]" phx-key="Escape" class="pc-dropdown"> 274 <div> 275 <button type="button" class="pc-dropdown__trigger-button--with-label-and-trigger-element" phx-click="[["toggle",{"display":"block","ins":[["transition","transform","
275ease-out","duration-100"],["transform","opacity-0","scale-95"],["transform","opacity-100","scale-100"]],"to":"#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5","outs":[["transition","ease-in","duration-75"],["transform","opacity-100","scale-100"],["transform","opacity-0","scale-95"]]}]]" aria-haspopup="true" data-pc-dropdown-trigger> 276 <span class="sr-only">Open options</span> 277 278 279 280 281 282 <div class="inline-flex items-center justify-center w-full gap-1 align-middle focus:outline-hidden"> 283 284 285 <div role="img" aria-label="user avatar" class="pc-avatar--with-placeholder-icon pc-avatar--sm"> 286 <span class="hero-user-solid pc-avatar__placeholder-icon"></span> 287 </div> 288 289 290 291 <span class="hero-chevron-down-mini pc-dropdown__chevron"></span> 292 </div> 293 294 295 296 297 </button> 298 </div> 299 <div style="display: none;" phx-hook="PetalDropdown" class="pc-dropdown__menu-items-wrapper-placement--left pc-dropdown__menu-items-wrapper" role="menu" id="dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5" aria-orientation="vertical" aria-labelledby="options-menu"> 300 <div class="py-1" role="none"> 301 302 303 304 <a href="/auth/sign-in" data-phx-link="redirect" data-phx-link-state="push" class="pc-dropdown__menu-item " role="menuitem"> 305 306 307 308 <span class="hero-key w-5 h-5 text-gray-500 dark:text-gray-400"></span> 309 310 311 Sign in 312 313 314</a> 315 316 <a href="/auth/register" data-phx-link="redirect" data-phx-link-state="push" class="pc-dropdown__menu-item " role="menuitem"> 317 318 319 320 <span class="hero-clipboard-document-list w-5 h-5 text-gray-500 dark:text-gray-400"></span> 321 322 323 Register 324 325 326</a> 327 328 329 </div> 330 </div> 331</div> 332 </div> 333 334 <div @click="mobile = !mobile" class="relative inline-block w-5 h-5 cursor-pointer md:hidden"> 335 <svg x-bind:class="{ 'opacity-1' : !mobile, 'opacity-0' : mobile }" width="24" height="24" fill="none" class="absolute -mt-3 -ml-3 transform top-1/2 left-1/2"> 336 <path d="M4 8h16M4 16h16" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> 337 </svg> 338 339 <svg x-bind:class="{ 'opacity-0' : !mobile }" width="24" height="24" fill="none" class="absolute -mt-3 -ml-3 transform opacity-0 top-1/2 left-1/2 scale-80"> 340 <path d="M6 18L18 6M6 6l12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> 341 </svg> 342 </div> 343 </div> 344 </div> 345 346 <div x-bind:class="{ 'block' : mobile, 'hidden' : !mobile }" class="md:hidden"> 347 <hr class="border-primary-900/10 dark:border-gray-700"> 348 <ul class="py-6"> 349 350 <li class="mb-2 last:mb-0 dark:text-gray-400"> 351 <a href="/#features" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#features" class="inline-block font-medium capitalize menu-item"> 352 Features 353 </a> 354 </li> 355 356 <li class="mb-2 last:mb-0 dark:text-gray-400"> 357 <a href="/#pricing" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#pricing" class="inline-block font-medium capitalize menu-item"> 358 Pricing 359 </a> 360 </li> 361 362 363 364 <li class="mb-2 last:mb-0"> 365 <a href="/auth/sign-in" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/auth/sign-in" class="inline-block font-medium capitalize menu-item dark:text-gray-400"> 366 Sign in 367 </a> 368 </li> 369 370 <li class="mb-2 last:mb-0"> 371 <a href="/auth/register" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/auth/register" class="inline-block font-medium capitalize menu-item dark:text-gray-400"> 372 Register 373 </a> 374 </li> 375 376 </ul> 377 </div> 378 379</div> 380</header> 381 382<div class="pt-[64px] md:pt-0"> 383 <div class="pc-container pc-container--lg pc-container--mobile-padded my-10 lg:my-20"> 384 385 <div class="prose dark:prose-invert prose-img:rounded-xl prose-img:mx-auto prose-a:text-primary-600 prose-a:dark:text-primary-300 mx-auto"> 386 <h1> 387Terms of Service</h1> 388<p> 389<strong>Last Updated: February 26, 2026</strong></p> 390<p> 391These Terms of Service (âTermsâ) govern your access to and use of the Autoshopz platform (the âServiceâ) operated by Pushing Back Software, LLC (âwe,â âus,â or âourâ). By creating an account or using the Service, you agree to be bound by these Terms.</p> 392<p> 393If you are entering into these Terms on behalf of a company or other legal entity, you represent that you have the authority to bind that entity.</p> 394<h2> 3951. Description of Service</h2> 396<p> 397Autoshopz is a data reporting and business intelligence platform for the automotive service industry. The Service provides:</p> 398<ul> 399 <li> 400Integration with Tekmetric shop management software to generate performance reports and dashboards </li> 401 <li> 402Integration with QuickBooks Online to reconcile shop operational data with accounting records </li> 403 <li> 404Goal tracking, sales performance analysis, and profit auditing tools <
404/li> 405 <li> 406Automated report generation and delivery </li> 407</ul> 408<p> 409The Service is provided on a subscription basis as described in Section 4.</p> 410<h2> 4112. Account Registration</h2> 412<p> 413To use the Service, you must create an account. You agree to:</p> 414<ul> 415 <li> 416Provide accurate, current, and complete registration information </li> 417 <li> 418Maintain the security of your account credentials </li> 419 <li> 420Promptly notify us of any unauthorized use of your account </li> 421 <li> 422Accept responsibility for all activity that occurs under your account </li> 423</ul> 424<p> 425You must be at least 18 years of age to create an account. We reserve the right to refuse service, terminate accounts, or cancel subscriptions at our sole discretion.</p> 426<h2> 4273. Third-Party Integrations</h2> 428<h3> 429Tekmetric</h3> 430<p> 431By connecting your Tekmetric account, you authorize us to access your shop data through the Tekmetric API for the purpose of generating reports and analytics. You represent that you have the right to authorize this access for the shops you connect.</p> 432<h3> 433QuickBooks Online</h3> 434<p> 435By connecting your QuickBooks Online account, you authorize us to access your accounting data through Intuitâs API using OAuth 2.0 for the purpose of reconciliation and comparison reporting. You represent that you have the right to authorize this access.</p> 436<p> 437You may disconnect any third-party integration at any time through your account settings. Disconnection will stop future data synchronization. You may also request deletion of previously synced data by contacting us.</p> 438<p> 439<strong>Important</strong>: The Service relies on data provided by third-party platforms. We are not responsible for the accuracy, completeness, or availability of data from Tekmetric, QuickBooks Online, or any other third-party service. Disruptions to third-party services may temporarily affect the functionality of our Service.</p> 440<h2> 4414. Subscription and Payment</h2> 442<h3> 443Plans and Billing</h3> 444<p> 445The Service is offered under subscription plans as described on our website. Subscription fees are billed in advance on a recurring basis (monthly or annually, depending on your plan). Payment is processed through our third-party payment processor (Stripe).</p> 446<h3> 447Renewals</h3> 448<p> 449Subscriptions automatically renew at the end of each billing period unless cancelled before the renewal date.</p> 450<h3> 451Cancellation</h3> 452<p> 453You may cancel your subscription at any time through your account settings. Cancellation takes effect at the end of the current billing period. No refunds are provided for partial billing periods.</p> 454<h3> 455Price Changes</h3> 456<p> 457We may change subscription pricing with at least 30 daysâ notice. Price changes take effect at the start of your next billing period following the notice.</p> 458<h2> 4595. Acceptable Use</h2> 460<p> 461You agree not to:</p> 462<ul> 463 <li> 464Use the Service for any unlawful purpose or in violation of applicable regulations </li> 465 <li> 466Attempt to gain unauthorized access to other usersâ accounts or data </li> 467 <li> 468Interfere with or disrupt the Service or its infrastructure </li> 469 <li> 470Reverse engineer, decompile, or disassemble any part of the Service </li> 471 <li> 472Use the Service to develop a competing product </li> 473 <li> 474Resell, sublicense, or redistribute access to the Service without our written consent </li> 475 <li> 476Exceed any rate limits or usage restrictions associated with your plan </li> 477 <li> 478Upload or transmit malicious code, viruses, or other harmful content </li> 479 <li> 480Scrape, crawl, or use automated tools to extract data from the Service beyond intended API usage </li> 481</ul> 482<h2> 4836. Intellectual Property</h2> 484<h3> 485Our Property</h3> 486<p> 487The Service, including its software, design, features, documentation, and branding, is owned by Pushing Back Software, LLC and is protected by intellectual property laws. These Terms do not grant you any ownership interest in the Service. You are granted a limited, non-exclusive, non-transferable, revocable license to use the Service for the duration of your subscription.</p> 488<h3> 489Your Data</h3> 490<p> 491You retain all rights to the data you provide to the Service and the data accessed through your connected third-party accounts. We claim no ownership over your business data. We use your data solely as described
491in our <a href="/privacy">Privacy Policy</a> to provide the Service.</p> 492<h2> 4937. Data Handling and Security</h2> 494<p> 495We take the security of your data seriously. Details about how we collect, use, store, and protect your data are described in our <a href="/privacy">Privacy Policy</a>, which is incorporated into these Terms by reference.</p> 496<p> 497You acknowledge that:</p> 498<ul> 499 <li> 500You are responsible for maintaining the accuracy of your data within connected third-party systems (Tekmetric, QuickBooks Online) </li> 501 <li> 502Reports generated by the Service are based on data provided by you and your connected integrations </li> 503 <li> 504You should verify report outputs against your own records before making business decisions </li> 505</ul> 506<h2> 5078. Disclaimer of Warranties</h2> 508<p> 509THE SERVICE IS PROVIDED âAS ISâ AND âAS AVAILABLEâ WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.</p> 510<p> 511We do not warrant that:</p> 512<ul> 513 <li> 514The Service will be uninterrupted, error-free, or secure </li> 515 <li> 516Reports or data will be completely accurate or current </li> 517 <li> 518The Service will meet all of your specific requirements </li> 519 <li> 520Defects in the Service will be corrected within any particular timeframe </li> 521</ul> 522<p> 523<strong>The Service does not provide accounting, tax, legal, or financial advice.</strong> Reports and reconciliation tools are provided for informational purposes to assist your business operations. You should consult qualified professionals for accounting, tax, and financial decisions.</p> 524<h2> 5259. Limitation of Liability</h2> 526<p> 527TO THE MAXIMUM EXTENT PERMITTED BY LAW, PUSHING BACK SOFTWARE, LLC SHALL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF PROFITS, DATA, BUSINESS OPPORTUNITIES, OR GOODWILL, ARISING OUT OF OR RELATED TO YOUR USE OF THE SERVICE.</p> 528<p> 529OUR TOTAL AGGREGATE LIABILITY FOR ALL CLAIMS ARISING OUT OF OR RELATED TO THESE TERMS OR THE SERVICE SHALL NOT EXCEED THE TOTAL AMOUNT YOU PAID TO US IN THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO THE CLAIM.</p> 530<p> 531These limitations apply regardless of the theory of liability (contract, tort, strict liability, or otherwise) and even if we have been advised of the possibility of such damages.</p> 532<h2> 53310. Indemnification</h2> 534<p> 535You agree to indemnify, defend, and hold harmless Pushing Back Software, LLC, its officers, directors, employees, and agents from and against any claims, liabilities, damages, losses, and expenses (including reasonable legal fees) arising out of or related to:</p> 536<ul> 537 <li> 538Your use of the Service </li> 539 <li> 540Your violation of these Terms </li> 541 <li> 542Your violation of any applicable law or regulation </li> 543 <li> 544Your infringement of any third-party rights </li> 545 <li> 546Any data you provide to or through the Service </li> 547</ul> 548<h2> 54911. Term and Termination</h2> 550<h3> 551Term</h3> 552<p> 553These Terms are effective when you create an account and remain in effect until terminated.</p> 554<h3> 555Termination by You</h3> 556<p> 557You may terminate your account at any time by cancelling your subscription and contacting us to request account deletion.</p> 558<h3> 559Termination by Us</h3> 560<p> 561We may suspend or terminate your access to the Service immediately if you breach these Terms, fail to pay subscription fees, or if we are required to do so by law. We may also discontinue the Service with 90 daysâ notice.</p> 562<h3> 563Effect of Termination</h3> 564<p> 565Upon termination, your right to use the Service ceases immediately. We will retain your data for up to 30 days following termination to allow for data export requests. After that period, your data will be deleted in accordance with our Privacy Policy.</p> 566<h2> 56712. Modifications to Terms</h2> 568<p> 569We may update these Terms from time to time. When we make material changes, we will notify you by email or by posting a notice within the Service at least 30 days before the changes take effect. Your continued use of the Service after the effective date constitutes acceptance of the updated Terms. If you do not agree to the updated Terms, you must stop using the Service.</p> 570<h2> 57113. Governing Law and Dispute Resolution</h2> 572<p> 573These Terms are governed by and construed in accordance with the laws of the State of Pennsylvania, without regard to its conflict of law provisions.</p> 574<p> 575Any dispute arising from these Terms or the Service shall first be attempted to be resolved through good-faith negotiation. If negotiation fails, disputes shall be resolved through binding arbitration administered in accordance with the rules of the American Arbitration Association, held in Pennsylvania. The arbitratorâs decision shall be final and binding.</p> 576<p> 577Nothing in this section prevents either party from seeking injunctive relief in a court of competent jurisdiction.</p> 578<h2> 57914. General Provisions</h2> 580<ul> 581 <li> 582<strong>Entire Agreement</strong>: These Terms, together with our Privacy Policy, constitute the entire agreement between you and Pushing Back Software, LLC regarding the Service. </li> 583 <li> 584<strong>Severability</strong>: If any provision of these Terms is found to be unenforceable, the remaining provisions shall continue in full force and effect. </li> 585 <li> 586<strong>Waiver</strong>: Our failure to enforce any right or provision of these Terms shall not constitute a waiver of that right or provision. </li> 587 <li> 588<strong>Assignment</strong>: You may not assign these Terms without our prior written consent. We may assign these Terms in connection with a merger, acquisition, or sale of assets. </li> 589 <li> 590<strong>Force Majeure</strong>: We shall not be liable for any delay or failure in performance resulting from causes beyond our reasonable control. </li> 591 <li> 592<strong>Notices</strong>: We may send notices to the email address associated with your account. You may send notices to us at the contact information below. </li> 593</ul> 594<h2> 59515. Contact Us</h2> 596<p> 597If you have questions about these Terms, please contact us:</p> 598<p> 599Pushing Back Software, LLC
600Email: [email protected]</p> 601 602</div> 603 604</div> 605 606 <section id="footer"> 607 <div class="py-20"> 608 <div class="pc-container pc-container--xl pc-container--mobile-padded"> 609 610 <div class="flex flex-wrap items-center justify-between pb-12 border-b border-gray-200 dark:border-gray-800"> 611 <div class="w-full mb-12 md:w-1/5 md:mb-0"> 612 <a class="inline-block text-3xl font-bold leading-none" href="/"> 613 614 <img class="h-10 block dark:hidden" src="/images/logo_dark-b64fa18b769e902e69316f40e3941ca0.svg?vsn=d" alt="Autoshopz"> 615 <img class="h-10 hidden dark:block" src="/images/logo_light-b64fa18b769e902e69316f40e3941ca0.svg?vsn=d" alt="Autoshopz"> 616 617 </a> 618 </div> 619 <div class="w-full md:w-auto"> 620 <ul class="flex flex-wrap items-center md:space-x-5"> 621 622 <li class="w-full mb-2 md:w-auto md:mb-0"> 623 <a href="/#features" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#features" class="text-gray-700 dark:text-gray-300 md:text-sm hover:text-gray-800 dark:hover:text-gray-400"> 624 Features 625 </a> 626 </li> 627 628 <li class="w-full mb-2 md:w-auto md:mb-0"> 629 <a href="/#pricing" data-csrf="EhNNc0JBaAoZIBIuKFgRPwdzIQhmAEtE_iyEry_EvTTXb3Ux36XC6V91" data-to="/#pricing" class="text-gray-700 dark:text-gray-300 md:text-sm hover:text-gray-800 dark:hover:text-gray-400"> 630 Pricing 631 </a> 632 </li> 633 634 </ul> 635 </div> 636 </div> 637 <div class="flex flex-wrap items-center justify-between mt-8"> 638 <div class="order-last text-sm text-gray-600 dark:text-gray-400"> 639 <div> 640 © 2026 Pushing Back Software, LLC. All rights reserved. 641 </div> 642 643 <div class="mt-2 divide-x divide-gray-500 dark:divide-gray-400"> 644 <a href="/privacy" class="pr-3 hover:text-gray-900 dark:hover:text-gray-300"> 645 Privacy Policy 646 </a> 647 <a href="/license" class="px-3 hover:text-gray-900 dark:hover:text-gray-300"> 648 Terms of Service 649 </a> 650 </div> 651 </div> 652 <div class="order-first mb-4 md:mb-0 md:order-last"> 653 654 655 656 657 658 </div> 659 </div> 660 661</div> 662 </div> 663</section> 664 665
665<script type="module"> 666 // Use GSAP for animations 667 // https://greensock.com/gsap/ 668 import gsap from 'https://cdn.jsdelivr.net/npm/[email protected]/+esm'; 669 670 // Put it on the window for when you want to try out animations in the console 671 window.gsap = gsap; 672 673 // A plugin for GSAP that detects when an element enters the viewport - this helps with timing the animation 674 import ScrollTrigger from "https://cdn.jsdelivr.net/npm/[email protected]/ScrollTrigger/+esm"; 675 gsap.registerPlugin(ScrollTrigger); 676 677 animateHero(); 678 setupPageAnimations(); 679 680 // This is needed to ensure the animations timings are correct as you scroll 681 setTimeout(() => { 682 ScrollTrigger.refresh(true); 683 }, 1000); 684 685 function animateHero() { 686 687 // A timeline just means you can chain animations together - one after another 688 // https://greensock.com/docs/v3/GSAP/gsap.timeline() 689 const heroTimeline = gsap.timeline({}); 690 691 heroTimeline 692 .to("#hero .fade-in-animation", { 693 opacity: 1, 694 y: 0, 695 stagger: 0.1, 696 ease: "power2.out", 697 duration: 1, 698 }) 699 .to("#hero-image-light", { 700 opacity: 1, 701 x: 0, 702 duration: 0.4 703 }, ">-1.3") 704 .to("#hero-image-dark", { 705 opacity: 1, 706 x: 0, 707 duration: 0.4 708 }, ">-1.3") 709 .to("#logo-cloud .fade-in-animation", { 710 opacity: 1, 711 y: 0, 712 stagger: 0.1, 713 ease: "power2.out", 714 }) 715 } 716 717 function setupPageAnimations() { 718 719 // This allows us to give any individual HTML element the class "solo-animation" 720 // and that element will fade in when scrolled into view 721 gsap.utils.toArray(".solo-animation").forEach((item) => { 722 gsap.to(item, { 723 y: 0, 724 opacity: 1, 725 duration: 0.5, 726 ease: "power2.out", 727 scrollTrigger: { 728 trigger: item, 729 }, 730 }); 731 }); 732 733 // Add the class "stagger-fade-in-animation" to a parent element, then all elements within it 734 // with the class "fade-in-animation" will fade in on scroll in a staggered formation to look 735 // more natural than them all fading in at once 736 gsap.utils.toArray(".stagger-fade-in-animation").forEach((stagger) => { 737 const children = stagger.querySelectorAll(".fade-in-animation"); 738 gsap.to(children, { 739 opacity: 1, 740 y: 0, 741 ease: "power2.out", 742 stagger: 0.15, 743 duration: 0.5, 744 scrollTrigger: { 745 trigger: stagger, 746 start: "top 75%", 747 }, 748 }); 749 }); 750 } 751</script>
751 752</div> 753 </body> 754</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.