Vercel
tcp/443
.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09c3c1fc5e93c1fc5e97893b61ca13cf8c544d884f3350107db
Found 5 files trough .DS_Store spidering: /favicon.svg /images /images/about.png /images/bg.png /images/daniel.png
Open service 66.33.60.35:443 · www.danielreilly.dev
2026-01-09 02:33
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 3403406
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline
Content-Length: 26381
Content-Type: text/html; charset=utf-8
Date: Fri, 09 Jan 2026 02:33:20 GMT
Etag: "48d9ed296758537c874563be9c3cd7cf"
Last-Modified: Sun, 30 Nov 2025 17:09:53 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: fra1::8nhf9-1767926000110-20d6406eaea1
Connection: close
Page title: Home
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Welcome to my blog"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.14"><title>Home</title><link rel="stylesheet" href="/_astro/index.DTGT0-7s.css"></head> <body> <header class="sticky top-0 z-50"> <nav class="navbar bg-base-100/90 shadow-sm font-outfit backdrop-blur-lg justify-center items-center py-2 md:px-10 px-5"> <div class="navbar-start"> <div class="dropdown"> <button aria-label="button" tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"></path> </svg> </button> <ul class="menu dropdown-content menu-md z-[1] mt-3 w-52 gap-2 rounded-box bg-base-100 p-2 shadow"> <li> <a href="/">Home</a> </li><li> <a href="/blog">Articles</a> </li><li> <a href="/about">About</a> </li> </ul> </div> <a class="btn btn-ghost text-xl" href="/"> Blog</a> </div> <div class="navbar-center hidden lg:flex"> <nav class="menu menu-horizontal"> <a href="/" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md text-primary bg-primary/10"> Home </a> </nav><nav class="menu menu-horizontal"> <a href="/blog" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> Articles </a> </nav><nav class="menu menu-horizontal"> <a href="/about" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> About </a> </nav> </div> <div class="navbar-end"> <button id="themeToggle" class="btn btn-circle btn-ghost swap swap-rotate"> <svg class="w-6 h-6 fill-current swap-off" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"></path> </svg> <svg class="w-6 h-6 fill-current swap-on" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"></path> </svg> </button> <script>
const theme = (() => {
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
return localStorage.getItem('theme');
}
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
})();
if (theme === 'light') {
document.documentElement.setAttribute("data-theme", 'light');
document.getElementById("themeToggle").classList.remove('swap-active');
} else {
document.documentElement.setAttribute("data-theme", 'dark');
document.getElementById("themeToggle").classList.add('swap-active');
}
window.localStorage.setItem('theme', theme);
const handleToggleClick = () => {
const element = document.documentElement;
const isDark = element.dataset.theme === "dark";
localStorage.setItem("theme", isDark ? "light" : "dark");
element.setAttribute('data-theme', isDark ? "light" : "dark");
if (isDark) {
document.getElementById("themeToggle").classList.remove("swap-active");
} else {
document.g
Open service 66.33.60.35:443 · www.danielreilly.dev
2026-01-02 00:42
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 3098030
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline
Content-Length: 26381
Content-Type: text/html; charset=utf-8
Date: Fri, 02 Jan 2026 00:42:31 GMT
Etag: "48d9ed296758537c874563be9c3cd7cf"
Last-Modified: Thu, 27 Nov 2025 04:08:40 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: iad1::jkxj9-1767314551490-24c788ed6cd1
Connection: close
Page title: Home
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Welcome to my blog"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.14"><title>Home</title><link rel="stylesheet" href="/_astro/index.DTGT0-7s.css"></head> <body> <header class="sticky top-0 z-50"> <nav class="navbar bg-base-100/90 shadow-sm font-outfit backdrop-blur-lg justify-center items-center py-2 md:px-10 px-5"> <div class="navbar-start"> <div class="dropdown"> <button aria-label="button" tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"></path> </svg> </button> <ul class="menu dropdown-content menu-md z-[1] mt-3 w-52 gap-2 rounded-box bg-base-100 p-2 shadow"> <li> <a href="/">Home</a> </li><li> <a href="/blog">Articles</a> </li><li> <a href="/about">About</a> </li> </ul> </div> <a class="btn btn-ghost text-xl" href="/"> Blog</a> </div> <div class="navbar-center hidden lg:flex"> <nav class="menu menu-horizontal"> <a href="/" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md text-primary bg-primary/10"> Home </a> </nav><nav class="menu menu-horizontal"> <a href="/blog" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> Articles </a> </nav><nav class="menu menu-horizontal"> <a href="/about" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> About </a> </nav> </div> <div class="navbar-end"> <button id="themeToggle" class="btn btn-circle btn-ghost swap swap-rotate"> <svg class="w-6 h-6 fill-current swap-off" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"></path> </svg> <svg class="w-6 h-6 fill-current swap-on" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"></path> </svg> </button> <script>
const theme = (() => {
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
return localStorage.getItem('theme');
}
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
})();
if (theme === 'light') {
document.documentElement.setAttribute("data-theme", 'light');
document.getElementById("themeToggle").classList.remove('swap-active');
} else {
document.documentElement.setAttribute("data-theme", 'dark');
document.getElementById("themeToggle").classList.add('swap-active');
}
window.localStorage.setItem('theme', theme);
const handleToggleClick = () => {
const element = document.documentElement;
const isDark = element.dataset.theme === "dark";
localStorage.setItem("theme", isDark ? "light" : "dark");
element.setAttribute('data-theme', isDark ? "light" : "dark");
if (isDark) {
document.getElementById("themeToggle").classList.remove("swap-active");
} else {
document.g
Open service 66.33.60.35:443 · www.danielreilly.dev
2025-12-30 07:57
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 2864910
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline
Content-Length: 26381
Content-Type: text/html; charset=utf-8
Date: Tue, 30 Dec 2025 07:57:11 GMT
Etag: "48d9ed296758537c874563be9c3cd7cf"
Last-Modified: Thu, 27 Nov 2025 04:08:40 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: iad1::rqxm7-1767081431658-dee30179cb69
Connection: close
Page title: Home
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Welcome to my blog"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.14"><title>Home</title><link rel="stylesheet" href="/_astro/index.DTGT0-7s.css"></head> <body> <header class="sticky top-0 z-50"> <nav class="navbar bg-base-100/90 shadow-sm font-outfit backdrop-blur-lg justify-center items-center py-2 md:px-10 px-5"> <div class="navbar-start"> <div class="dropdown"> <button aria-label="button" tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"></path> </svg> </button> <ul class="menu dropdown-content menu-md z-[1] mt-3 w-52 gap-2 rounded-box bg-base-100 p-2 shadow"> <li> <a href="/">Home</a> </li><li> <a href="/blog">Articles</a> </li><li> <a href="/about">About</a> </li> </ul> </div> <a class="btn btn-ghost text-xl" href="/"> Blog</a> </div> <div class="navbar-center hidden lg:flex"> <nav class="menu menu-horizontal"> <a href="/" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md text-primary bg-primary/10"> Home </a> </nav><nav class="menu menu-horizontal"> <a href="/blog" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> Articles </a> </nav><nav class="menu menu-horizontal"> <a href="/about" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> About </a> </nav> </div> <div class="navbar-end"> <button id="themeToggle" class="btn btn-circle btn-ghost swap swap-rotate"> <svg class="w-6 h-6 fill-current swap-off" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"></path> </svg> <svg class="w-6 h-6 fill-current swap-on" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"></path> </svg> </button> <script>
const theme = (() => {
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
return localStorage.getItem('theme');
}
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
})();
if (theme === 'light') {
document.documentElement.setAttribute("data-theme", 'light');
document.getElementById("themeToggle").classList.remove('swap-active');
} else {
document.documentElement.setAttribute("data-theme", 'dark');
document.getElementById("themeToggle").classList.add('swap-active');
}
window.localStorage.setItem('theme', theme);
const handleToggleClick = () => {
const element = document.documentElement;
const isDark = element.dataset.theme === "dark";
localStorage.setItem("theme", isDark ? "light" : "dark");
element.setAttribute('data-theme', isDark ? "light" : "dark");
if (isDark) {
document.getElementById("themeToggle").classList.remove("swap-active");
} else {
document.g
Open service 66.33.60.35:443 · www.danielreilly.dev
2025-12-23 02:02
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 2238852
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline
Content-Length: 26381
Content-Type: text/html; charset=utf-8
Date: Tue, 23 Dec 2025 02:02:53 GMT
Etag: "48d9ed296758537c874563be9c3cd7cf"
Last-Modified: Thu, 27 Nov 2025 04:08:40 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: iad1::czj5l-1766455373328-e196452aee27
Connection: close
Page title: Home
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Welcome to my blog"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.14"><title>Home</title><link rel="stylesheet" href="/_astro/index.DTGT0-7s.css"></head> <body> <header class="sticky top-0 z-50"> <nav class="navbar bg-base-100/90 shadow-sm font-outfit backdrop-blur-lg justify-center items-center py-2 md:px-10 px-5"> <div class="navbar-start"> <div class="dropdown"> <button aria-label="button" tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"></path> </svg> </button> <ul class="menu dropdown-content menu-md z-[1] mt-3 w-52 gap-2 rounded-box bg-base-100 p-2 shadow"> <li> <a href="/">Home</a> </li><li> <a href="/blog">Articles</a> </li><li> <a href="/about">About</a> </li> </ul> </div> <a class="btn btn-ghost text-xl" href="/"> Blog</a> </div> <div class="navbar-center hidden lg:flex"> <nav class="menu menu-horizontal"> <a href="/" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md text-primary bg-primary/10"> Home </a> </nav><nav class="menu menu-horizontal"> <a href="/blog" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> Articles </a> </nav><nav class="menu menu-horizontal"> <a href="/about" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> About </a> </nav> </div> <div class="navbar-end"> <button id="themeToggle" class="btn btn-circle btn-ghost swap swap-rotate"> <svg class="w-6 h-6 fill-current swap-off" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"></path> </svg> <svg class="w-6 h-6 fill-current swap-on" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"></path> </svg> </button> <script>
const theme = (() => {
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
return localStorage.getItem('theme');
}
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
})();
if (theme === 'light') {
document.documentElement.setAttribute("data-theme", 'light');
document.getElementById("themeToggle").classList.remove('swap-active');
} else {
document.documentElement.setAttribute("data-theme", 'dark');
document.getElementById("themeToggle").classList.add('swap-active');
}
window.localStorage.setItem('theme', theme);
const handleToggleClick = () => {
const element = document.documentElement;
const isDark = element.dataset.theme === "dark";
localStorage.setItem("theme", isDark ? "light" : "dark");
element.setAttribute('data-theme', isDark ? "light" : "dark");
if (isDark) {
document.getElementById("themeToggle").classList.remove("swap-active");
} else {
document.g
Open service 66.33.60.35:443 · www.danielreilly.dev
2025-12-20 21:52
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 144182
Cache-Control: public, max-age=0, must-revalidate
Content-Disposition: inline
Content-Length: 26381
Content-Type: text/html; charset=utf-8
Date: Sat, 20 Dec 2025 21:52:20 GMT
Etag: "48d9ed296758537c874563be9c3cd7cf"
Last-Modified: Fri, 19 Dec 2025 05:49:18 GMT
Server: Vercel
Strict-Transport-Security: max-age=63072000
X-Vercel-Cache: HIT
X-Vercel-Id: bom1::zcsg4-1766267540234-8e3342d6be40
Connection: close
Page title: Home
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Welcome to my blog"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v5.7.14"><title>Home</title><link rel="stylesheet" href="/_astro/index.DTGT0-7s.css"></head> <body> <header class="sticky top-0 z-50"> <nav class="navbar bg-base-100/90 shadow-sm font-outfit backdrop-blur-lg justify-center items-center py-2 md:px-10 px-5"> <div class="navbar-start"> <div class="dropdown"> <button aria-label="button" tabindex="0" role="button" class="btn btn-ghost lg:hidden"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h8m-8 6h16"></path> </svg> </button> <ul class="menu dropdown-content menu-md z-[1] mt-3 w-52 gap-2 rounded-box bg-base-100 p-2 shadow"> <li> <a href="/">Home</a> </li><li> <a href="/blog">Articles</a> </li><li> <a href="/about">About</a> </li> </ul> </div> <a class="btn btn-ghost text-xl" href="/"> Blog</a> </div> <div class="navbar-center hidden lg:flex"> <nav class="menu menu-horizontal"> <a href="/" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md text-primary bg-primary/10"> Home </a> </nav><nav class="menu menu-horizontal"> <a href="/blog" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> Articles </a> </nav><nav class="menu menu-horizontal"> <a href="/about" class="hover:text-primary hover:bg-primary/10 transition flex py-2 px-4 rounded-md "> About </a> </nav> </div> <div class="navbar-end"> <button id="themeToggle" class="btn btn-circle btn-ghost swap swap-rotate"> <svg class="w-6 h-6 fill-current swap-off" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M5.64,17l-.71.71a1,1,0,0,0,0,1.41,1,1,0,0,0,1.41,0l.71-.71A1,1,0,0,0,5.64,17ZM5,12a1,1,0,0,0-1-1H3a1,1,0,0,0,0,2H4A1,1,0,0,0,5,12Zm7-7a1,1,0,0,0,1-1V3a1,1,0,0,0-2,0V4A1,1,0,0,0,12,5ZM5.64,7.05a1,1,0,0,0,.7.29,1,1,0,0,0,.71-.29,1,1,0,0,0,0-1.41l-.71-.71A1,1,0,0,0,4.93,6.34Zm12,.29a1,1,0,0,0,.7-.29l.71-.71a1,1,0,1,0-1.41-1.41L17,5.64a1,1,0,0,0,0,1.41A1,1,0,0,0,17.66,7.34ZM21,11H20a1,1,0,0,0,0,2h1a1,1,0,0,0,0-2Zm-9,8a1,1,0,0,0-1,1v1a1,1,0,0,0,2,0V20A1,1,0,0,0,12,19ZM18.36,17A1,1,0,0,0,17,18.36l.71.71a1,1,0,0,0,1.41,0,1,1,0,0,0,0-1.41ZM12,6.5A5.5,5.5,0,1,0,17.5,12,5.51,5.51,0,0,0,12,6.5Zm0,9A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z"></path> </svg> <svg class="w-6 h-6 fill-current swap-on" width="24px" height="24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M21.64,13a1,1,0,0,0-1.05-.14,8.05,8.05,0,0,1-3.37.73A8.15,8.15,0,0,1,9.08,5.49a8.59,8.59,0,0,1,.25-2A1,1,0,0,0,8,2.36,10.14,10.14,0,1,0,22,14.05,1,1,0,0,0,21.64,13Zm-9.5,6.69A8.14,8.14,0,0,1,7.08,5.22v.27A10.15,10.15,0,0,0,17.22,15.63a9.79,9.79,0,0,0,2.1-.22A8.11,8.11,0,0,1,12.14,19.73Z"></path> </svg> </button> <script>
const theme = (() => {
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
return localStorage.getItem('theme');
}
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
return 'dark';
}
return 'light';
})();
if (theme === 'light') {
document.documentElement.setAttribute("data-theme", 'light');
document.getElementById("themeToggle").classList.remove('swap-active');
} else {
document.documentElement.setAttribute("data-theme", 'dark');
document.getElementById("themeToggle").classList.add('swap-active');
}
window.localStorage.setItem('theme', theme);
const handleToggleClick = () => {
const element = document.documentElement;
const isDark = element.dataset.theme === "dark";
localStorage.setItem("theme", isDark ? "light" : "dark");
element.setAttribute('data-theme', isDark ? "light" : "dark");
if (isDark) {
document.getElementById("themeToggle").classList.remove("swap-active");
} else {
document.g