PageSourceSearch

https://clark.fly.dev/license

html clark.fly.dev collected 2026-10-03 08:25:57 UTC 31,271 bytes, 754 lines download raw bytes

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="[[&quot;show&quot;,{&quot;time&quot;:300,&quot;to&quot;:&quot;#disconnected&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-out&quot;,&quot;duration-300&quot;],[&quot;opacity-0&quot;],[&quot;opacity-100&quot;]]}]]" phx-connected="[[&quot;hide&quot;,{&quot;to&quot;:&quot;#disconnected&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-in&quot;,&quot;duration-200&quot;],[&quot;opacity-100&quot;],[&quot;opacity-0&quot;]]}]]" hidden>
200    <div id="disconnected-flash" phx-hook="ClearFlashHook" phx-mounted="[[&quot;show&quot;,{&quot;time&quot;:300,&quot;to&quot;:&quot;#disconnected-flash&quot;,&quot;transition&quot;:[[&quot;transition-all&quot;,&quot;transform&quot;,&quot;ease-out&quot;,&quot;duration-300&quot;],[&quot;opacity-0&quot;],[&quot;opacity-100&quot;]]}]]" 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="[[&quot;hide&quot;,{&quot;to&quot;:&quot;#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5&quot;,&quot;transition&quot;:[[&quot;transition&quot;,&quot;ease-in&quot;,&quot;duration-75&quot;],[&quot;transform&quot;,&quot;opacity-100&quot;,&quot;scale-100&quot;],[&quot;transform&quot;,&quot;opacity-0&quot;,&quot;scale-95&quot;]]}]]" phx-window-keydown="[[&quot;hide&quot;,{&quot;to&quot;:&quot;#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5&quot;,&quot;transition&quot;:[[&quot;transition&quot;,&quot;ease-in&quot;,&quot;duration-75&quot;],[&quot;transform&quot;,&quot;opacity-100&quot;,&quot;scale-100&quot;],[&quot;transform&quot;,&quot;opacity-0&quot;,&quot;scale-95&quot;]]}]]" phx-key="Escape" class="pc-dropdown">
274  <div>
275    <button type="button" class="pc-dropdown__trigger-button--with-label-and-trigger-element" phx-click="[[&quot;toggle&quot;,{&quot;display&quot;:&quot;block&quot;,&quot;ins&quot;:[[&quot;transition&quot;,&quot;transform&quot;,&quot;
275ease-out&quot;,&quot;duration-100&quot;],[&quot;transform&quot;,&quot;opacity-0&quot;,&quot;scale-95&quot;],[&quot;transform&quot;,&quot;opacity-100&quot;,&quot;scale-100&quot;]],&quot;to&quot;:&quot;#dropdown_fcec0bfe-b1af-4f2b-8b1c-e67c4c8fa2c5&quot;,&quot;outs&quot;:[[&quot;transition&quot;,&quot;ease-in&quot;,&quot;duration-75&quot;],[&quot;transform&quot;,&quot;opacity-100&quot;,&quot;scale-100&quot;],[&quot;transform&quot;,&quot;opacity-0&quot;,&quot;scale-95&quot;]]}]]" 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.