diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..6b10a5b
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,6 @@
+{
+ "extends": [
+ "next/core-web-vitals",
+ "next/typescript"
+ ]
+}
diff --git a/package-lock.json b/package-lock.json
index 2a23146..0aa2eda 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.1.0",
"dependencies": {
"gray-matter": "^4.0.3",
- "next": "14.1.0",
+ "next": "^14.2.28",
"next-mdx-remote": "^5.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
@@ -1737,9 +1737,9 @@
}
},
"node_modules/@next/env": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz",
- "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.28.tgz",
+ "integrity": "sha512-PAmWhJfJQlP+kxZwCjrVd9QnR5x0R3u0mTXTiZDgSd4h5LdXmjxCCWbN9kq6hkZBOax8Rm3xDW5HagWyJuT37g==",
"license": "MIT"
},
"node_modules/@next/eslint-plugin-next": {
@@ -1753,9 +1753,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz",
- "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.28.tgz",
+ "integrity": "sha512-kzGChl9setxYWpk3H6fTZXXPFFjg7urptLq5o5ZgYezCrqlemKttwMT5iFyx/p1e/JeglTwDFRtb923gTJ3R1w==",
"cpu": [
"arm64"
],
@@ -1769,9 +1769,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz",
- "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.28.tgz",
+ "integrity": "sha512-z6FXYHDJlFOzVEOiiJ/4NG8aLCeayZdcRSMjPDysW297Up6r22xw6Ea9AOwQqbNsth8JNgIK8EkWz2IDwaLQcw==",
"cpu": [
"x64"
],
@@ -1785,9 +1785,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz",
- "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.28.tgz",
+ "integrity": "sha512-9ARHLEQXhAilNJ7rgQX8xs9aH3yJSj888ssSjJLeldiZKR4D7N08MfMqljk77fAwZsWwsrp8ohHsMvurvv9liQ==",
"cpu": [
"arm64"
],
@@ -1801,9 +1801,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz",
- "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.28.tgz",
+ "integrity": "sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==",
"cpu": [
"arm64"
],
@@ -1817,9 +1817,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz",
- "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.28.tgz",
+ "integrity": "sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==",
"cpu": [
"x64"
],
@@ -1833,9 +1833,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz",
- "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.28.tgz",
+ "integrity": "sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==",
"cpu": [
"x64"
],
@@ -1849,9 +1849,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz",
- "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.28.tgz",
+ "integrity": "sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==",
"cpu": [
"arm64"
],
@@ -1865,9 +1865,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz",
- "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.28.tgz",
+ "integrity": "sha512-+Kcp1T3jHZnJ9v9VTJ/yf1t/xmtFAc/Sge4v7mVc1z+NYfYzisi8kJ9AsY8itbgq+WgEwMtOpiLLJsUy2qnXZw==",
"cpu": [
"ia32"
],
@@ -1881,9 +1881,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz",
- "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.28.tgz",
+ "integrity": "sha512-1gCmpvyhz7DkB1srRItJTnmR2UwQPAUXXIg9r0/56g3O8etGmwlX68skKXJOp9EejW3hhv7nSQUJ2raFiz4MoA==",
"cpu": [
"x64"
],
@@ -1996,12 +1996,19 @@
"@sinonjs/commons": "^3.0.0"
}
},
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
"node_modules/@swc/helpers": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz",
- "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==",
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
+ "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
"license": "Apache-2.0",
"dependencies": {
+ "@swc/counter": "^0.1.3",
"tslib": "^2.4.0"
}
},
@@ -8518,13 +8525,13 @@
"license": "MIT"
},
"node_modules/next": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz",
- "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==",
+ "version": "14.2.28",
+ "resolved": "https://registry.npmjs.org/next/-/next-14.2.28.tgz",
+ "integrity": "sha512-QLEIP/kYXynIxtcKB6vNjtWLVs3Y4Sb+EClTC/CSVzdLD1gIuItccpu/n1lhmduffI32iPGEK2cLLxxt28qgYA==",
"license": "MIT",
"dependencies": {
- "@next/env": "14.1.0",
- "@swc/helpers": "0.5.2",
+ "@next/env": "14.2.28",
+ "@swc/helpers": "0.5.5",
"busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579",
"graceful-fs": "^4.2.11",
@@ -8538,18 +8545,19 @@
"node": ">=18.17.0"
},
"optionalDependencies": {
- "@next/swc-darwin-arm64": "14.1.0",
- "@next/swc-darwin-x64": "14.1.0",
- "@next/swc-linux-arm64-gnu": "14.1.0",
- "@next/swc-linux-arm64-musl": "14.1.0",
- "@next/swc-linux-x64-gnu": "14.1.0",
- "@next/swc-linux-x64-musl": "14.1.0",
- "@next/swc-win32-arm64-msvc": "14.1.0",
- "@next/swc-win32-ia32-msvc": "14.1.0",
- "@next/swc-win32-x64-msvc": "14.1.0"
+ "@next/swc-darwin-arm64": "14.2.28",
+ "@next/swc-darwin-x64": "14.2.28",
+ "@next/swc-linux-arm64-gnu": "14.2.28",
+ "@next/swc-linux-arm64-musl": "14.2.28",
+ "@next/swc-linux-x64-gnu": "14.2.28",
+ "@next/swc-linux-x64-musl": "14.2.28",
+ "@next/swc-win32-arm64-msvc": "14.2.28",
+ "@next/swc-win32-ia32-msvc": "14.2.28",
+ "@next/swc-win32-x64-msvc": "14.2.28"
},
"peerDependencies": {
"@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.41.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"sass": "^1.3.0"
@@ -8558,6 +8566,9 @@
"@opentelemetry/api": {
"optional": true
},
+ "@playwright/test": {
+ "optional": true
+ },
"sass": {
"optional": true
}
diff --git a/package.json b/package.json
index e71d0d2..b60f85f 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
},
"dependencies": {
"gray-matter": "^4.0.3",
- "next": "14.1.0",
+ "next": "^14.2.28",
"next-mdx-remote": "^5.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
diff --git a/public/digital-spring-cleaning/digitalspringcleaningWorksheet.pdf b/public/digital-spring-cleaning/digitalspringcleaningWorksheet.pdf
new file mode 100644
index 0000000..634f526
Binary files /dev/null and b/public/digital-spring-cleaning/digitalspringcleaningWorksheet.pdf differ
diff --git a/src/app/digital-spring-cleaning/digitalspringcleaningWorksheet copy.pdf b/src/app/digital-spring-cleaning/digitalspringcleaningWorksheet copy.pdf
new file mode 100644
index 0000000..634f526
Binary files /dev/null and b/src/app/digital-spring-cleaning/digitalspringcleaningWorksheet copy.pdf differ
diff --git a/src/app/digital-spring-cleaning/page.tsx b/src/app/digital-spring-cleaning/page.tsx
new file mode 100644
index 0000000..b033cf9
--- /dev/null
+++ b/src/app/digital-spring-cleaning/page.tsx
@@ -0,0 +1,83 @@
+import Link from 'next/link';
+
+export default function DigitalSpringCleaningPage() {
+ return (
+
+
+
+ {/* Hero Title & Tagline */}
+
Digital Spring Cleaning Toolkit
+
+ Refresh your digital life with neurodivergent-friendly tools
+
+
+ Download our free worksheet and try the NAA (Notice, Adjust, Acknowledge) micro-reflection, inspired by our April 2025 newsletter series and podcast.
+
+
+
+ {/* Main Content Block: What's Inside & Downloads */}
+
+
What's Inside?
+
+ Digital Spring Cleaning Worksheet: A 4-page resource designed to be partially or fully filled out monthly or quarterly—use it to reflect, set goals, and simplify your digital world using the GRIT framework (Passion, Perseverance, Growth, Resilience).
+
+
+
Prefer to work digitally or print it out—your choice! No sign-up required.
+
+ {/* NAA Framework Callout */}
+
+
NAA Framework: Notice, Adjust, Acknowledge
+
+ The NAA Framework is a two-minute micro-reflection designed to help you quickly regain control and clarity in your digital life:
+
+
+ Notice: Pause and scan your digital environment. What feels energizing? What feels draining?
+ Adjust: Make one small change—close a tab, silence a notification, or move a distracting icon.
+ Acknowledge: Give yourself credit for taking intentional action, no matter how small.
+
+
Try it now for a quick digital reset!
+
+
+
+ {/* Newsletter Series Attribution */}
+
+
From Our April 2025 Newsletter Series
+
These resources are adapted from our in-depth Digital Spring Cleaning series. Dive deeper into each week's topic:
+
+
Want more mindful tech tips and digital well-being tools? Subscribe to the Pythoness Perspective newsletter for the latest sovereign tech strategies!
+
+
+ {/* Encouragement/Outro */}
+
+
Ready to take your first step?
+
Try the NAA micro-reflection right now: Notice your digital space, Adjust one small thing, and Acknowledge your effort. Small changes add up!
+
Inspired by the Pythoness Programmer's podcast and newsletter. Share this page with a friend who could use a digital refresh!
+
+
+
+
+ );
+}
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx
index 26bb034..5066d14 100644
--- a/src/components/Footer.tsx
+++ b/src/components/Footer.tsx
@@ -53,6 +53,7 @@ export default function Footer() {
Vibe Coding Cheatsheet
Sourdough Corner
+ Digital Spring Cleaning
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index 08bf037..3dd14d3 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -51,13 +51,35 @@ export default function Header() {
>
Work
-
- Newsletter
-
+
+
+ Newsletter
+
+
+
+
+
+
+
+ GRIT Digital Cleaning
+
+
+ Subscribe
+
+
+
+
Work
- setIsMenuOpen(false)}
- >
- Newsletter
-
+
+
Newsletter
+
+ setIsMenuOpen(false)}
+ >
+ GRIT Digital Cleaning
+
+ setIsMenuOpen(false)}
+ >
+ Subscribe
+
+
+