PageSourceSearch

https://spa2x.com/privacy

html spa2x.com collected 2026-10-02 01:43:50 UTC 15,723 bytes, 7 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/spa2x.svg"/><link rel="stylesheet" href="/assets/index-D3bZIG9W.css" data-precedence="default"/>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1G-528EBLWFBQ
vendor: 11 bytes, line 1
1"></script>
1<title>Spa2X</title><meta property="og:site_name" content="Spa2X"/><meta property="og:title" content="Spa2X"/><meta property="og:description" content="a collection of privacy focused apps"/><meta property="og:image" content="https://spa2x.com/og/main.png"/><meta name="twitter:card" content="summary_large_image"/><meta property="twitter:image" content="https://spa2x.com/og/main.png"/><meta name="description" content="a collection of privacy focused apps"/><link rel="modulepreload" href="/assets/index-Qw1WXiDY.js"/><link rel="modulepreload" href="/assets/jsx-runtime-Cx0BB4qO.js"/><link rel="modulepreload" href="/assets/react-zBm5ow1K.js"/><link rel="modulepreload" href="/assets/react-dom-jGu52O9S.js"/><link rel="modulepreload" href="/assets/useStore-CBqJyILF.js"/><link rel="modulepreload" href="/assets/not-found-i5RsCZif.js"/><link rel="modulepreload" href="/assets/matchContext-C_nkLKUN.js"/><link rel="modulepreload" href="/assets/link-ChTZZxHy.js"/><link rel="modulepreload" href="/assets/useRouter-DU-Hbtls.js"/><link rel="modulepreload" href="/assets/shim-DzWJkmg0.js"/><link rel="modulepreload" href="/assets/with-selector-DJgLuj5p.js"/><link rel="modulepreload" href="/assets/useRenderElement-7w8eeAVo.js"/><link rel="modulepreload" href="/assets/clsx-DB0hHKMi.js"/><link rel="modulepreload" href="/assets/owner-CvFA6Itl.js"/><link rel="modulepreload" href="/assets/DirectionContext-DRjgNd8H.js"/><link rel="modulepreload" href="/assets/addEventListener-F9WHrV6d.js"/><link rel="modulepreload" href="/assets/createLucideIcon-DyqVO-CX.js"/><link rel="modulepreload" href="/assets/circle-check-BuNzubnC.js"/><link rel="modulepreload" href="/assets/clock-DPDjlelD.js"/><link rel="modulepreload" href="/assets/copy-OrUut--q.js"/><link rel="modulepreload" href="/assets/file-text-BkX93ImR.js"/><link rel="modulepreload" href="/assets/privacy-OsbJGQIJ.js"/><link rel="icon" type="image/x-icon" href="/favicon.ico"/>
1<script>(function(){try{var stored=window.localStorage.getItem('theme');var mode=(stored==='light'||stored==='dark'||stored==='auto')?stored:'auto';var prefersDark=window.matchMedia('(prefers-color-scheme: dark)').matches;var resolved=mode==='auto'?(prefersDark?'dark':'light'):mode;var root=document.documentElement;root.classList.remove('light','dark');root.classList.add(resolved);if(mode==='auto'){root.removeAttribute('data-theme')}else{root.setAttribute('data-theme',mode)}root.style.colorScheme=resolved;}catch(e){}})();</script>
1<script>
2              
vendor: 169 bytes, lines 2-5
2window.dataLayer = window.dataLayer || [];
3              function gtag(){dataLayer.push(arguments);}
4              gtag('js', new Date());
5              gtag('config', '
5G-528EBLWFBQ
vendor: 16 bytes, lines 5-6
5');
6            
6</script>
6</head><body class="bg-main font-sans text-main antialiased [overflow-wrap:anywhere]">
6<script>(function(){try{var t=localStorage.getItem("theme");if(t!=='light'&&t!=='dark'&&t!=='system'){t="system"}var d=matchMedia('(prefers-color-scheme: dark)').matches;var r=t==='system'?(d?'dark':'light'):t;var e=document.documentElement;e.classList.add(r);e.style.colorScheme=r}catch(e){}})();;document.currentScript.remove()</script>
6<div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><div class="mx-auto flex min-h-screen w-full max-w-5xl flex-col bg-neutral-200 text-black md:p-4 dark:bg-neutral-800 dark:text-white"><div class="flex flex-1 flex-col rounded-none md:rounded-xl md:border md:border-neutral-300 md:dark:border-neutral-700"><header class="z-50 w-full shrink-0 border-black/5 border-b bg-neutral-200 dark:border-white/5 dark:bg-neutral-800"><div class="mx-auto flex max-w-4xl items-center justify-between p-4 px-4"><div class="flex items-center gap-2"><img src="/spa2x.svg" width="20" height="20" alt="Spa2x Logo"/><a href="/" class="font-bold tracking-tight transition-opacity hover:opacity-80">Spa2X</a></div><div class="flex items-center gap-4"><button type="button" tabindex="0" aria-haspopup="menu" id="base-ui-_R_1pkq_" data-slot="dropdown-menu-trigger"><button type="button" tabindex="0" data-slot="button" class="group/button inline-flex shrink-0 select-none items-center justify-center whitespace-nowrap rounded-none border bg-clip-padding font-medium text-xs outline-none transition-all focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 size-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg><span class="sr-only">Toggle theme</span></button></button></div></div></header><main class="relative flex flex-1 flex-col bg-white p-4 md:p-6 dark:bg-zinc-950"><div class="mx-auto flex w-full max-w-4xl flex-1 flex-col"><!--$--><article class="prose prose-neutral dark:prose-invert max-w-none"><h1>Privacy Policy</h1><p><strong>Last updated: June 10, 2026</strong></p><hr/><h2>Overview</h2><p>Your privacy is important to us. This Privacy Policy explains how we handle your data. Our web app store is built on a<!-- --> <strong>local-first</strong> philosophy: your application data lives on your device, not our servers. However, we do use standard web analytics to understand how visitors use our site.</p><hr/><h2>1. No Account Required</h2><p>You do not need to create an account or provide any personal information to use the core features of our store. Browse, search, and use apps without signing up or signing in.</p><hr/><h2>
62. We Do Not Collect or Store Your Personal App Data</h2><p>We do not collect, transmit, or store any personal data related to your usage of the apps on our servers. This includes:</p><ul><li>Your name, email address, or contact details</li><li>Any content you create or interact with inside the apps</li></ul><hr/><h2>3. Local-First Data Storage</h2><p>All data generated by your use of our apps is stored<!-- --> <strong>locally on your device</strong> — in your browser&#x27;s local storage, IndexedDB, or similar browser-native storage mechanisms. This data never leaves your device unless you explicitly choose to export or share it.</p><p>We have no access to this locally stored data, and we cannot read, modify, or delete it.</p><hr/><h2>4. Cookies and Tracking Technologies</h2><p>We use minimal functional cookies or local browser storage to remember your display preferences and theme selection.</p><p>Additionally, we use <strong>Google Analytics</strong>, which may set cookies or use similar technologies to collect anonymous usage and device data (such as page views, session durations, and browser types) to help us improve user experience.</p><hr/><h2>5. Third-Party Services</h2><p>We use <strong>Google Analytics</strong> as a third-party analytics service provider to analyze traffic and site usage. Google Analytics collects information anonymously and reports website trends without identifying individual visitors. You can learn more about Google&#x27;s privacy practices or opt-out using the<!-- --> <a href="https://tools.google.com/dlpage/gaoptout" target="_blank" rel="noreferrer">Google Analytics Opt-out Browser Add-on</a>.</p><p>If any individual app listed in our store uses other third-party services, that app&#x27;s own privacy policy will govern that data usage. We encourage you to review the privacy policy of any app you install.</p><hr/><h2>6. Analytics &amp; Usage Data</h2><p>Through Google Analytics, we collect <strong>aggregated, anonymous</strong> <!-- -->technical and behavioral data to help us improve the store. This data:</p><ul><li>Includes metrics like page views, click interactions, and general geographic region (country/city level)</li><li>Is processed by Google in accordance with their privacy policies</li><li>Cannot be used by us to identify you personally</li><li>Is not sold or shared with any third party outside of our analytics processing</li></ul><hr/><h2>7. Children&#x27;s Privacy</h2><p>Our store does not knowingly collect any personally identifiable information from children under the age of 13.</p><hr/><h2>8. Data Security</h2><p>Because your core application data is stored locally on your device rather than on our servers, the risk of a server-side data breach affecting your personal app data is minimal. Your data remains under your control.</p><p>We recommend keeping your browser and operating system up to date to maintain the security of locally stored data.</p><hr/><h2>9. Your Rights</h2><p>Since we do not hold personal app data on our servers, there is generally nothing for us to provide, correct, or delete regarding your app usage. If you wish to clear data stored locally on your device, you can do so at any time through your browser settings.</p><p>If you are located in a jurisdiction with specific data protection laws (such as the GDPR in the EU or CCPA in California), you are welcome to contact us regarding your data privacy rights.</p><hr/><h2>10. Changes to This Policy</h2><p>We may update this Privacy Policy from time to time. When we do, we will update the &quot;Last updated&quot; date at the top of this page. We encourage you to review this policy periodically. Continued use of the store after any changes constitutes your acceptance of the updated policy.</p><hr/><h2>11. Contact Us</h2><p>If you have any questions or concerns about this Privacy Policy, please contact us at:</p><p><strong>Spa2X</strong><br/><strong>[email protected]</strong><br/><strong><a href="https://spa2x.com">spa2x</a></strong></p><hr/><p class="text-sm italic opacity-70"><em>This Privacy Policy applies to Spa2X and all apps accessed through it.</em></p></article>
6<script>(function(a,f){let l;try{l=JSON.parse(sessionStorage.getItem(a)||"{}")}catch{return}const n=l?.[f||history.state?.__TSR_key];let c=!1;for(const t in n){const e=n[t],o=e?.scrollX,s=e?.scrollY;if(Number.isFinite(o)&&Number.isFinite(s)){if(t==="window")scrollTo(o,s),c=!0;else if(t)try{const r=document.querySelector(t);r&&(r.scrollLeft=o,r.scrollTop=s)}catch{}}}if(c)return;const i=location.hash.slice(1);if(i){const t=history.state?.__hashScrollIntoViewOptions??!0;if(t){const e=document.getElementById(i);e&&e.scrollIntoView(t)}return}scrollTo(0,0)})("tsr-scroll-restoration-v1_3");document.currentScript.remove()</script>
6<!--/$--></div></main><footer class="flex w-full flex-wrap items-center justify-between gap-4 border-zinc-100 border-t bg-zinc-50 p-4 dark:border-zinc-900 dark:bg-zinc-900/50"><div class="flex flex-col gap-1 text-xs text-zinc-500"><span>made with ❤️</span><p>© <!-- -->2026<!-- --> Spa2X. All rights reserved.</p></div><div class="flex flex-col gap-2"><div class="flex flex-wrap items-center gap-3 text-sm"><a href="/blogs">Blogs</a><a class="active" href="/privacy" data-status="active" aria-current="page">Privacy</a><a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer">Contact us</a></div><a href="https://www.google.com/preferences/source?q=spa2x.com" target="_blank" rel="noopener noreferrer" class="bg-neutral-200 p-1 px-2 rounded-xl dark:bg-neutral-600">Add us as a preferred source on Google</a></div></footer></div></div>
6<script class="$tsr" id="$tsr-stream-barrier">(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={h(){this.hydrated=!0,this.c()},e(){this.streamEnded=!0,this.c()},c(){this.hydrated&&this.streamEnded&&(delete self.$_TSR,delete self.$R.tsr)},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/index-Qw1WXiDY.js","/assets/jsx-runtime-Cx0BB4qO.js","/assets/react-zBm5ow1K.js","/assets/react-dom-jGu52O9S.js","/assets/useStore-CBqJyILF.js","/assets/not-found-i5RsCZif.js","/assets/matchContext-C_nkLKUN.js","/assets/link-ChTZZxHy.js","/assets/useRouter-DU-Hbtls.js","/assets/shim-DzWJkmg0.js","/assets/with-selector-DJgLuj5p.js","/assets/useRenderElement-7w8eeAVo.js","/assets/clsx-DB0hHKMi.js","/assets/owner-CvFA6Itl.js","/assets/DirectionContext-DRjgNd8H.js","/assets/addEventListener-F9WHrV6d.js","/assets/createLucideIcon-DyqVO-CX.js","/assets/circle-check-BuNzubnC.js","/assets/clock-DPDjlelD.js","/assets/copy-OrUut--q.js","/assets/file-text-BkX93ImR.js"],scripts:$R[5]=[$R[6]={attrs:$R[7]={type:"module",async:!0,src:"/assets/index-Qw1WXiDY.js"}}]},"/privacy":$R[8]={preloads:$R[9]=["/assets/privacy-OsbJGQIJ.js"]}}}
6,matches:$R[10]=[$R[11]={i:"__root__�",u:1790706845548,s:"success",ssr:!0},$R[12]={i:"�privacy�privacy",u:1790706845617,s:"success",ssr:!0}],lastMatchId:"�privacy�privacy"})($R["tsr"]);$_TSR.e();document.currentScript.remove()</script>
6<script type="module" async="" src="/assets/index-Qw1WXiDY.js"></script>
6<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a44004bc5cc4cdc0',t:'MTc5MDkwNTQzMA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
6<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":"d4e9ead2e7f84bca8c7938e098c756f7","r":1,"spa":2}' crossorigin="anonymous"></script>
6
7</body></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.