cloudflare
tcp/443 tcp/80
Open service 104.26.8.124:80 · admin.simonsson.com
2026-01-10 10:00
HTTP/1.1 308 Permanent Redirect
Date: Sat, 10 Jan 2026 10:00:07 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=1BVv7SlNV8Ii6h1PqQDx5g9PnM3wCw%2F68vmPOL2wyaOLhrJyg80sq2aUim9vlPzcu4V28PTgPGfGvLsVirtNCjr%2BMXTmSj7y2dWdy2zIkMHoqg%3D%3D"}]}
CF-RAY: 9bbb5358acac954a-LHR
Redirecting...
Open service 2606:4700:20::681a:97c:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 172.67.72.42:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 2
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=eh6XE%2FQJy8pTSIoq1m31Q6k0OSjyxdQbu%2BDIQM%2FnBbTSFktypA6pJQ5jm50LIGjpWbERVXelBLm60WafIuBaUJ1bgm%2FQWV7GIcNQBdoYrIh0WQ%3D%3D"}]}
vary: accept-encoding
last-modified: Tue, 06 Jan 2026 12:58:41 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: sin1::lh854-1767704323626-6fbeb31e7ba6
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b6376797fce22-SIN
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err
Open service 2606:4700:20::ac43:482a:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 2
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cqpcaPs%2F5q7FhXOZhMtktx20uqI1T3aoK4JGt2aE8fVpGhDuTjGmcZobvnTb%2FCTt6rlImWKDtfYbislZQu0sOLr0%2BaocmOispiXmw496OG959JlvmL4kMQ%2Bg1aA%3D"}]}
vary: accept-encoding
last-modified: Tue, 06 Jan 2026 12:58:41 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: sin1::9xft9-1767704323585-be530117b548
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b63763a03f881-SIN
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err
Open service 104.26.9.124:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 2606:4700:20::681a:87c:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JbAVaNl8t8srVzF6%2FKDCn8Z5VAzPgr%2FiVchH5YcZo%2FzFJXYsPy1lHVCD5EkigGRM4dl9t4thEv635rGQmKFYLhroiYz%2B1QuzFfU1bhi8tlV7o8%2FV%2BbbfJmlyPisPtw%3D%3D"}]}
CF-RAY: 9b9b63745edf1fc9-LHR
Redirecting...
Open service 104.26.9.124:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 3536938
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=2g8HM%2Bjho6%2FA1GDJ8SV5U0JZUdnD%2FtiT2mXkJEG6BTJcvcaF1EZITkIAbF8upF6jKe%2FsaDrznevNTZiv8bNzzT5VZ392VRj4j5xXN7907XXGrw%3D%3D"}]}
vary: accept-encoding
last-modified: Wed, 26 Nov 2025 14:29:44 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: fra1::c9dcx-1767704323327-731e60ff1b37
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b6374be52d276-FRA
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err
Open service 104.26.8.124:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 2606:4700:20::681a:97c:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pwMJLd2NW7Sv7pbkksr26E8KfjYLQXv3tv7xlD3Bg2RcSD0cO4Xeoe2rbJ955vfvW4A0Jcm%2B4oi4TUO326Ed5BVkuYPTbKPDs8idXkhJNj%2BSlYlKAYgw31QnNVcN1A%3D%3D"}]}
CF-RAY: 9b9b63741bd9773d-LHR
Redirecting...
Open service 2606:4700:20::ac43:482a:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 2606:4700:20::ac43:482a:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cWCrbK7Q0NE20jFlfzaJh7M7Ql7uYdl9dPxSRkHyWMxJD7FWPbw1zBor20M2AilDjWbcC8km0Bd74lq4S%2Fg%2BSWyQvTbVBGwiFx%2BkZteW8vzj8H95%2FJCdIUARRlRI7w%3D%3D"}]}
CF-RAY: 9b9b6373ddc31dc1-FRA
Redirecting...
Open service 172.67.72.42:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=d2RKlceOgcT7fN5XxAbr9GjeWP6GYcr081fkKesYYaHw5B3YOhhi%2BuF84I0X8FkxcFgL%2B%2F3E8JVAtrFxy8fe8KkTs7rJsm2KZE6oyi28El4%2BBw%3D%3D"}]}
CF-RAY: 9b9b6373fd48d87f-FRA
Redirecting...
Open service 172.67.72.42:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 104.26.8.124:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 2
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=eZNVg6tG6d3OKzag0cfRRBDxVan7inlwYx%2BFUrpumEGWcqdTWm%2FkAYcpTksuNZ8MeFQ6E3svPdGUZIMYHSfno2KUTQdmeiwcYTRUvg4tHktP6A%3D%3D"}]}
vary: accept-encoding
last-modified: Tue, 06 Jan 2026 12:58:41 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: lhr1::887wm-1767704323558-27a16c4f4478
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b637609192d6d-LHR
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err
Open service 2606:4700:20::681a:97c:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 3536938
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=i%2BvnNEylbgVEAZCxGnZcmgHEcmdpp4KpWXeYaXFQZntzcZT3sfOW6REGJk4TZ55aAfqTnujHNlEhylU9Lq%2FQLErNqPr0tFX1E58N414YXhrmOxTQNZSw1huFSO2%2BbQ%3D%3D"}]}
vary: accept-encoding
last-modified: Wed, 26 Nov 2025 14:29:44 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: fra1::7vjsk-1767704323354-fd0ef2fecc67
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b6374defb048b-FRA
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err
Open service 104.26.8.124:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=SZX84564e1epsdEG1pLQGAnn4O8kgKR4E2L8huWmPvKWs1NtylS1V19rHMugzok9B9mWPCy4bTAnl%2BEAOBObMGjiqBGlCsdyWCfaYj2OsMxJMA%3D%3D"}]}
CF-RAY: 9b9b63745ff89404-LHR
Redirecting...
Open service 2606:4700:20::681a:87c:8443 · admin.simonsson.com
2026-01-06 12:58
Open service 104.26.9.124:80 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 308 Permanent Redirect
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Location: https://admin.simonsson.com/
Refresh: 0;url=https://admin.simonsson.com/
server: cloudflare
cf-cache-status: DYNAMIC
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ngtQv0dCKLWdpjBSORfO7kJp%2FA7TOGH%2BNM6IZcYiK7qLijXTb4tLE7HGInhkJ2hsKcwmTXw7Rxr2lZyfrshR7o7aL%2BgqwVB4js1t1KJpczgoog%3D%3D"}]}
CF-RAY: 9b9b6373df2fd265-FRA
Redirecting...
Open service 2606:4700:20::681a:87c:443 · admin.simonsson.com
2026-01-06 12:58
HTTP/1.1 200 OK
Date: Tue, 06 Jan 2026 12:58:43 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
access-control-allow-origin: *
Age: 3536938
Cache-Control: public, max-age=0, must-revalidate
content-disposition: inline
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bl%2BcI5Rv7F4H496pM0laKbx0u5NPJbL9%2F0pXOMKWTPajFs7uLHOaz0UFk7omINrqCmiWVcEAdpVOEJNjUdBvha7ecKyizxlVcHhabKUrWbphNqYPAk44GMM9JOI8fw%3D%3D"}]}
vary: accept-encoding
last-modified: Wed, 26 Nov 2025 14:29:44 GMT
Server: cloudflare
strict-transport-security: max-age=63072000
x-vercel-cache: HIT
x-vercel-id: fra1::4csvw-1767704323194-74f53cc400cc
cf-cache-status: DYNAMIC
etag: W/"3e8f93f52de0c520a623074ba694759e"
CF-RAY: 9b9b6373d9b0d28c-FRA
Page title: Sanity Studio
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover"/><meta name="robots" content="noindex"/><meta name="referrer" content="same-origin"/><link rel="icon" href="/static/favicon.ico" sizes="any"/><link rel="icon" href="/static/favicon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/><link rel="manifest" href="/static/manifest.webmanifest"/><title>Sanity Studio</title><script>
;(function () {
var _caughtErrors = []
var errorChannel = (function () {
var subscribers = []
function publish(msg) {
for (var i = 0; i < subscribers.length; i += 1) {
subscribers[i](msg)
}
}
function subscribe(subscriber) {
subscribers.push(subscriber)
return function () {
var idx = subscribers.indexOf(subscriber)
if (idx > -1) {
subscribers.splice(idx, 1)
}
}
}
return {publish, subscribe, subscribers}
})()
// NOTE: Store the error channel instance in the global scope so that the Studio application can
// access it and subscribe to errors.
window.__sanityErrorChannel = {
subscribe: errorChannel.subscribe,
}
function _nextTick(callback) {
setTimeout(callback, 0)
}
function _handleError(error, params) {
_nextTick(function () {
// - If there are error channel subscribers, then we notify them (no console error).
// - If there are no subscribers, then we log the error to the console and render the error overlay.
if (errorChannel.subscribers.length) {
errorChannel.publish({error, params})
} else {
console.error(error)
_renderErrorOverlay(error, params)
}
})
}
var ERROR_BOX_STYLE = [
'background: #fff',
'border-radius: 6px',
'box-sizing: border-box',
'color: #121923',
'flex: 1',
"font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue','Liberation Sans',Helvetica,Arial,system-ui,sans-serif",
'font-size: 16px',
'line-height: 21px',
'margin: 0 auto',
'max-width: 960px',
'overflow: auto',
'padding: 20px',
'width: 100%',
].join(';')
var ERROR_CODE_STYLE = [
'color: #972E2A',
"font-family: -apple-system-ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, monospace",
'font-size: 13px',
'line-height: 17px',
'margin: 0',
].join(';')
function _renderErrorOverlay(error, params) {
var errorElement = document.querySelector('#__sanityError') || document.createElement('div')
var colno = params.event.colno
var lineno = params.event.lineno
var filename = params.event.filename
errorElement.id = '__sanityError'
errorElement.innerHTML = [
'<div style="' + ERROR_BOX_STYLE + '">',
'<div style="font-weight: 700;">Uncaught error: ' + error.message + '</div>',
'<div style="color: #515E72; font-size: 13px; line-height: 17px; margin: 10px 0;">' +
filename +
':' +
lineno +
':' +
colno +
'</div>',
'<pre style="' + ERROR_CODE_STYLE + '">' + error.stack + '</pre>',
'</div>',
].join('')
errorElement.style.position = 'fixed'
errorElement.style.zIndex = 1000000
errorElement.style.top = 0
errorElement.style.left = 0
errorElement.style.right = 0
errorElement.style.bottom = 0
errorElement.style.padding = '20px'
errorElement.style.background = 'rgba(16,17,18,0.66)'
errorElement.style.display = 'flex'
errorElement.style.alignItems = 'center'
errorElement.style.justifyContent = 'center'
document.body.appendChild(errorElement)
}
// NOTE:
// Yes – we're attaching 2 error listeners below 👀
// This is because React makes the same error throw twice (in development mode).
// See: https://github.com/facebook/react/issues/10384
// Error listener #1
window.onerror = function (event, source, lineno, colno, error) {
_nextTick(function () {
if (_caughtErrors.indexOf(err