Started making brand language adjustments
This commit is contained in:
parent
f2b32d2b9e
commit
3a7e2508ac
@ -155,7 +155,7 @@ var DOQueueHandler = class extends DurableObject {
|
||||
method: "HEAD",
|
||||
headers: {
|
||||
// This is defined during build
|
||||
"x-prerender-revalidate": "99755ef025160fcf22d0560ccd3bfacb",
|
||||
"x-prerender-revalidate": "42bbc9625f2cc0e29d24becbca02f1d9",
|
||||
"x-isr": "1"
|
||||
},
|
||||
// This one is kind of problematic, it will always show the wall time of the revalidation to `this.revalidationTimeout`
|
||||
@ -179,7 +179,7 @@ var DOQueueHandler = class extends DurableObject {
|
||||
"INSERT OR REPLACE INTO sync (id, lastSuccess, buildId) VALUES (?, unixepoch(), ?)",
|
||||
// We cannot use the deduplication id because it's not unique per route - every time a route is revalidated, the deduplication id is different.
|
||||
`${host}${url}`,
|
||||
"gz8pMJEvUI87moReQg9Aq"
|
||||
"mAQwDDdozjqqjAlfqoI9f"
|
||||
);
|
||||
}
|
||||
this.routeInFailedState.delete(msg.MessageDeduplicationId);
|
||||
@ -231,7 +231,7 @@ var DOQueueHandler = class extends DurableObject {
|
||||
}
|
||||
this.routeInFailedState.set(msg.MessageDeduplicationId, updatedFailedState);
|
||||
if (!this.disableSQLite) {
|
||||
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "gz8pMJEvUI87moReQg9Aq");
|
||||
this.sql.exec("INSERT OR REPLACE INTO failed_state (id, data, buildId) VALUES (?, ?, ?)", msg.MessageDeduplicationId, JSON.stringify(updatedFailedState), "mAQwDDdozjqqjAlfqoI9f");
|
||||
}
|
||||
await this.addAlarm();
|
||||
}
|
||||
@ -255,8 +255,8 @@ var DOQueueHandler = class extends DurableObject {
|
||||
return;
|
||||
this.sql.exec("CREATE TABLE IF NOT EXISTS failed_state (id TEXT PRIMARY KEY, data TEXT, buildId TEXT)");
|
||||
this.sql.exec("CREATE TABLE IF NOT EXISTS sync (id TEXT PRIMARY KEY, lastSuccess INTEGER, buildId TEXT)");
|
||||
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "gz8pMJEvUI87moReQg9Aq");
|
||||
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "gz8pMJEvUI87moReQg9Aq");
|
||||
this.sql.exec("DELETE FROM failed_state WHERE buildId != ?", "mAQwDDdozjqqjAlfqoI9f");
|
||||
this.sql.exec("DELETE FROM sync WHERE buildId != ?", "mAQwDDdozjqqjAlfqoI9f");
|
||||
const failedStateCursor = this.sql.exec("SELECT * FROM failed_state");
|
||||
for (const row of failedStateCursor) {
|
||||
this.routeInFailedState.set(row.id, JSON.parse(row.data));
|
||||
|
||||
@ -1 +1 @@
|
||||
gz8pMJEvUI87moReQg9Aq
|
||||
mAQwDDdozjqqjAlfqoI9f
|
||||
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7409,9034,68,9509,5293,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7409,9034,5293,68,9509,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9034,7409,68,9509,5293,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9034,7409,5293,68,9509,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[68,7409,9034,9509,5293,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[68,7409,9034,5293,9509,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9509,7409,9034,68,5293,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9509,7409,9034,5293,68,5401,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5401,7409,9034,68,9509,5293,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5401,7409,9034,5293,68,9509,7905,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7905,7409,9034,68,9509,5293,5401,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7905,7409,9034,5293,68,9509,5401,1388,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1388,7409,9034,68,9509,5293,5401,7905,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1388,7409,9034,5293,68,9509,5401,7905,1418],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1418,7409,9034,68,9509,5293,5401,7905,1388],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1418,7409,9034,5293,68,9509,5401,7905,1388],{63521:function(){}},function(n){n.O(0,[2971,2117,1744],function(){return n(n.s=63521)}),_N_E=n.O()}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
||||
{"type":"app","html":"<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><title>500: Internal Server Error</title><meta name=\"next-head-count\" content=\"3\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills-42372ed130431b0a.js\"></script><script src=\"/_next/static/chunks/webpack-757604220b96f05e.js\" defer=\"\"></script><script src=\"/_next/static/chunks/framework-8e0e0f4a6b83a956.js\" defer=\"\"></script><script src=\"/_next/static/chunks/main-c7b74b84e134a397.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_app-3c9ca398d360b709.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js\" defer=\"\"></script><script src=\"/_next/static/gz8pMJEvUI87moReQg9Aq/_buildManifest.js\" defer=\"\"></script><script src=\"/_next/static/gz8pMJEvUI87moReQg9Aq/_ssgManifest.js\" defer=\"\"></script></head><body><div id=\"__next\"><div style=\"font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center\"><div style=\"line-height:48px\"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class=\"next-error-h1\" style=\"display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top\">500</h1><div style=\"display:inline-block\"><h2 style=\"font-size:14px;font-weight:400;line-height:28px\">Internal Server Error<!-- -->.</h2></div></div></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"gz8pMJEvUI87moReQg9Aq\",\"nextExport\":true,\"isFallback\":false,\"gip\":true,\"scriptLoader\":[]}</script></body></html>"}
|
||||
{"type":"app","html":"<!DOCTYPE html><html><head><meta charSet=\"utf-8\"/><meta name=\"viewport\" content=\"width=device-width\"/><title>500: Internal Server Error</title><meta name=\"next-head-count\" content=\"3\"/><noscript data-n-css=\"\"></noscript><script defer=\"\" nomodule=\"\" src=\"/_next/static/chunks/polyfills-42372ed130431b0a.js\"></script><script src=\"/_next/static/chunks/webpack-757604220b96f05e.js\" defer=\"\"></script><script src=\"/_next/static/chunks/framework-8e0e0f4a6b83a956.js\" defer=\"\"></script><script src=\"/_next/static/chunks/main-c7b74b84e134a397.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_app-3c9ca398d360b709.js\" defer=\"\"></script><script src=\"/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js\" defer=\"\"></script><script src=\"/_next/static/mAQwDDdozjqqjAlfqoI9f/_buildManifest.js\" defer=\"\"></script><script src=\"/_next/static/mAQwDDdozjqqjAlfqoI9f/_ssgManifest.js\" defer=\"\"></script></head><body><div id=\"__next\"><div style=\"font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center\"><div style=\"line-height:48px\"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class=\"next-error-h1\" style=\"display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top\">500</h1><div style=\"display:inline-block\"><h2 style=\"font-size:14px;font-weight:400;line-height:28px\">Internal Server Error<!-- -->.</h2></div></div></div></div><script id=\"__NEXT_DATA__\" type=\"application/json\">{\"props\":{\"pageProps\":{\"statusCode\":500}},\"page\":\"/_error\",\"query\":{},\"buildId\":\"mAQwDDdozjqqjAlfqoI9f\",\"nextExport\":true,\"isFallback\":false,\"gip\":true,\"scriptLoader\":[]}</script></body></html>"}
|
||||
@ -1,3 +1,3 @@
|
||||
CREATE TABLE IF NOT EXISTS tags (tag TEXT NOT NULL, path TEXT NOT NULL, UNIQUE(tag, path) ON CONFLICT REPLACE);
|
||||
CREATE TABLE IF NOT EXISTS revalidations (tag TEXT NOT NULL, revalidatedAt INTEGER NOT NULL, UNIQUE(tag) ON CONFLICT REPLACE);
|
||||
INSERT INTO tags (tag, path) VALUES ("gz8pMJEvUI87moReQg9Aq/_N_T_/layout", "gz8pMJEvUI87moReQg9Aq/favicon.ico"), ("gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico/layout", "gz8pMJEvUI87moReQg9Aq/favicon.ico"), ("gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico/route", "gz8pMJEvUI87moReQg9Aq/favicon.ico"), ("gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico", "gz8pMJEvUI87moReQg9Aq/favicon.ico");
|
||||
INSERT INTO tags (tag, path) VALUES ("mAQwDDdozjqqjAlfqoI9f/_N_T_/layout", "mAQwDDdozjqqjAlfqoI9f/favicon.ico"), ("mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico/layout", "mAQwDDdozjqqjAlfqoI9f/favicon.ico"), ("mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico/route", "mAQwDDdozjqqjAlfqoI9f/favicon.ico"), ("mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico", "mAQwDDdozjqqjAlfqoI9f/favicon.ico");
|
||||
@ -49,7 +49,7 @@ function initRuntime() {
|
||||
};
|
||||
Object.assign(globalThis, {
|
||||
Request: CustomRequest,
|
||||
__BUILD_TIMESTAMP_MS__: 1758354804157,
|
||||
__BUILD_TIMESTAMP_MS__: 1758358257864,
|
||||
__NEXT_BASE_PATH__: "",
|
||||
__ASSETS_RUN_WORKER_FIRST__: false,
|
||||
__TRAILING_SLASH__: false,
|
||||
|
||||
@ -1 +1 @@
|
||||
[{"tag":{"S":"gz8pMJEvUI87moReQg9Aq/_N_T_/layout"},"path":{"S":"gz8pMJEvUI87moReQg9Aq/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico/layout"},"path":{"S":"gz8pMJEvUI87moReQg9Aq/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico/route"},"path":{"S":"gz8pMJEvUI87moReQg9Aq/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"gz8pMJEvUI87moReQg9Aq/_N_T_/favicon.ico"},"path":{"S":"gz8pMJEvUI87moReQg9Aq/favicon.ico"},"revalidatedAt":{"N":"1"}}]
|
||||
[{"tag":{"S":"mAQwDDdozjqqjAlfqoI9f/_N_T_/layout"},"path":{"S":"mAQwDDdozjqqjAlfqoI9f/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico/layout"},"path":{"S":"mAQwDDdozjqqjAlfqoI9f/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico/route"},"path":{"S":"mAQwDDdozjqqjAlfqoI9f/favicon.ico"},"revalidatedAt":{"N":"1"}},{"tag":{"S":"mAQwDDdozjqqjAlfqoI9f/_N_T_/favicon.ico"},"path":{"S":"mAQwDDdozjqqjAlfqoI9f/favicon.ico"},"revalidatedAt":{"N":"1"}}]
|
||||
@ -5255,13 +5255,13 @@ var NEXT_DIR = path.join(__dirname, ".next");
|
||||
var OPEN_NEXT_DIR = path.join(__dirname, ".open-next");
|
||||
debug({ NEXT_DIR, OPEN_NEXT_DIR });
|
||||
var NextConfig = { "env": {}, "webpack": null, "eslint": { "ignoreDuringBuilds": true }, "typescript": { "ignoreBuildErrors": true, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.mjs", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["tsx", "ts", "jsx", "js"], "poweredByHeader": true, "compress": true, "analyticsId": "", "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": ["image/webp"], "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "inline", "remotePatterns": [], "unoptimized": true }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactProductionProfiling": false, "reactStrictMode": null, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": true, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "experimental": { "multiZoneDraftMode": false, "prerenderEarlyExit": false, "serverMinification": true, "serverSourceMaps": false, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 11, "memoryBasedWorkersCount": false, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "outputFileTracingRoot": "/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo", "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "adjustFontFallbacks": false, "adjustFontFallbacksWithSizeAdjust": false, "typedRoutes": false, "instrumentationHook": false, "bundlePagesExternals": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "missingSuspenseWithCSRBailout": true, "optimizeServerReact": true, "useEarlyImport": false, "staleTimes": { "dynamic": 30, "static": 300 }, "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "configFileName": "next.config.mjs" };
|
||||
var BuildId = "gz8pMJEvUI87moReQg9Aq";
|
||||
var BuildId = "mAQwDDdozjqqjAlfqoI9f";
|
||||
var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/admin", "regex": "^/admin(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin(?:/)?$" }, { "page": "/admin/analytics", "regex": "^/admin/analytics(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/analytics(?:/)?$" }, { "page": "/admin/artists", "regex": "^/admin/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists(?:/)?$" }, { "page": "/admin/artists/new", "regex": "^/admin/artists/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists/new(?:/)?$" }, { "page": "/admin/calendar", "regex": "^/admin/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/calendar(?:/)?$" }, { "page": "/admin/portfolio", "regex": "^/admin/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/portfolio(?:/)?$" }, { "page": "/admin/settings", "regex": "^/admin/settings(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/settings(?:/)?$" }, { "page": "/admin/uploads", "regex": "^/admin/uploads(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/uploads(?:/)?$" }, { "page": "/aftercare", "regex": "^/aftercare(?:/)?$", "routeKeys": {}, "namedRegex": "^/aftercare(?:/)?$" }, { "page": "/artists", "regex": "^/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/artists(?:/)?$" }, { "page": "/auth/error", "regex": "^/auth/error(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/error(?:/)?$" }, { "page": "/auth/signin", "regex": "^/auth/signin(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/signin(?:/)?$" }, { "page": "/book", "regex": "^/book(?:/)?$", "routeKeys": {}, "namedRegex": "^/book(?:/)?$" }, { "page": "/contact", "regex": "^/contact(?:/)?$", "routeKeys": {}, "namedRegex": "^/contact(?:/)?$" }, { "page": "/deposit", "regex": "^/deposit(?:/)?$", "routeKeys": {}, "namedRegex": "^/deposit(?:/)?$" }, { "page": "/favicon.ico", "regex": "^/favicon\\.ico(?:/)?$", "routeKeys": {}, "namedRegex": "^/favicon\\.ico(?:/)?$" }, { "page": "/gift-cards", "regex": "^/gift\\-cards(?:/)?$", "routeKeys": {}, "namedRegex": "^/gift\\-cards(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/specials", "regex": "^/specials(?:/)?$", "routeKeys": {}, "namedRegex": "^/specials(?:/)?$" }, { "page": "/terms", "regex": "^/terms(?:/)?$", "routeKeys": {}, "namedRegex": "^/terms(?:/)?$" }], "dynamic": [{ "page": "/admin/artists/[id]", "regex": "^/admin/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artists/[id]", "regex": "^/api/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/auth/[...nextauth]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPnextauth": "nxtPnextauth" }, "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$" }, { "page": "/api/portfolio/[id]", "regex": "^/api/portfolio/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]", "regex": "^/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]/book", "regex": "^/artists/([^/]+?)/book(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] };
|
||||
var ConfigHeaders = [];
|
||||
var PrerenderManifest = { "version": 4, "routes": { "/favicon.ico": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "image/x-icon", "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" }, "experimentalBypassFor": [{ "type": "header", "key": "Next-Action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/favicon.ico", "dataRoute": null } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "99755ef025160fcf22d0560ccd3bfacb", "previewModeSigningKey": "776739d8eae8268964d6cbfffa1ca408958be3c7505213a17ee4f6f051fdd978", "previewModeEncryptionKey": "c2faa229a10a0bf6b4268feb7296ccadeb0f83a5288cfe5b7585beed732d1445" } };
|
||||
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "gz8pMJEvUI87moReQg9Aq", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5BkhnreT0UMAbkH2/BNzd06Ch/HTypOl9TrJ2enxxHY=", "__NEXT_PREVIEW_MODE_ID": "99755ef025160fcf22d0560ccd3bfacb", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "c2faa229a10a0bf6b4268feb7296ccadeb0f83a5288cfe5b7585beed732d1445", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "776739d8eae8268964d6cbfffa1ca408958be3c7505213a17ee4f6f051fdd978" } } }, "functions": {}, "sortedMiddleware": ["/"] };
|
||||
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/page": "/artists/[id]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/page": "/artists", "/auth/error/page": "/auth/error", "/auth/signin/page": "/auth/signin", "/book/page": "/book", "/contact/page": "/contact", "/deposit/page": "/deposit", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/specials/page": "/specials", "/terms/page": "/terms", "/api/admin/stats/route": "/api/admin/stats", "/api/artists/route": "/api/artists", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/files/folder/route": "/api/files/folder", "/api/files/stats/route": "/api/files/stats", "/api/files/route": "/api/files", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/appointments/route": "/api/appointments", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/api/users/route": "/api/users", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/route": "/api/portfolio", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/artists/page": "/admin/artists", "/admin/calendar/page": "/admin/calendar", "/admin/page": "/admin", "/admin/portfolio/page": "/admin/portfolio", "/admin/settings/page": "/admin/settings", "/admin/uploads/page": "/admin/uploads", "/admin/analytics/page": "/admin/analytics" };
|
||||
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/files/bulk-delete": {}, "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files": {}, "/api/files/stats": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/[id]": {}, "/api/appointments": {}, "/api/portfolio/stats": {}, "/api/portfolio": {}, "/api/users": {}, "/api/upload": {}, "/api/settings": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/uploads": {}, "/admin/analytics": {} } };
|
||||
var PrerenderManifest = { "version": 4, "routes": { "/favicon.ico": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "image/x-icon", "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" }, "experimentalBypassFor": [{ "type": "header", "key": "Next-Action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/favicon.ico", "dataRoute": null } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "42bbc9625f2cc0e29d24becbca02f1d9", "previewModeSigningKey": "296ede16825806ff37de6f889db88da4413d605f18c2649692f85520dd673cf9", "previewModeEncryptionKey": "acf8aaea4e2a412b48e4a05dd039b96408fc116933675638a0f13f8becf85674" } };
|
||||
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "mAQwDDdozjqqjAlfqoI9f", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5l4RCMR9pNDRhM88aRBM7Xm6+E38ofSS+a4lVwujUro=", "__NEXT_PREVIEW_MODE_ID": "42bbc9625f2cc0e29d24becbca02f1d9", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "acf8aaea4e2a412b48e4a05dd039b96408fc116933675638a0f13f8becf85674", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "296ede16825806ff37de6f889db88da4413d605f18c2649692f85520dd673cf9" } } }, "functions": {}, "sortedMiddleware": ["/"] };
|
||||
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/[id]/page": "/artists/[id]", "/auth/error/page": "/auth/error", "/artists/page": "/artists", "/auth/signin/page": "/auth/signin", "/book/page": "/book", "/contact/page": "/contact", "/deposit/page": "/deposit", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/specials/page": "/specials", "/terms/page": "/terms", "/api/admin/stats/route": "/api/admin/stats", "/api/artists/route": "/api/artists", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/files/folder/route": "/api/files/folder", "/api/files/route": "/api/files", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/files/stats/route": "/api/files/stats", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/route": "/api/portfolio", "/api/appointments/route": "/api/appointments", "/api/users/route": "/api/users", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/calendar/page": "/admin/calendar", "/admin/artists/page": "/admin/artists", "/admin/page": "/admin", "/admin/settings/page": "/admin/settings", "/admin/portfolio/page": "/admin/portfolio", "/admin/uploads/page": "/admin/uploads", "/admin/analytics/page": "/admin/analytics" };
|
||||
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files/bulk-delete": {}, "/api/files": {}, "/api/files/stats": {}, "/api/appointments": {}, "/api/portfolio/[id]": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/stats": {}, "/api/portfolio": {}, "/api/settings": {}, "/api/users": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/analytics": {}, "/api/upload": {}, "/admin/uploads": {} } };
|
||||
var PagesManifest = { "/_app": "pages/_app.js", "/_error": "pages/_error.js", "/_document": "pages/_document.js" };
|
||||
process.env.NEXT_BUILD_ID = BuildId;
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
gz8pMJEvUI87moReQg9Aq
|
||||
mAQwDDdozjqqjAlfqoI9f
|
||||
@ -12,14 +12,14 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/_not-found/page-dcd8308814c31b33.js"
|
||||
"static/chunks/app/_not-found/page-2564a9793833e243.js"
|
||||
],
|
||||
"/layout": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/css/466623f4d7046845.css",
|
||||
"static/css/1c39bc4a999e47f8.css",
|
||||
"static/css/273d08c2abf40b5c.css",
|
||||
"static/chunks/605-b40754e541fd4ec3.js",
|
||||
"static/chunks/9763-93fc3f5b8786b2e4.js",
|
||||
@ -42,7 +42,7 @@
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/200-c5238abf2da840bb.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/aftercare/page-da758d008f883574.js"
|
||||
"static/chunks/app/aftercare/page-656f7c1f8b6fa9b2.js"
|
||||
],
|
||||
"/aftercare/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -57,47 +57,7 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/aftercare/loading-ec0f1130068af552.js"
|
||||
],
|
||||
"/artists/[id]/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/artists/[id]/page-6aa2603a52f33550.js"
|
||||
],
|
||||
"/artists/[id]/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/app/artists/[id]/error-e59241e6821ea29d.js"
|
||||
],
|
||||
"/artists/[id]/loading": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/artists/[id]/loading-515e72b357b99cba.js"
|
||||
],
|
||||
"/artists/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/app/artists/error-8aa157435eae2bf2.js"
|
||||
],
|
||||
"/artists/loading": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/artists/loading-365f31eacfbdd759.js"
|
||||
"static/chunks/app/aftercare/loading-ce031141d0fba2db.js"
|
||||
],
|
||||
"/artists/[id]/book/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -129,7 +89,37 @@
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/artists/[id]/book/loading-935107cacc102a2a.js"
|
||||
],
|
||||
"/artists/page": [
|
||||
"/artists/[id]/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/app/artists/[id]/error-e59241e6821ea29d.js"
|
||||
],
|
||||
"/artists/[id]/loading": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/artists/[id]/loading-a2fb175fabb5fa16.js"
|
||||
],
|
||||
"/artists/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/app/artists/error-8aa157435eae2bf2.js"
|
||||
],
|
||||
"/artists/loading": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/artists/loading-d293bff8cccee2c6.js"
|
||||
],
|
||||
"/artists/[id]/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
@ -137,7 +127,7 @@
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/artists/page-d4881e8d6b8f4a9c.js"
|
||||
"static/chunks/app/artists/[id]/page-6aa2603a52f33550.js"
|
||||
],
|
||||
"/auth/error/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -148,6 +138,16 @@
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/app/auth/error/page-2691b46829d28d44.js"
|
||||
],
|
||||
"/artists/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/artists/page-d4881e8d6b8f4a9c.js"
|
||||
],
|
||||
"/auth/signin/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
@ -185,7 +185,7 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/book/loading-304826aebccaab2a.js"
|
||||
"static/chunks/app/book/loading-3b0651f0558fc773.js"
|
||||
],
|
||||
"/contact/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -209,7 +209,7 @@
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/200-c5238abf2da840bb.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/deposit/page-3b59a4cbb8b6fe77.js"
|
||||
"static/chunks/app/deposit/page-513c4bde87ea3aa9.js"
|
||||
],
|
||||
"/deposit/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -224,7 +224,7 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/deposit/loading-b15fb49ddf5e376a.js"
|
||||
"static/chunks/app/deposit/loading-a9763cde0a954c13.js"
|
||||
],
|
||||
"/gift-cards/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -255,7 +255,7 @@
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/privacy/page-8082c34f15c6583d.js"
|
||||
"static/chunks/app/privacy/page-b243a5f2eb77cdb2.js"
|
||||
],
|
||||
"/privacy/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -270,7 +270,7 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/privacy/loading-0d4ee1245e183927.js"
|
||||
"static/chunks/app/privacy/loading-d1d6ec4ebb33573e.js"
|
||||
],
|
||||
"/specials/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -290,7 +290,7 @@
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/9480-f2a0d2341720dab4.js",
|
||||
"static/chunks/5360-8a18cb235c9d43e4.js",
|
||||
"static/chunks/app/terms/page-17192156e62f6bfe.js"
|
||||
"static/chunks/app/terms/page-7e4cff7860dd15c8.js"
|
||||
],
|
||||
"/terms/error": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -305,7 +305,7 @@
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/app/terms/loading-e8ffcf3670b4bd3f.js"
|
||||
"static/chunks/app/terms/loading-26938e980c1b83ed.js"
|
||||
],
|
||||
"/admin/artists/[id]/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
@ -337,17 +337,6 @@
|
||||
"static/chunks/9504-7f79307d96ed82b0.js",
|
||||
"static/chunks/app/admin/artists/new/page-fc95720483d0cd2a.js"
|
||||
],
|
||||
"/admin/artists/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/5922-88993df301b0fe6c.js",
|
||||
"static/chunks/1289-568be99e69c7b758.js",
|
||||
"static/chunks/3897-a207141bfd0cdd7a.js",
|
||||
"static/chunks/app/admin/artists/page-0dd59ef8e7fe4cae.js"
|
||||
],
|
||||
"/admin/calendar/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
@ -368,6 +357,17 @@
|
||||
"static/chunks/4196-108bdc425dea9d4d.js",
|
||||
"static/chunks/app/admin/calendar/page-a29ec1514cf1c1ad.js"
|
||||
],
|
||||
"/admin/artists/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/5922-88993df301b0fe6c.js",
|
||||
"static/chunks/1289-568be99e69c7b758.js",
|
||||
"static/chunks/3897-a207141bfd0cdd7a.js",
|
||||
"static/chunks/app/admin/artists/page-0dd59ef8e7fe4cae.js"
|
||||
],
|
||||
"/admin/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
@ -380,20 +380,6 @@
|
||||
"static/chunks/1061-dd5934f48325f2fe.js",
|
||||
"static/chunks/app/admin/page-7a927fb8d2586a85.js"
|
||||
],
|
||||
"/admin/portfolio/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/5922-88993df301b0fe6c.js",
|
||||
"static/chunks/1289-568be99e69c7b758.js",
|
||||
"static/chunks/4975-e65c083bb486f7b9.js",
|
||||
"static/chunks/9027-72d4e4b31ea4b417.js",
|
||||
"static/chunks/971-8b8c5df661769882.js",
|
||||
"static/chunks/6298-ed1f2b36c3535636.js",
|
||||
"static/chunks/app/admin/portfolio/page-77f4075ab14cae00.js"
|
||||
],
|
||||
"/admin/settings/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
@ -408,6 +394,20 @@
|
||||
"static/chunks/6298-ed1f2b36c3535636.js",
|
||||
"static/chunks/app/admin/settings/page-9f0d298cdde6e0d4.js"
|
||||
],
|
||||
"/admin/portfolio/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
"static/chunks/2117-da904839ecb5d5f9.js",
|
||||
"static/chunks/main-app-ac1aded1f8d8af62.js",
|
||||
"static/chunks/6137-eaf7b6db0f76248f.js",
|
||||
"static/chunks/5922-88993df301b0fe6c.js",
|
||||
"static/chunks/1289-568be99e69c7b758.js",
|
||||
"static/chunks/4975-e65c083bb486f7b9.js",
|
||||
"static/chunks/9027-72d4e4b31ea4b417.js",
|
||||
"static/chunks/971-8b8c5df661769882.js",
|
||||
"static/chunks/6298-ed1f2b36c3535636.js",
|
||||
"static/chunks/app/admin/portfolio/page-77f4075ab14cae00.js"
|
||||
],
|
||||
"/admin/uploads/page": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
"static/chunks/fd9d1056-a2747418f8441a81.js",
|
||||
|
||||
@ -1 +1 @@
|
||||
{"/_not-found/page":"/_not-found","/aftercare/page":"/aftercare","/api/admin/migrate/route":"/api/admin/migrate","/api/artists/[id]/route":"/api/artists/[id]","/api/auth/[...nextauth]/route":"/api/auth/[...nextauth]","/artists/[id]/page":"/artists/[id]","/artists/[id]/book/page":"/artists/[id]/book","/artists/page":"/artists","/auth/error/page":"/auth/error","/auth/signin/page":"/auth/signin","/book/page":"/book","/contact/page":"/contact","/deposit/page":"/deposit","/favicon.ico/route":"/favicon.ico","/gift-cards/page":"/gift-cards","/page":"/","/privacy/page":"/privacy","/specials/page":"/specials","/terms/page":"/terms","/api/admin/stats/route":"/api/admin/stats","/api/artists/route":"/api/artists","/api/files/bulk-delete/route":"/api/files/bulk-delete","/api/files/folder/route":"/api/files/folder","/api/files/stats/route":"/api/files/stats","/api/files/route":"/api/files","/api/portfolio/bulk-delete/route":"/api/portfolio/bulk-delete","/api/portfolio/[id]/route":"/api/portfolio/[id]","/api/appointments/route":"/api/appointments","/api/settings/route":"/api/settings","/api/upload/route":"/api/upload","/api/users/route":"/api/users","/api/portfolio/stats/route":"/api/portfolio/stats","/api/portfolio/route":"/api/portfolio","/admin/artists/[id]/page":"/admin/artists/[id]","/admin/artists/new/page":"/admin/artists/new","/admin/artists/page":"/admin/artists","/admin/calendar/page":"/admin/calendar","/admin/page":"/admin","/admin/portfolio/page":"/admin/portfolio","/admin/settings/page":"/admin/settings","/admin/uploads/page":"/admin/uploads","/admin/analytics/page":"/admin/analytics"}
|
||||
{"/_not-found/page":"/_not-found","/aftercare/page":"/aftercare","/api/admin/migrate/route":"/api/admin/migrate","/api/artists/[id]/route":"/api/artists/[id]","/api/auth/[...nextauth]/route":"/api/auth/[...nextauth]","/artists/[id]/book/page":"/artists/[id]/book","/artists/[id]/page":"/artists/[id]","/auth/error/page":"/auth/error","/artists/page":"/artists","/auth/signin/page":"/auth/signin","/book/page":"/book","/contact/page":"/contact","/deposit/page":"/deposit","/favicon.ico/route":"/favicon.ico","/gift-cards/page":"/gift-cards","/page":"/","/privacy/page":"/privacy","/specials/page":"/specials","/terms/page":"/terms","/api/admin/stats/route":"/api/admin/stats","/api/artists/route":"/api/artists","/api/files/bulk-delete/route":"/api/files/bulk-delete","/api/files/folder/route":"/api/files/folder","/api/files/route":"/api/files","/api/portfolio/[id]/route":"/api/portfolio/[id]","/api/portfolio/bulk-delete/route":"/api/portfolio/bulk-delete","/api/files/stats/route":"/api/files/stats","/api/portfolio/stats/route":"/api/portfolio/stats","/api/portfolio/route":"/api/portfolio","/api/appointments/route":"/api/appointments","/api/users/route":"/api/users","/api/settings/route":"/api/settings","/api/upload/route":"/api/upload","/admin/artists/[id]/page":"/admin/artists/[id]","/admin/artists/new/page":"/admin/artists/new","/admin/calendar/page":"/admin/calendar","/admin/artists/page":"/admin/artists","/admin/page":"/admin","/admin/settings/page":"/admin/settings","/admin/portfolio/page":"/admin/portfolio","/admin/uploads/page":"/admin/uploads","/admin/analytics/page":"/admin/analytics"}
|
||||
@ -5,8 +5,8 @@
|
||||
"devFiles": [],
|
||||
"ampDevFiles": [],
|
||||
"lowPriorityFiles": [
|
||||
"static/gz8pMJEvUI87moReQg9Aq/_buildManifest.js",
|
||||
"static/gz8pMJEvUI87moReQg9Aq/_ssgManifest.js"
|
||||
"static/mAQwDDdozjqqjAlfqoI9f/_buildManifest.js",
|
||||
"static/mAQwDDdozjqqjAlfqoI9f/_ssgManifest.js"
|
||||
],
|
||||
"rootMainFiles": [
|
||||
"static/chunks/webpack-757604220b96f05e.js",
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":4,"routes":{"/favicon.ico":{"initialHeaders":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/favicon.ico","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"99755ef025160fcf22d0560ccd3bfacb","previewModeSigningKey":"776739d8eae8268964d6cbfffa1ca408958be3c7505213a17ee4f6f051fdd978","previewModeEncryptionKey":"c2faa229a10a0bf6b4268feb7296ccadeb0f83a5288cfe5b7585beed732d1445"}}
|
||||
{"version":4,"routes":{"/favicon.ico":{"initialHeaders":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/favicon.ico","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"42bbc9625f2cc0e29d24becbca02f1d9","previewModeSigningKey":"296ede16825806ff37de6f889db88da4413d605f18c2649692f85520dd673cf9","previewModeEncryptionKey":"acf8aaea4e2a412b48e4a05dd039b96408fc116933675638a0f13f8becf85674"}}
|
||||
@ -4,10 +4,10 @@
|
||||
"/api/admin/migrate/route": "app/api/admin/migrate/route.js",
|
||||
"/api/artists/[id]/route": "app/api/artists/[id]/route.js",
|
||||
"/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
|
||||
"/artists/[id]/page": "app/artists/[id]/page.js",
|
||||
"/artists/[id]/book/page": "app/artists/[id]/book/page.js",
|
||||
"/artists/page": "app/artists/page.js",
|
||||
"/artists/[id]/page": "app/artists/[id]/page.js",
|
||||
"/auth/error/page": "app/auth/error/page.js",
|
||||
"/artists/page": "app/artists/page.js",
|
||||
"/auth/signin/page": "app/auth/signin/page.js",
|
||||
"/book/page": "app/book/page.js",
|
||||
"/contact/page": "app/contact/page.js",
|
||||
@ -22,23 +22,23 @@
|
||||
"/api/artists/route": "app/api/artists/route.js",
|
||||
"/api/files/bulk-delete/route": "app/api/files/bulk-delete/route.js",
|
||||
"/api/files/folder/route": "app/api/files/folder/route.js",
|
||||
"/api/files/stats/route": "app/api/files/stats/route.js",
|
||||
"/api/files/route": "app/api/files/route.js",
|
||||
"/api/portfolio/bulk-delete/route": "app/api/portfolio/bulk-delete/route.js",
|
||||
"/api/portfolio/[id]/route": "app/api/portfolio/[id]/route.js",
|
||||
"/api/appointments/route": "app/api/appointments/route.js",
|
||||
"/api/settings/route": "app/api/settings/route.js",
|
||||
"/api/upload/route": "app/api/upload/route.js",
|
||||
"/api/users/route": "app/api/users/route.js",
|
||||
"/api/portfolio/bulk-delete/route": "app/api/portfolio/bulk-delete/route.js",
|
||||
"/api/files/stats/route": "app/api/files/stats/route.js",
|
||||
"/api/portfolio/stats/route": "app/api/portfolio/stats/route.js",
|
||||
"/api/portfolio/route": "app/api/portfolio/route.js",
|
||||
"/api/appointments/route": "app/api/appointments/route.js",
|
||||
"/api/users/route": "app/api/users/route.js",
|
||||
"/api/settings/route": "app/api/settings/route.js",
|
||||
"/api/upload/route": "app/api/upload/route.js",
|
||||
"/admin/artists/[id]/page": "app/admin/artists/[id]/page.js",
|
||||
"/admin/artists/new/page": "app/admin/artists/new/page.js",
|
||||
"/admin/artists/page": "app/admin/artists/page.js",
|
||||
"/admin/calendar/page": "app/admin/calendar/page.js",
|
||||
"/admin/artists/page": "app/admin/artists/page.js",
|
||||
"/admin/page": "app/admin/page.js",
|
||||
"/admin/portfolio/page": "app/admin/portfolio/page.js",
|
||||
"/admin/settings/page": "app/admin/settings/page.js",
|
||||
"/admin/portfolio/page": "app/admin/portfolio/page.js",
|
||||
"/admin/uploads/page": "app/admin/uploads/page.js",
|
||||
"/admin/analytics/page": "app/admin/analytics/page.js"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -17,11 +17,11 @@
|
||||
"wasm": [],
|
||||
"assets": [],
|
||||
"env": {
|
||||
"__NEXT_BUILD_ID": "gz8pMJEvUI87moReQg9Aq",
|
||||
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5BkhnreT0UMAbkH2/BNzd06Ch/HTypOl9TrJ2enxxHY=",
|
||||
"__NEXT_PREVIEW_MODE_ID": "99755ef025160fcf22d0560ccd3bfacb",
|
||||
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "c2faa229a10a0bf6b4268feb7296ccadeb0f83a5288cfe5b7585beed732d1445",
|
||||
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "776739d8eae8268964d6cbfffa1ca408958be3c7505213a17ee4f6f051fdd978"
|
||||
"__NEXT_BUILD_ID": "mAQwDDdozjqqjAlfqoI9f",
|
||||
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5l4RCMR9pNDRhM88aRBM7Xm6+E38ofSS+a4lVwujUro=",
|
||||
"__NEXT_PREVIEW_MODE_ID": "42bbc9625f2cc0e29d24becbca02f1d9",
|
||||
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "acf8aaea4e2a412b48e4a05dd039b96408fc116933675638a0f13f8becf85674",
|
||||
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "296ede16825806ff37de6f889db88da4413d605f18c2649692f85520dd673cf9"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -1 +1 @@
|
||||
{"node":{},"edge":{},"encryptionKey":"5BkhnreT0UMAbkH2/BNzd06Ch/HTypOl9TrJ2enxxHY="}
|
||||
{"node":{},"edge":{},"encryptionKey":"5l4RCMR9pNDRhM88aRBM7Xm6+E38ofSS+a4lVwujUro="}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -673,12 +673,12 @@ var NEXT_DIR = path.join(__dirname, ".next");
|
||||
var OPEN_NEXT_DIR = path.join(__dirname, ".open-next");
|
||||
debug({ NEXT_DIR, OPEN_NEXT_DIR });
|
||||
var NextConfig = { "env": {}, "webpack": null, "eslint": { "ignoreDuringBuilds": true }, "typescript": { "ignoreBuildErrors": true, "tsconfigPath": "tsconfig.json" }, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.mjs", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["tsx", "ts", "jsx", "js"], "poweredByHeader": true, "compress": true, "analyticsId": "", "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [16, 32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 60, "formats": ["image/webp"], "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "inline", "remotePatterns": [], "unoptimized": true }, "devIndicators": { "buildActivity": true, "buildActivityPosition": "bottom-right" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "amp": { "canonicalBase": "" }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "optimizeFonts": true, "excludeDefaultMomentLocales": true, "serverRuntimeConfig": {}, "publicRuntimeConfig": {}, "reactProductionProfiling": false, "reactStrictMode": null, "httpAgentOptions": { "keepAlive": true }, "outputFileTracing": true, "staticPageGenerationTimeout": 60, "swcMinify": true, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "experimental": { "multiZoneDraftMode": false, "prerenderEarlyExit": false, "serverMinification": true, "serverSourceMaps": false, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "middlewarePrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 11, "memoryBasedWorkersCount": false, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "outputFileTracingRoot": "/home/Nicholai/Documents/Dev/united_v03/united-tattoo/united-tattoo", "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "adjustFontFallbacks": false, "adjustFontFallbacksWithSizeAdjust": false, "typedRoutes": false, "instrumentationHook": false, "bundlePagesExternals": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "missingSuspenseWithCSRBailout": true, "optimizeServerReact": true, "useEarlyImport": false, "staleTimes": { "dynamic": 30, "static": 300 }, "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "configFileName": "next.config.mjs" };
|
||||
var BuildId = "gz8pMJEvUI87moReQg9Aq";
|
||||
var BuildId = "mAQwDDdozjqqjAlfqoI9f";
|
||||
var HtmlPages = [];
|
||||
var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/admin", "regex": "^/admin(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin(?:/)?$" }, { "page": "/admin/analytics", "regex": "^/admin/analytics(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/analytics(?:/)?$" }, { "page": "/admin/artists", "regex": "^/admin/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists(?:/)?$" }, { "page": "/admin/artists/new", "regex": "^/admin/artists/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/artists/new(?:/)?$" }, { "page": "/admin/calendar", "regex": "^/admin/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/calendar(?:/)?$" }, { "page": "/admin/portfolio", "regex": "^/admin/portfolio(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/portfolio(?:/)?$" }, { "page": "/admin/settings", "regex": "^/admin/settings(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/settings(?:/)?$" }, { "page": "/admin/uploads", "regex": "^/admin/uploads(?:/)?$", "routeKeys": {}, "namedRegex": "^/admin/uploads(?:/)?$" }, { "page": "/aftercare", "regex": "^/aftercare(?:/)?$", "routeKeys": {}, "namedRegex": "^/aftercare(?:/)?$" }, { "page": "/artists", "regex": "^/artists(?:/)?$", "routeKeys": {}, "namedRegex": "^/artists(?:/)?$" }, { "page": "/auth/error", "regex": "^/auth/error(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/error(?:/)?$" }, { "page": "/auth/signin", "regex": "^/auth/signin(?:/)?$", "routeKeys": {}, "namedRegex": "^/auth/signin(?:/)?$" }, { "page": "/book", "regex": "^/book(?:/)?$", "routeKeys": {}, "namedRegex": "^/book(?:/)?$" }, { "page": "/contact", "regex": "^/contact(?:/)?$", "routeKeys": {}, "namedRegex": "^/contact(?:/)?$" }, { "page": "/deposit", "regex": "^/deposit(?:/)?$", "routeKeys": {}, "namedRegex": "^/deposit(?:/)?$" }, { "page": "/favicon.ico", "regex": "^/favicon\\.ico(?:/)?$", "routeKeys": {}, "namedRegex": "^/favicon\\.ico(?:/)?$" }, { "page": "/gift-cards", "regex": "^/gift\\-cards(?:/)?$", "routeKeys": {}, "namedRegex": "^/gift\\-cards(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/specials", "regex": "^/specials(?:/)?$", "routeKeys": {}, "namedRegex": "^/specials(?:/)?$" }, { "page": "/terms", "regex": "^/terms(?:/)?$", "routeKeys": {}, "namedRegex": "^/terms(?:/)?$" }], "dynamic": [{ "page": "/admin/artists/[id]", "regex": "^/admin/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/admin/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artists/[id]", "regex": "^/api/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/auth/[...nextauth]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPnextauth": "nxtPnextauth" }, "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$" }, { "page": "/api/portfolio/[id]", "regex": "^/api/portfolio/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/portfolio/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]", "regex": "^/artists/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/artists/[id]/book", "regex": "^/artists/([^/]+?)/book(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/artists/(?<nxtPid>[^/]+?)/book(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] };
|
||||
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "gz8pMJEvUI87moReQg9Aq", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5BkhnreT0UMAbkH2/BNzd06Ch/HTypOl9TrJ2enxxHY=", "__NEXT_PREVIEW_MODE_ID": "99755ef025160fcf22d0560ccd3bfacb", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "c2faa229a10a0bf6b4268feb7296ccadeb0f83a5288cfe5b7585beed732d1445", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "776739d8eae8268964d6cbfffa1ca408958be3c7505213a17ee4f6f051fdd978" } } }, "functions": {}, "sortedMiddleware": ["/"] };
|
||||
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/page": "/artists/[id]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/page": "/artists", "/auth/error/page": "/auth/error", "/auth/signin/page": "/auth/signin", "/book/page": "/book", "/contact/page": "/contact", "/deposit/page": "/deposit", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/specials/page": "/specials", "/terms/page": "/terms", "/api/admin/stats/route": "/api/admin/stats", "/api/artists/route": "/api/artists", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/files/folder/route": "/api/files/folder", "/api/files/stats/route": "/api/files/stats", "/api/files/route": "/api/files", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/appointments/route": "/api/appointments", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/api/users/route": "/api/users", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/route": "/api/portfolio", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/artists/page": "/admin/artists", "/admin/calendar/page": "/admin/calendar", "/admin/page": "/admin", "/admin/portfolio/page": "/admin/portfolio", "/admin/settings/page": "/admin/settings", "/admin/uploads/page": "/admin/uploads", "/admin/analytics/page": "/admin/analytics" };
|
||||
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/files/bulk-delete": {}, "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files": {}, "/api/files/stats": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/[id]": {}, "/api/appointments": {}, "/api/portfolio/stats": {}, "/api/portfolio": {}, "/api/users": {}, "/api/upload": {}, "/api/settings": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/uploads": {}, "/admin/analytics": {} } };
|
||||
var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge-runtime-webpack.js", "server/middleware.js"], "name": "middleware", "page": "/", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next\\/static|_next\\/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*))(.json)?[\\/#\\?]?$", "originalSource": "/((?!_next/static|_next/image|favicon.ico|public|.*\\.png$|.*\\.jpg$|.*\\.jpeg$|.*\\.gif$|.*\\.svg$).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "mAQwDDdozjqqjAlfqoI9f", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "5l4RCMR9pNDRhM88aRBM7Xm6+E38ofSS+a4lVwujUro=", "__NEXT_PREVIEW_MODE_ID": "42bbc9625f2cc0e29d24becbca02f1d9", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "acf8aaea4e2a412b48e4a05dd039b96408fc116933675638a0f13f8becf85674", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "296ede16825806ff37de6f889db88da4413d605f18c2649692f85520dd673cf9" } } }, "functions": {}, "sortedMiddleware": ["/"] };
|
||||
var AppPathRoutesManifest = { "/_not-found/page": "/_not-found", "/aftercare/page": "/aftercare", "/api/admin/migrate/route": "/api/admin/migrate", "/api/artists/[id]/route": "/api/artists/[id]", "/api/auth/[...nextauth]/route": "/api/auth/[...nextauth]", "/artists/[id]/book/page": "/artists/[id]/book", "/artists/[id]/page": "/artists/[id]", "/auth/error/page": "/auth/error", "/artists/page": "/artists", "/auth/signin/page": "/auth/signin", "/book/page": "/book", "/contact/page": "/contact", "/deposit/page": "/deposit", "/favicon.ico/route": "/favicon.ico", "/gift-cards/page": "/gift-cards", "/page": "/", "/privacy/page": "/privacy", "/specials/page": "/specials", "/terms/page": "/terms", "/api/admin/stats/route": "/api/admin/stats", "/api/artists/route": "/api/artists", "/api/files/bulk-delete/route": "/api/files/bulk-delete", "/api/files/folder/route": "/api/files/folder", "/api/files/route": "/api/files", "/api/portfolio/[id]/route": "/api/portfolio/[id]", "/api/portfolio/bulk-delete/route": "/api/portfolio/bulk-delete", "/api/files/stats/route": "/api/files/stats", "/api/portfolio/stats/route": "/api/portfolio/stats", "/api/portfolio/route": "/api/portfolio", "/api/appointments/route": "/api/appointments", "/api/users/route": "/api/users", "/api/settings/route": "/api/settings", "/api/upload/route": "/api/upload", "/admin/artists/[id]/page": "/admin/artists/[id]", "/admin/artists/new/page": "/admin/artists/new", "/admin/calendar/page": "/admin/calendar", "/admin/artists/page": "/admin/artists", "/admin/page": "/admin", "/admin/settings/page": "/admin/settings", "/admin/portfolio/page": "/admin/portfolio", "/admin/uploads/page": "/admin/uploads", "/admin/analytics/page": "/admin/analytics" };
|
||||
var FunctionsConfigManifest = { "version": 1, "functions": { "/api/admin/stats": {}, "/api/artists": {}, "/api/files/folder": {}, "/api/files/bulk-delete": {}, "/api/files": {}, "/api/files/stats": {}, "/api/appointments": {}, "/api/portfolio/[id]": {}, "/api/portfolio/bulk-delete": {}, "/api/portfolio/stats": {}, "/api/portfolio": {}, "/api/settings": {}, "/api/users": {}, "/admin/portfolio": {}, "/admin/settings": {}, "/admin/analytics": {}, "/api/upload": {}, "/admin/uploads": {} } };
|
||||
var PagesManifest = { "/_app": "pages/_app.js", "/_error": "pages/_error.js", "/_document": "pages/_document.js" };
|
||||
process.env.NEXT_BUILD_ID = BuildId;
|
||||
|
||||
|
||||
283
docs/united_tattoo_brainstorming.md
Normal file
283
docs/united_tattoo_brainstorming.md
Normal file
@ -0,0 +1,283 @@
|
||||
# United Tattoo Brand Language Brainstorming Session
|
||||
|
||||
**Session Date:** December 19, 2024
|
||||
**Facilitator:** Business Analyst Mary
|
||||
**Participant:** United Tattoo Team
|
||||
|
||||
## Executive Summary
|
||||
|
||||
**Topic:** Creating a structured brand language rulebook for United Tattoo
|
||||
|
||||
**Session Goals:** Develop authentic brand language guidelines that transform generic copy into distinctive United Tattoo voice
|
||||
|
||||
**Techniques Used:** Progressive technique flow with analyst-recommended methods
|
||||
|
||||
**Total Ideas Generated:** [To be updated during session]
|
||||
|
||||
## Technique Sessions
|
||||
|
||||
### Assumption Reversal - 10 minutes
|
||||
|
||||
**Description:** Identify what United Tattoo would NEVER say to establish authentic boundaries
|
||||
|
||||
**Ideas Generated:**
|
||||
1. "For the ones who live loud, tattoo proud, and believe in better" - forced verb usage, empty promises
|
||||
2. "This isn't your average tattoo shop" - defensive positioning, cliche opening
|
||||
3. "We're here to rewrite the narrative" - vague corporate speak with no clear meaning
|
||||
4. "where everyone feels seen, respected, and hyped to walk through our doors" - outdated slang, trying too hard
|
||||
5. "elevate the experience" - buzzword soup, unnecessarily verbose
|
||||
6. "create a space where real connection matters" - stating obvious human nature as unique value
|
||||
7. "we hire great people, not just great artists" - setting bar impossibly low
|
||||
8. "bring both skill and soul to the table" - cliche metaphor mixing
|
||||
9. "Every tattoo here is a story, a statement, and a shared moment" - overwrought emotional manipulation
|
||||
|
||||
**Insights Discovered:**
|
||||
- LLM-generated copy defaults to meaningless adjective stacking
|
||||
- Generic "transformation" language ignores actual tattoo shop reality
|
||||
- Forced emotional narratives sound inauthentic and manipulative
|
||||
- Defensive positioning ("not your average") suggests insecurity
|
||||
- Buzzwords replace actual concrete value propositions
|
||||
|
||||
**Notable Connections:**
|
||||
- All bad examples try to be everything to everyone instead of something specific
|
||||
- Corporate speak completely disconnects from tattoo culture authenticity
|
||||
- Overuse of transformation/elevation language feels condescending
|
||||
|
||||
### Role Playing - 15 minutes
|
||||
|
||||
**Description:** Discover authentic voice through real stakeholder interactions
|
||||
|
||||
**Ideas Generated:**
|
||||
|
||||
**Nervous First-Timer Response:**
|
||||
- "Hey that's okay! Girl we all have been scared of getting a tattoo before, shit, I get scared sometimes even now"
|
||||
- "You just let me know if you need a break, we can step out at any time, take a smoke break, just hang out"
|
||||
- "We can go at your pace"
|
||||
|
||||
**Picky Client Response:**
|
||||
- "Holy-fuck yeah- that's a lot-- that's okay though, I love having references!"
|
||||
- "Do you mind taking a seat so you can break this down for me?"
|
||||
|
||||
**Insights Discovered:**
|
||||
- Authentic voice uses mild profanity naturally, not performatively
|
||||
- Real empathy comes from shared experience ("I get scared sometimes even now")
|
||||
- Practical solutions over emotional theater ("take a smoke break, just hang out")
|
||||
- Direct acknowledgment of chaos without judgment ("that's a lot")
|
||||
- Collaborative problem-solving approach ("break this down for me")
|
||||
|
||||
**Notable Connections:**
|
||||
- Authenticity = vulnerability + practicality
|
||||
- Real tattoo artists talk like humans, not customer service scripts
|
||||
- Genuine care shows through actions offered, not feelings described
|
||||
|
||||
### First Principles Thinking - 15 minutes
|
||||
|
||||
**Description:** Extract fundamental language rules from authentic interactions
|
||||
|
||||
**Core Rules Identified:**
|
||||
|
||||
**Rule 1: Direct acknowledgment beats diplomatic deflection**
|
||||
- Rationale: When you leave things unsaid, people internalize and make assumptions. Blunt but friendly prevents judgment feelings.
|
||||
- Bad: "We understand everyone has different comfort levels"
|
||||
- Good: "Holy-fuck yeah- that's a lot"
|
||||
|
||||
**Rule 2: Offer practical solutions, not emotional theater**
|
||||
- Rationale: "I'm not your fuckin dad" - beautiful humans interacting with beautiful humans, not therapy sessions
|
||||
- Bad: "create a safe space where you feel supported"
|
||||
- Good: "take a smoke break, just hang out"
|
||||
|
||||
**Rule 3: Plain speaking about pricing/time**
|
||||
- Example: "Hey so because this is 6 inches long and I can tell that the complexity of the linework and shading is gonna take me an extra 2 hours, I'd feel comfortable doing this for $650, does that work for you?"
|
||||
- Principle: Transparent, specific, respectful
|
||||
|
||||
**Rule 4: Handle difficult clients with patience, like a human**
|
||||
- No elaborate customer service scripts
|
||||
- Human-to-human problem solving
|
||||
|
||||
**Rule 5: Describe work in quantifiable terms with justified confidence**
|
||||
- Bad: "93% proficient in opaques" (arbitrary metrics)
|
||||
- Good: "I've been doing opaques on shading for 5 years, would you like to see some examples so you can judge for yourself?"
|
||||
- Principle: If the artist, shop, portfolio or work can't justify the statement, don't make it
|
||||
|
||||
**Rule 6: Talk about other shops with kindness**
|
||||
- "The shop doesn't fucking matter. It's a building with some idiots in it. People only come for the idiots."
|
||||
- Focus on the artists, not competitive positioning
|
||||
|
||||
**Insights Discovered:**
|
||||
- Transparency prevents assumptions and judgment feelings
|
||||
- Confidence must be backed by demonstrable skill/experience
|
||||
- Human-to-human interaction trumps customer service performance
|
||||
- Competition isn't about shops, it's about individual artist quality
|
||||
|
||||
### Morphological Analysis - 10 minutes
|
||||
|
||||
**Description:** Test filtering system by transforming bad copy through United Tattoo rules
|
||||
|
||||
**Copy Transformation Examples:**
|
||||
|
||||
**Original:** "Artistry with integrity"
|
||||
**Rules Applied:** Direct acknowledgment + quantifiable terms
|
||||
**United Tattoo Version:** "We've been tattooing for [X years]. Here's our work."
|
||||
|
||||
**Original:** "More than ink—it's identity"
|
||||
**Rules Applied:** No emotional theater + plain speaking
|
||||
**United Tattoo Version:** "Good tattoos that'll look good in 20 years"
|
||||
|
||||
**Original:** "A space where creativity thrives"
|
||||
**Rules Applied:** Focus on the idiots, not the building
|
||||
**United Tattoo Version:** "Artists who know what they're doing"
|
||||
|
||||
**Test Case:** "We're here to rewrite the narrative, where everyone feels seen, respected, and hyped to walk through our doors"
|
||||
**United Tattoo Filtered Version:** "It doesn't matter who you are, you will always have a home with the United Tattoo family."
|
||||
|
||||
**Analysis of Transformation:**
|
||||
- Removed corporate buzzwords ("rewrite the narrative")
|
||||
- Replaced performative emotions ("hyped") with genuine warmth
|
||||
- Maintained inclusivity message but made it personal and direct
|
||||
- Used "family" concept authentically rather than as marketing device
|
||||
|
||||
### Mind Mapping - 10 minutes
|
||||
|
||||
**Description:** Organize findings into practical rulebook structure
|
||||
|
||||
**Central Concept:** United Tattoo Brand Language Filter
|
||||
|
||||
**Branch 1: Core Principles**
|
||||
- Respect reader intelligence - no big empty words that only impress idiots
|
||||
- Use common ground language - not corporate speak or legal jargon
|
||||
- Direct acknowledgment beats diplomatic deflection
|
||||
- Practical solutions over emotional theater
|
||||
|
||||
**Branch 2: Language Guidelines**
|
||||
- Plain speaking about pricing/process/time
|
||||
- Justified confidence only (backed by demonstrable skill)
|
||||
- Human-to-human tone in all interactions
|
||||
- Transparency prevents assumptions and judgment
|
||||
|
||||
**Branch 3: Content Transformation Rules**
|
||||
- Remove corporate buzzwords and meaningless adjective stacking
|
||||
- Replace performative emotions with genuine warmth
|
||||
- Convert abstract concepts to concrete actions
|
||||
- Focus on artists and work, not building or brand positioning
|
||||
|
||||
**Branch 4: Communication Standards**
|
||||
- Do not use words average person won't understand
|
||||
- Goal: efficient communication on common ground
|
||||
- Avoid condescending lawyer-speak and dehumanizing corporate language
|
||||
- Need examples demonstrating accessible vs. inaccessible language
|
||||
|
||||
**Insights Discovered:**
|
||||
- Intelligence respect = foundation of authentic communication
|
||||
- Common ground language builds connection vs. corporate performance language
|
||||
- Accessibility isn't dumbing down - it's efficient human communication
|
||||
- Everything needs clear guidelines - meet but never exceed bare minimum professionalism
|
||||
- 7th grade reading level should be maximum complexity for any content
|
||||
- Nobody wants to read something 5 times to understand it
|
||||
|
||||
**Practical Examples:**
|
||||
|
||||
**Aftercare Instructions - Bad vs. Good:**
|
||||
- Bad: "As the body's largest organ, your skin deserves careful attention after receiving a tattoo. At United Tattoo, we provide aftercare instructions based on recommended best practices to ensure the proper healing of your new body art. Our goal is to offer the most reliable and accurate information in the industry, informed by insights from medical professionals. These guidelines combine professional expertise, scientific research, and recommendations from the National Environmental Health Association's Body Art Model Code."
|
||||
- Good: "### Read our aftercare instructions: *(informed by the National Environmental Health Association's Body Art Model Code)*"
|
||||
|
||||
**Pricing Communication:**
|
||||
- Approach: "Pricing custom tattoos is hard. It depends on the artist and varies from one tattoo to the next."
|
||||
|
||||
**Tattoo Style Explanations:**
|
||||
- Format: "this is realism. this is american traditional this is neotraditional this is cyber sigilism"
|
||||
|
||||
**Notable Connections:**
|
||||
- Brevity respects time and intelligence
|
||||
- Direct statements eliminate confusion
|
||||
- Professional credibility through source citation, not verbose explanation
|
||||
- Practical honesty about complexity instead of false simplification
|
||||
|
||||
## Idea Categorization
|
||||
|
||||
## Idea Categorization
|
||||
|
||||
### Immediate Opportunities
|
||||
*Ideas ready to implement now*
|
||||
|
||||
1. **7th Grade Reading Level Standard**
|
||||
- Description: All content must be understandable without re-reading
|
||||
- Why immediate: Clear communication prevents customer confusion and builds trust
|
||||
- Resources needed: Reading level checker tool, content audit
|
||||
|
||||
2. **Minimal Professional Standard**
|
||||
- Description: Meet but never exceed bare minimum professionalism
|
||||
- Why immediate: Eliminates pretentious language that alienates customers
|
||||
- Resources needed: Style guide with specific examples
|
||||
|
||||
3. **Honest Complexity Acknowledgment**
|
||||
- Description: "Pricing custom tattoos is hard" approach to difficult topics
|
||||
- Why immediate: Builds trust through honesty vs. false simplification
|
||||
- Resources needed: Template responses for complex topics
|
||||
|
||||
### Future Innovations
|
||||
*Ideas requiring development/research*
|
||||
|
||||
1. **Complete Content Transformation System**
|
||||
- Description: LLM filter that transforms any input through United Tattoo rules
|
||||
- Development needed: Training examples, rule weighting, testing protocols
|
||||
- Timeline estimate: 2-3 months development and testing
|
||||
|
||||
2. **Industry-Wide Language Movement**
|
||||
- Description: Influence other tattoo shops to adopt authentic communication
|
||||
- Development needed: Case studies, success metrics, outreach strategy
|
||||
- Timeline estimate: 6-12 months for measurable impact
|
||||
|
||||
### Moonshots
|
||||
*Ambitious, transformative concepts*
|
||||
|
||||
1. **Anti-Corporate Communication Standard for Service Industries**
|
||||
- Description: United Tattoo approach becomes model for all local businesses
|
||||
- Transformative potential: Reshape how small businesses communicate authentically
|
||||
- Challenges to overcome: Corporate marketing industry resistance, scaling personalization
|
||||
|
||||
### Insights & Learnings
|
||||
*Key realizations from the session*
|
||||
|
||||
- Corporate speak exists because people think it sounds professional, but it actually insults customer intelligence
|
||||
- Authentic tattoo shop communication = vulnerability + practicality + justified confidence
|
||||
- The best language guideline is asking "Would a human being actually say this?"
|
||||
- Brevity that respects time and intelligence builds more trust than verbose explanations
|
||||
- Professional credibility comes from source citation and honest complexity acknowledgment, not big words
|
||||
|
||||
## Action Planning
|
||||
|
||||
## Action Planning
|
||||
|
||||
### Top 3 Priority Ideas
|
||||
|
||||
#### #1 Priority: Implement 7th Grade Reading Level Standard
|
||||
- **Rationale:** Immediate impact on all customer communications, eliminates confusion and re-reading
|
||||
- **Next steps:** Audit current website copy, create reading level checklist, rewrite problem areas
|
||||
- **Resources needed:** Reading level checker tool, content inventory spreadsheet
|
||||
- **Timeline:** 2-3 weeks for complete website overhaul
|
||||
|
||||
#### #2 Priority: Create LLM Brand Language Filter
|
||||
- **Rationale:** Scalable solution for all future content creation, prevents regression to corporate speak
|
||||
- **Next steps:** Document all transformation rules with examples, test with current bad copy
|
||||
- **Resources needed:** Rule documentation, before/after examples database, LLM prompt engineering
|
||||
- **Timeline:** 1-2 weeks for initial filter creation and testing
|
||||
|
||||
#### #3 Priority: Transform High-Impact Pages First
|
||||
- **Rationale:** Focus on pages customers see most (pricing, aftercare, artist bios)
|
||||
- **Next steps:** Identify top 5 customer-facing pages, apply rules, A/B test if possible
|
||||
- **Resources needed:** Analytics data for page priority, rewrite time allocation
|
||||
- **Timeline:** 1 week for core page transformation
|
||||
|
||||
## Reflection & Follow-up
|
||||
|
||||
### What Worked Well
|
||||
|
||||
### Areas for Further Exploration
|
||||
|
||||
### Recommended Follow-up Techniques
|
||||
|
||||
### Questions That Emerged
|
||||
|
||||
---
|
||||
|
||||
*Session facilitated using the BMAD-METHOD™ brainstorming framework*
|
||||
254
docs/united_tattoo_brand_language_guidelines.md
Normal file
254
docs/united_tattoo_brand_language_guidelines.md
Normal file
@ -0,0 +1,254 @@
|
||||
# United Tattoo Brand Language Guidelines
|
||||
|
||||
Version: 1.0
|
||||
Maintainers: United Tattoo Team
|
||||
Source: Brainstorming session facilitated by Business Analyst Mary (Dec 19, 2024)
|
||||
|
||||
Purpose
|
||||
- Codify a practical, comprehensive rulebook for United Tattoo’s voice and language.
|
||||
- Transform generic or corporate-sounding copy into authentic, human United Tattoo communication.
|
||||
- Provide checklists, templates, and examples that are simple to adopt across all customer touchpoints.
|
||||
|
||||
Guiding Principle
|
||||
- Would a human being actually say this? If not, rewrite it.
|
||||
|
||||
Foundations
|
||||
- Respect customer intelligence. Avoid buzzwords, empty promises, and performance language.
|
||||
- 7th grade reading level maximum. No one should re-read a sentence to understand it.
|
||||
- Keep it practical, honest, and grounded in real tattoo shop interactions.
|
||||
- Prefer brevity and clarity over cleverness.
|
||||
- Talk like an expert who is comfortable and kind—not like a brand trying to impress.
|
||||
|
||||
Core Language Rules (from First Principles)
|
||||
1) Direct acknowledgment beats diplomatic deflection
|
||||
- Rationale: When you leave things unsaid, people fill in the blanks and feel judged. Plain, friendly honesty prevents that.
|
||||
- Bad: “We understand everyone has different comfort levels.”
|
||||
- Good: “Holy-fuck yeah— that’s a lot.”
|
||||
|
||||
2) Offer practical solutions, not emotional theater
|
||||
- Rationale: Beautiful humans interacting with beautiful humans. No therapy sessions or performative empathy.
|
||||
- Bad: “We create a safe space where you feel supported.”
|
||||
- Good: “If you need a break, say the word. We can step out, take a smoke break, just hang out.”
|
||||
|
||||
3) Plain speaking about pricing/time
|
||||
- Example: “Because this is ~6 inches and the linework/shading will add ~2 hours, I’d be comfortable doing this for $650. Does that work for you?”
|
||||
- Principle: Transparent, specific, respectful.
|
||||
|
||||
4) Handle difficult clients with patience, like a human
|
||||
- No elaborate customer service scripts.
|
||||
- Solve the actual problem in front of you, calmly.
|
||||
|
||||
5) Describe work in quantifiable terms with justified confidence
|
||||
- Bad: “93% proficient in opaques.”
|
||||
- Good: “I’ve been doing opaques on shading for 5 years. Want to see a few examples so you can judge for yourself?”
|
||||
- Principle: If you can’t justify it with work or experience, don’t say it.
|
||||
|
||||
6) Talk about other shops with kindness
|
||||
- Quote: “The shop doesn’t fucking matter. It’s a building with some idiots in it. People come for the idiots.”
|
||||
- Focus on the artists and the work, not competitive positioning.
|
||||
|
||||
Voice and Tone
|
||||
- Human, direct, and warm—but not performative.
|
||||
- Use mild profanity naturally when it fits; never to posture.
|
||||
- Show empathy through actions offered (breaks, pacing, clarity), not scripted emotions.
|
||||
- Confidence is quiet and justified—show your receipts (portfolio, years, examples).
|
||||
- Inclusive in a normal, human way. Avoid theatrical inclusion statements; prefer direct welcome.
|
||||
|
||||
Style Standards
|
||||
- Reading level: Grade 7 or lower.
|
||||
- Contractions: Use them. Sounds human.
|
||||
- Jargon: Minimize. If needed, explain briefly.
|
||||
- Numbers & estimates: Be specific when you can (inches, hours, dollar ranges).
|
||||
- Swearing: Mild, natural, never as an aesthetic. Don’t punch down. Don’t overdo it.
|
||||
- Capitalization & punctuation: Standard English. Avoid Title Case inside sentences. Use em dashes sparingly.
|
||||
- Avoid abstract metaphors and grandiose claims.
|
||||
|
||||
Anti‑Patterns (Never Say)
|
||||
- “For the ones who live loud, tattoo proud, and believe in better”
|
||||
- “This isn’t your average tattoo shop”
|
||||
- “We’re here to rewrite the narrative”
|
||||
- “Where everyone feels seen, respected, and hyped to walk through our doors”
|
||||
- “Elevate the experience”
|
||||
- “Create a space where real connection matters”
|
||||
- “We hire great people, not just great artists”
|
||||
- “Bring both skill and soul to the table”
|
||||
- “Every tattoo here is a story, a statement, and a shared moment”
|
||||
Why: Forced verbs, defensive positioning, buzzword soup, vague feel‑good performance language.
|
||||
|
||||
Preferred Patterns (Do Say)
|
||||
- “We’ve been tattooing for X years. Here’s our work.”
|
||||
- “Good tattoos that’ll still look good in 20 years.”
|
||||
- “Artists who know what they’re doing.”
|
||||
- “It doesn’t matter who you are— you’ve got a home here.”
|
||||
|
||||
Copy Transformation Framework
|
||||
Use this 4‑step filter to convert bad copy into United Tattoo voice.
|
||||
|
||||
Step 1: Strip the theater
|
||||
- Delete buzzwords, transformation language, and vague hype.
|
||||
- Translate abstract claims into plain, observable facts.
|
||||
|
||||
Step 2: Ground in reality
|
||||
- Add concrete details: sizes, hours, dollar ranges, what will actually happen.
|
||||
|
||||
Step 3: Offer actions, not feelings
|
||||
- Add helpful options (breaks, pacing, next step, example links) instead of performative empathy.
|
||||
|
||||
Step 4: Read like a human
|
||||
- Contractions. Short sentences. Grade‑7 reading level. Ask “Would a human say this?”
|
||||
|
||||
Transformation Checklist
|
||||
- [ ] No buzzwords or vague promises remain
|
||||
- [ ] Concrete details replace abstract claims
|
||||
- [ ] Practical options offered (what the person can do next)
|
||||
- [ ] Grade‑7 reading level or lower
|
||||
- [ ] Sounds like a human, not a brand
|
||||
- [ ] Confidence is justified with examples/time/experience
|
||||
|
||||
Templates and Patterns
|
||||
|
||||
Pricing Template
|
||||
- “Because [size/specs] and [technique/complexity], this will take about [hours]. I’d be comfortable doing it for [$amount or $range]. Does that work for you?”
|
||||
- “If you want to keep it closer to [$lower], we can simplify [specific parts].”
|
||||
|
||||
Aftercare Callout
|
||||
- “Read our aftercare instructions (informed by the National Environmental Health Association’s Body Art Model Code).”
|
||||
- Keep the main page short. Link to the details.
|
||||
|
||||
Nervous First‑Timer
|
||||
- “Being nervous is normal— we all were before our first tattoo. If you need a break at any time, say the word. We can step out, take a smoke break, or just hang out. We’ll go at your pace.”
|
||||
|
||||
Picky Client (Lots of References)
|
||||
- “That’s a lot— which is fine. Grab a seat and walk me through the top 2–3 things you care about most. We’ll build from there.”
|
||||
|
||||
Tattoo Style Explanations
|
||||
- “This is realism. This is American traditional. This is neo‑traditional. This is cyber sigilism.” (Short, clear, label things plainly. Link to examples.)
|
||||
|
||||
Difficult Situations
|
||||
- “I hear you. Here are two ways we can solve this today: [Option A], [Option B]. Your call.”
|
||||
|
||||
Before/After Examples
|
||||
|
||||
Example 1
|
||||
- Original: “Artistry with integrity.”
|
||||
- United Tattoo: “We’ve been tattooing for [X years]. Here’s our work.” [link]
|
||||
|
||||
Example 2
|
||||
- Original: “More than ink— it’s identity.”
|
||||
- United Tattoo: “Good tattoos that’ll look good in 20 years.”
|
||||
|
||||
Example 3
|
||||
- Original: “A space where creativity thrives.”
|
||||
- United Tattoo: “Artists who know what they’re doing.”
|
||||
|
||||
Example 4 (Inclusivity Hype)
|
||||
- Original: “We’re here to rewrite the narrative, where everyone feels seen, respected, and hyped to walk through our doors.”
|
||||
- United Tattoo: “It doesn’t matter who you are— you’ve got a home here.”
|
||||
|
||||
Reading Level and QA
|
||||
- Standard: Grade‑7 max.
|
||||
- Tools: Use any readability checker (e.g., Flesch‑Kincaid or Hemingway). Adjust until it passes.
|
||||
- QA Checks:
|
||||
- [ ] Short, clear sentences
|
||||
- [ ] Concrete details
|
||||
- [ ] No buzzwords/performance language
|
||||
- [ ] Offers practical next steps
|
||||
- [ ] Tone: calm, confident, kind
|
||||
|
||||
Governance
|
||||
- Ownership: Content lead and shop manager sign‑off on high‑impact pages (pricing, aftercare, booking, artist bios).
|
||||
- Review cadence: Quarterly review of top pages. Spot‑check new pages at publish time.
|
||||
- Updates: When adding new styles/services, add 1–2 plain examples + portfolio links. Re‑run transformation checklist.
|
||||
- Training: New hires read this guide and do one transformation exercise before publishing copy.
|
||||
|
||||
Implementation Plan (from Action Planning)
|
||||
1) Implement Reading Level Standard
|
||||
- Audit all website copy
|
||||
- Create a simple reading‑level checklist
|
||||
- Rewrite problem areas
|
||||
- Target: 2–3 weeks
|
||||
|
||||
2) Create Brand Language LLM Filter
|
||||
- Document rules (this guide)
|
||||
- Build before/after examples set
|
||||
- Draft initial prompt template (see below), test on worst offenders
|
||||
- Target: 1–2 weeks
|
||||
|
||||
3) Transform High‑Impact Pages First
|
||||
- Prioritize pricing, aftercare, artist bios, booking flow
|
||||
- A/B test if possible; otherwise collect anecdotal feedback
|
||||
- Target: ~1 week
|
||||
|
||||
LLM Brand Filter Prompt Template
|
||||
Use this with your preferred LLM to transform drafts automatically.
|
||||
|
||||
"""
|
||||
You are the United Tattoo Brand Language Filter.
|
||||
|
||||
Transform the following copy into United Tattoo voice using these rules:
|
||||
- Human, direct, grade‑7 reading level max
|
||||
- No buzzwords, no transformation theater
|
||||
- Offer practical options/actions instead of performative empathy
|
||||
- Justified confidence only (backed by examples/experience)
|
||||
- Prefer concrete details (sizes, hours, dollar ranges)
|
||||
- Would a human actually say this?
|
||||
|
||||
Output format:
|
||||
1) Original
|
||||
2) Rule Violations Found (bullets)
|
||||
3) Transformed Version
|
||||
4) Notes (what changed and why, keep brief)
|
||||
|
||||
Copy:
|
||||
[PASTE TEXT HERE]
|
||||
"""
|
||||
|
||||
FAQ Fragments and Microcopy
|
||||
|
||||
Booking CTA
|
||||
- “Book a consult”
|
||||
- “Message an artist”
|
||||
- “Get a price range”
|
||||
|
||||
Portfolio Nudge
|
||||
- “Here are 6 pieces similar to what you want.”
|
||||
|
||||
Rescheduling
|
||||
- “If something changes, tell us as soon as you can and we’ll rebook you.”
|
||||
|
||||
Deposits
|
||||
- “Deposits lock the spot and go toward your total. If you cancel last‑minute, they don’t come back— our artists set aside that time.”
|
||||
|
||||
Touch‑Ups
|
||||
- “If something heals weird, message us. We’ll take a look and figure out the best fix.”
|
||||
|
||||
Quality Claims (Justified Only)
|
||||
- “We’ve done [X] sleeves and [Y] portraits this year. Here are a few.” [link]
|
||||
|
||||
Appendix: Why This Matters
|
||||
- Corporate speak looks “professional” but actually insults intelligence and creates distance.
|
||||
- Authentic shop communication = vulnerability + practicality + justified confidence.
|
||||
- Brevity with clarity builds more trust than verbose claims.
|
||||
- Credibility comes from clear examples, clean portfolios, and honest constraints— not big words.
|
||||
|
||||
Quick Reference Cards (Printable)
|
||||
|
||||
Card A: 6 Rules
|
||||
- Direct over diplomatic
|
||||
- Practical over performative
|
||||
- Plain pricing/time
|
||||
- Human patience
|
||||
- Justified confidence
|
||||
- Kind to other shops
|
||||
|
||||
Card B: Do/Don’t
|
||||
- Do: short, concrete, helpful
|
||||
- Don’t: buzzwords, vague promises, defensive positioning
|
||||
|
||||
Card C: Rapid Pricing Script
|
||||
- “Because [size/specs] and [technique], ~[hours]. Comfortable at [$]. If you want to stay near [$lower], we can simplify [parts]. Work for you?”
|
||||
|
||||
Card D: Nervous First‑Timer
|
||||
- “Nervous is normal. Say ‘break’ anytime. We’ll go at your pace.”
|
||||
|
||||
End of Guidelines
|
||||
Loading…
x
Reference in New Issue
Block a user