Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-11 21:19
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Sun, 11 Jan 2026 21:19:20 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/a73dfb5640a9d937.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"Go
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-10 21:18
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Sat, 10 Jan 2026 21:18:33 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/a73dfb5640a9d937.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"Go
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-09 21:10
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Fri, 09 Jan 2026 21:10:06 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/a73dfb5640a9d937.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"Go
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-08 21:27
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Thu, 08 Jan 2026 21:27:45 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/a73dfb5640a9d937.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/a73dfb5640a9d937.js\"],\"Go
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-07 21:19
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Wed, 07 Jan 2026 21:19:29 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/43728989c2e81b12.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/43728989c2e81b12.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/43728989c2e81b12.js\"],\"Go
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-06 21:12
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Tue, 06 Jan 2026 21:12:38 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/82331f562a97e36c.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/43728989c2e81b12.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/efc0f3bb7ee9345e.js" async=""></script><script src="/_next/static/chunks/8c8cb8859584b1d5.js" async=""></script><script src="/_next/static/chunks/6138dbbbdfeef8d9.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/43728989c2e81b12.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/82331f562a97e36c.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/43728989c2e81b12.js\"],\"Go
Open service 2a00:1450:4001:807::2013:80 · app-dev.tactix.ai
2026-01-05 07:56
HTTP/1.1 302 Found location: https://app-dev.tactix.ai/ x-cloud-trace-context: 34a0f046ae9072351d5d59afa7e6b75c date: Mon, 05 Jan 2026 07:56:55 GMT content-type: text/html server: Google Frontend Content-Length: 0 Connection: close
Open service 142.251.141.115:443 · app-dev.tactix.ai
2026-01-05 07:56
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Mon, 05 Jan 2026 07:56:53 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/6476cb4cca157a2b.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/fe612684b7f6e550.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/662671c06cb7efbf.js" async=""></script><script src="/_next/static/chunks/7b9bc8231a54d66b.js" async=""></script><script src="/_next/static/chunks/6644ad05c566baf7.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/6476cb4cca157a2b.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/fe612684b7f6e550.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/6476cb4cca157a2b.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/fe612684b7f6e550.js\"],\"Go
Open service 142.251.141.115:80 · app-dev.tactix.ai
2026-01-05 07:56
HTTP/1.1 302 Found location: https://app-dev.tactix.ai/ x-cloud-trace-context: 7936ac7faf5a16507dcb759336d6651f date: Mon, 05 Jan 2026 07:56:53 GMT content-type: text/html server: Google Frontend Content-Length: 0 Connection: close
Open service 2a00:1450:4001:807::2013:443 · app-dev.tactix.ai
2026-01-05 07:56
HTTP/1.1 200 OK
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-xss-protection: 0
content-security-policy: default-src 'self'; frame-ancestors 'none'; img-src 'self' data: blob: https://www.google-analytics.com https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com; connect-src 'self' https://www.googleapis.com https://bigquery.googleapis.com https://www.google-analytics.com https://www.googletagmanager.com https://hylhcmxmoojbuprobpdb.supabase.co https://*.supabase.co https://hylhcmxmoojbuprobpdb.supabase.co/rest/v1/* http://127.0.0.1:54321 http://localhost:54321
permissions-policy: camera=(), microphone=(), geolocation=(self)
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
link: </_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2>; rel=preload; as="font"; crossorigin=""; type="font/woff2"
content-type: text/html; charset=utf-8
date: Mon, 05 Jan 2026 07:56:53 GMT
server: Google Frontend
Transfer-Encoding: chunked
Connection: close
Page title: Tactix - Store Performance Analytics
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/198d8fa4e7f69ff5.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/024577c11b6591ee.js"/><script src="/_next/static/chunks/5daf9879421e1556.js" async=""></script><script src="/_next/static/chunks/079d5ede7af38810.js" async=""></script><script src="/_next/static/chunks/2be8955fe7b48028.js" async=""></script><script src="/_next/static/chunks/75a3f12660976f11.js" async=""></script><script src="/_next/static/chunks/turbopack-97093693c55abfe2.js" async=""></script><script src="/_next/static/chunks/6476cb4cca157a2b.js" async=""></script><script src="/_next/static/chunks/7357d2854ba3186b.js" async=""></script><script src="/_next/static/chunks/fe612684b7f6e550.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/6a7993b07cb97bb3.js" async=""></script><script src="/_next/static/chunks/662671c06cb7efbf.js" async=""></script><script src="/_next/static/chunks/7b9bc8231a54d66b.js" async=""></script><script src="/_next/static/chunks/6644ad05c566baf7.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=MUST_BE_SET_IN_TRIGGER" as="script"/><meta name="next-size-adjust" content=""/><link rel="manifest" href="/manifest.json"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default" id="status-bar-style-meta"/><link rel="apple-touch-icon" href="/icons/icon-192.png"/><meta name="theme-color" content="#7e22ce" id="theme-color-meta"/><title>Tactix - Store Performance Analytics</title><meta name="description" content="Real-time retail store performance analytics and insights for multi-location management"/><link rel="manifest" href="/manifest.json"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"\n (function() {\n // Set initial theme based on current page\n // Client-side navigation cleanup is handled by GlobalErrorHandler\n var isLoginPage = window.location.pathname === '/login';\n var meta = document.getElementById('theme-color-meta');\n var statusBar = document.getElementById('status-bar-style-meta');\n \n if (isLoginPage) {\n if (meta) meta.setAttribute('content', '#7e22ce');\n if (statusBar) statusBar.setAttribute('content', 'black-translucent');\n } else {\n if (meta) meta.setAttribute('content', '#ffffff');\n if (statusBar) statusBar.setAttribute('content', 'default');\n }\n })();\n ","id":"root-theme-color"}])</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="inter_3daa4df-module__SQiLAW__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-[100dvh] bg-gray-50 text-gray-900 pb-24 flex items-center justify-center "><div class="text-center"><div class="w-8 h-8 mx-auto mb-4 bg-gradient-to-r from-purple-100 to-purple-200 rounded animate-pulse"></div><div class="text-gray-600 text-base">Loading...</div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/024577c11b6591ee.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[79520,[\"/_next/static/chunks/6476cb4cca157a2b.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/fe612684b7f6e550.js\"],\"\"]\n3:I[31362,[\"/_next/static/chunks/6476cb4cca157a2b.js\",\"/_next/static/chunks/7357d2854ba3186b.js\",\"/_next/static/chunks/fe612684b7f6e550.js\"],\"Go