@networkpro/blog 1.5.8 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,7 @@ jobs:
27
27
 
28
28
  steps:
29
29
  - name: Checkout master branch
30
- uses: actions/checkout@v5
30
+ uses: actions/checkout@v6
31
31
  with:
32
32
  ref: master
33
33
  fetch-depth: 0 # Required to push to another branch
@@ -18,7 +18,7 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: 'Checkout Repository'
21
- uses: actions/checkout@v5
21
+ uses: actions/checkout@v6
22
22
 
23
23
  - name: 'Dependency Review'
24
24
  uses: actions/dependency-review-action@v4
@@ -31,7 +31,7 @@ jobs:
31
31
 
32
32
  steps:
33
33
  - name: Checkout repository
34
- uses: actions/checkout@v5
34
+ uses: actions/checkout@v6
35
35
  with:
36
36
  fetch-depth: 0
37
37
 
@@ -45,7 +45,7 @@ jobs:
45
45
  - name: Upgrade npm
46
46
  run: |
47
47
  corepack enable
48
- npm install -g npm@11.6.2
48
+ npm install -g npm@11.7.0
49
49
 
50
50
  - name: Install Node.js dependencies
51
51
  run: npm ci
@@ -73,7 +73,7 @@ jobs:
73
73
  run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
74
74
 
75
75
  - name: Upload source archive
76
- uses: actions/upload-artifact@v5
76
+ uses: actions/upload-artifact@v6
77
77
  with:
78
78
  name: clean-source
79
79
  path: clean-source.tar.gz
@@ -86,7 +86,7 @@ jobs:
86
86
 
87
87
  steps:
88
88
  - name: Download clean source archive
89
- uses: actions/download-artifact@v5
89
+ uses: actions/download-artifact@v7
90
90
  with:
91
91
  name: clean-source
92
92
  path: ./
@@ -113,7 +113,7 @@ jobs:
113
113
  - name: Upgrade npm
114
114
  run: |
115
115
  corepack enable
116
- npm install -g npm@11.6.2
116
+ npm install -g npm@11.7.0
117
117
 
118
118
  - name: Install Node.js dependencies
119
119
  run: npm ci
@@ -136,7 +136,7 @@ jobs:
136
136
 
137
137
  steps:
138
138
  - name: Download clean source archive
139
- uses: actions/download-artifact@v5
139
+ uses: actions/download-artifact@v7
140
140
  with:
141
141
  name: clean-source
142
142
  path: ./
@@ -163,7 +163,7 @@ jobs:
163
163
  - name: Upgrade npm
164
164
  run: |
165
165
  corepack enable
166
- npm install -g npm@11.6.2
166
+ npm install -g npm@11.7.0
167
167
 
168
168
  - name: Install Node.js dependencies
169
169
  run: npm ci
@@ -7,10 +7,9 @@
7
7
  name: Publish to Registries
8
8
 
9
9
  on:
10
- workflow_run:
11
- workflows: ['Build Site and Deploy to GH Pages']
12
- types:
13
- - completed
10
+ release:
11
+ types: [created]
12
+ workflow_dispatch:
14
13
 
15
14
  permissions:
16
15
  actions: read
@@ -25,15 +24,18 @@ concurrency:
25
24
  # cspell:ignore userconfig
26
25
 
27
26
  jobs:
27
+ check-codeql:
28
+ uses: ./.github/workflows/check-codeql.yml
29
+
28
30
  build:
29
- if: ${{ github.event.workflow_run.conclusion == 'success' }}
31
+ needs: check-codeql
30
32
  runs-on: ubuntu-24.04
31
33
  env:
32
34
  ENV_MODE: ci
33
35
 
34
36
  steps:
35
37
  - name: Checkout repository
36
- uses: actions/checkout@v5
38
+ uses: actions/checkout@v6
37
39
  with:
38
40
  fetch-depth: 0
39
41
 
@@ -47,7 +49,7 @@ jobs:
47
49
  - name: Upgrade npm
48
50
  run: |
49
51
  corepack enable
50
- npm install -g npm@11.6.2
52
+ npm install -g npm@11.7.0
51
53
 
52
54
  - name: Install Node.js dependencies
53
55
  run: npm ci
@@ -75,7 +77,7 @@ jobs:
75
77
  run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
76
78
 
77
79
  - name: Upload source archive
78
- uses: actions/upload-artifact@v5
80
+ uses: actions/upload-artifact@v6
79
81
  with:
80
82
  name: clean-source
81
83
  path: clean-source.tar.gz
@@ -88,7 +90,7 @@ jobs:
88
90
 
89
91
  steps:
90
92
  - name: Download clean source archive
91
- uses: actions/download-artifact@v5
93
+ uses: actions/download-artifact@v7
92
94
  with:
93
95
  name: clean-source
94
96
  path: ./
@@ -110,7 +112,7 @@ jobs:
110
112
  - name: Upgrade npm
111
113
  run: |
112
114
  corepack enable
113
- npm install -g npm@11.6.2
115
+ npm install -g npm@11.7.0
114
116
 
115
117
  - name: Install Node.js dependencies
116
118
  run: npm ci
@@ -133,7 +135,7 @@ jobs:
133
135
 
134
136
  steps:
135
137
  - name: Download clean source archive
136
- uses: actions/download-artifact@v5
138
+ uses: actions/download-artifact@v7
137
139
  with:
138
140
  name: clean-source
139
141
  path: ./
@@ -155,7 +157,7 @@ jobs:
155
157
  - name: Upgrade npm
156
158
  run: |
157
159
  corepack enable
158
- npm install -g npm@11.6.2
160
+ npm install -g npm@11.7.0
159
161
 
160
162
  - name: Install Node.js dependencies
161
163
  run: npm ci
package/CHANGELOG.md CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  All notable changes to this project will be documented in this file.
8
8
 
9
- This project attempts to follow
10
- [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), though versioning and
11
- formatting may vary.
9
+ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
10
+ Version numbers use a **SemVer-inspired** `MAJOR.MINOR.PATCH` format, with
11
+ version increments reflecting both user-visible and operational impact.
12
12
 
13
13
  ---
14
14
 
@@ -16,6 +16,71 @@ formatting may vary.
16
16
 
17
17
  ---
18
18
 
19
+ ## [1.6.0] - 2025-12-19
20
+
21
+ ### Added
22
+
23
+ - Added `vercel.json` to define Vercel build configuration and security headers.
24
+ - Added Vercel as a supported deployment target for this site.
25
+ - Added `VERSIONING.md` for clarity regarding how we implement versioning.
26
+
27
+ ### Changed
28
+
29
+ - Migrated static site deployment from Netlify to Vercel.
30
+ - Converted Netlify build configuration (`netlify.toml`) to Vercel-equivalent
31
+ settings.
32
+ - Updated MkDocs build invocation to use `python -m mkdocs` for improved
33
+ compatibility in CI environments.
34
+ - Explicitly configured the build output directory as `build/`.
35
+ - Preserved existing Content Security Policy (CSP), reporting endpoints, and
36
+ security headers under Vercel.
37
+ - Updated GitHub workflows to utilize the latest versions of
38
+ `actions/checkout@v6`, `actions/upload-artifact@v6`, and
39
+ `actions/download-artifact@v7`, as well as **npm** `v11.7.0`:
40
+ - `.github/workflows/backup-branch.yml`
41
+ - `.github/workflows/dependency-review.yml`
42
+ - `.github/workflows/publish-test.yml`
43
+ - `.github/workflows/publish.yml`
44
+ - Bumped project version to `v1.6.0`.
45
+ - Updated frontend tooling dependencies:
46
+ - `@eslint/js` `^9.39.1` → `^9.39.2`
47
+ - `autoprefixer` `^10.4.22` → `^10.4.23`
48
+ - `browserslist` `^4.28.0` → `^4.28.1`
49
+ - `eslint` `^9.39.1` → `^9.39.2`
50
+ - `prettier` `3.6.2` → `3.7.4`
51
+ - `stylelint` `^16.25.0` → `^16.26.1`
52
+ - `markdownlint` `^0.39.0` → `^0.40.0`
53
+ - `markdownlint-cli2` `^0.19.0` → `^0.20.0`
54
+
55
+ ### Removed
56
+
57
+ - Removed `netlify.toml`, as Netlify is no longer the active deployment
58
+ platform.
59
+ - Removed reliance on Netlify-specific header configuration in favor of Vercel
60
+ headers.
61
+
62
+ ---
63
+
64
+ ## [1.5.9] - 2025-11-18
65
+
66
+ ### Added
67
+
68
+ - `netlify.toml` file to configure Netlify build variables and enforce CSP and
69
+ headers.
70
+
71
+ ### Changed
72
+
73
+ - Refactored `.github/workflows/publish.yml` to check CodeQL results and then
74
+ proceed with publishing to npmjs and GPR.
75
+ - Bumped project version to `v1.5.9`.
76
+
77
+ ### Removed
78
+
79
+ - Removed GitHub CI workflow at `.github/workflows/build-and-deploy.yml`, as
80
+ builds will now be processed automatically by Netlify.
81
+
82
+ ---
83
+
19
84
  ## [1.5.8] - 2025-11-16
20
85
 
21
86
  ### Changed
@@ -496,7 +561,9 @@ formatting may vary.
496
561
 
497
562
  <!-- Link references -->
498
563
 
499
- [Unreleased]: https://github.com/netwk-pro/blog/compare/v1.5.8...HEAD
564
+ [Unreleased]: https://github.com/netwk-pro/blog/compare/v1.6.0...HEAD
565
+ [1.6.0]: https://github.com/netwk-pro/blog/releases/tag/v1.6.0
566
+ [1.5.9]: https://github.com/netwk-pro/blog/releases/tag/v1.5.9
500
567
  [1.5.8]: https://github.com/netwk-pro/blog/releases/tag/v1.5.8
501
568
  [1.5.7]: https://github.com/netwk-pro/blog/releases/tag/v1.5.7
502
569
  [1.5.6]: https://github.com/netwk-pro/blog/releases/tag/v1.5.6
package/VERSIONING.md ADDED
@@ -0,0 +1,47 @@
1
+ # Versioning Policy
2
+
3
+ This project uses a **SemVer-inspired versioning scheme** based on the
4
+ `MAJOR.MINOR.PATCH` format.
5
+
6
+ Version numbers are intended to communicate the **impact of a change** rather
7
+ than strict compliance with the Semantic Versioning specification. In addition
8
+ to user-facing changes, version increments may reflect infrastructure, hosting,
9
+ or operational changes relevant to maintainers.
10
+
11
+ ## Version Number Meaning
12
+
13
+ ### MAJOR (`X.0.0`)
14
+
15
+ Incremented when changes introduce **user-visible incompatibilities**, such as:
16
+
17
+ - URL or navigation structure changes
18
+ - Removal or renaming of major sections
19
+ - Changes that break existing links or bookmarks
20
+ - Changes to access, availability, or licensing
21
+
22
+ ### MINOR (`1.X.0`)
23
+
24
+ Incremented for **backward-compatible but significant changes**, including:
25
+
26
+ - Hosting platform migrations (e.g. Netlify → Vercel)
27
+ - Build or deployment pipeline changes
28
+ - Security header or CSP delivery changes
29
+ - Changes that may affect maintainers or operators, but not readers
30
+ - New features or content additions that do not break existing usage
31
+
32
+ ### PATCH (`1.1.X`)
33
+
34
+ Incremented for **backward-compatible, low-impact changes**, such as:
35
+
36
+ - Content edits or corrections
37
+ - Dependency updates
38
+ - Tooling updates that do not alter build behavior
39
+ - Internal refactoring or cleanup
40
+
41
+ ## Notes
42
+
43
+ - Infrastructure or platform changes may be considered “breaking” from a
44
+ maintainer perspective, but do not automatically imply a MAJOR version bump.
45
+ - Version numbers are intended to communicate **impact**, not just change.
46
+ - Detailed migration or operational notes are documented in the changelog when
47
+ relevant.
package/cspell.json CHANGED
@@ -14,6 +14,7 @@
14
14
  "FOSS",
15
15
  "gatekeeping",
16
16
  "Gboard",
17
+ "geolocation",
17
18
  "Heli",
18
19
  "heliboard",
19
20
  "homescreen",
@@ -26,10 +27,12 @@
26
27
  "NETPRO",
27
28
  "netwk",
28
29
  "networkpro",
30
+ "nosniff",
29
31
  "npmjs",
30
32
  "NWPRO",
31
33
  "otphelper",
32
34
  "pozil",
35
+ "publickey",
33
36
  "robotstxt",
34
37
  "sideloading",
35
38
  "sonicwall",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@networkpro/blog",
3
- "version": "1.5.8",
3
+ "version": "1.6.0",
4
4
  "description": "The official blog of Network Pro Strategies (Network Pro™).",
5
5
  "keywords": [
6
6
  "advisory",
@@ -51,20 +51,20 @@
51
51
  "prepare": "npx simple-git-hooks || echo ''"
52
52
  },
53
53
  "devDependencies": {
54
- "@eslint/js": "^9.39.1",
54
+ "@eslint/js": "^9.39.2",
55
55
  "@eslint/json": "^0.14.0",
56
- "autoprefixer": "^10.4.22",
57
- "browserslist": "^4.28.0",
58
- "eslint": "^9.39.1",
56
+ "autoprefixer": "^10.4.23",
57
+ "browserslist": "^4.28.1",
58
+ "eslint": "^9.39.2",
59
59
  "eslint-config-prettier": "^10.1.8",
60
60
  "globals": "^16.5.0",
61
- "markdownlint": "^0.39.0",
62
- "markdownlint-cli2": "^0.19.0",
61
+ "markdownlint": "^0.40.0",
62
+ "markdownlint-cli2": "^0.20.0",
63
63
  "npm-run-all": "^4.1.5",
64
64
  "postcss": "^8.5.6",
65
- "prettier": "3.6.2",
65
+ "prettier": "3.7.4",
66
66
  "simple-git-hooks": "^2.13.1",
67
- "stylelint": "^16.25.0",
67
+ "stylelint": "^16.26.1",
68
68
  "stylelint-config-html": "^1.1.0",
69
69
  "stylelint-config-recommended": "^17.0.0",
70
70
  "stylelint-order": "^7.0.0"
@@ -37,9 +37,9 @@ tags:
37
37
 
38
38
  &nbsp;
39
39
 
40
- Thanks for your interest in improving **Network Pro Strategies** (Network
41
- Pro™)! We're always looking for collaborators and contributors of all skill
42
- levels. This guide will help you get started quickly and effectively.
40
+ Thanks for your interest in improving **Network Pro Strategies** (Network Pro™)!
41
+ We're always looking for collaborators and contributors of all skill levels.
42
+ This guide will help you get started quickly and effectively.
43
43
 
44
44
  Following these guidelines helps us all work together efficiently and
45
45
  respectfully. 🙌
package/src/posts/live.md CHANGED
@@ -75,8 +75,8 @@ gatekeeping.
75
75
 
76
76
  ### ✅ Our Vision: Security That Respects You
77
77
 
78
- At **Network Pro™**, we believe security should be **transparent, adaptable,
79
- and aligned with your goals**. While we advocate for privacy-first solutions and
78
+ At **Network Pro™**, we believe security should be **transparent, adaptable, and
79
+ aligned with your goals**. While we advocate for privacy-first solutions and
80
80
  actively support open technologies, we apply them with discretion—not dogma. Our
81
81
  priority is delivering **reliable, resilient results**, whether through open
82
82
  source tools or vetted proprietary platforms.
package/src/robots.txt CHANGED
@@ -11,10 +11,10 @@ User-agent: *
11
11
  # Disallow dev and CI/CD artifacts
12
12
  Disallow: /tests/
13
13
  Disallow: /reports/
14
- Disallow: /build/
15
14
 
16
15
  # Allow everything else
17
16
  Allow: /
17
+ Allow: /.well-known
18
18
 
19
19
  # Inform bots where to find the sitemap
20
20
  Sitemap: https://blog.netwk.pro/sitemap.xml
package/vercel.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "buildCommand": "pip install -r requirements.txt && python -m mkdocs build --clean --site-dir build",
3
+ "outputDirectory": "build",
4
+ "headers": [
5
+ {
6
+ "source": "/(.*)",
7
+ "headers": [
8
+ {
9
+ "key": "Content-Security-Policy",
10
+ "value": "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self' https://api.github.com; font-src 'self' data: https://fonts.gstatic.com; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests; report-uri https://csp.netwk.pro/.netlify/functions/csp-report; report-to csp-endpoint;"
11
+ },
12
+ {
13
+ "key": "Report-To",
14
+ "value": "{\"group\":\"csp-endpoint\",\"max_age\":10886400,\"endpoints\":[{\"url\":\"https://csp.netwk.pro/.netlify/functions/csp-report\"}],\"include_subdomains\":true}"
15
+ },
16
+ {
17
+ "key": "Permissions-Policy",
18
+ "value": "fullscreen=(self), sync-xhr=(), camera=(), microphone=(), geolocation=(), clipboard-read=(), clipboard-write=(), payment=(), usb=(), hid=(), gamepad=(), serial=(), publickey-credentials-get=(), browsing-topics=()"
19
+ },
20
+ {
21
+ "key": "X-Content-Type-Options",
22
+ "value": "nosniff"
23
+ },
24
+ {
25
+ "key": "Referrer-Policy",
26
+ "value": "strict-origin-when-cross-origin"
27
+ },
28
+ {
29
+ "key": "X-Frame-Options",
30
+ "value": "DENY"
31
+ },
32
+ {
33
+ "key": "Strict-Transport-Security",
34
+ "value": "max-age=31536000; includeSubDomains"
35
+ }
36
+ ]
37
+ }
38
+ ]
39
+ }
@@ -1,94 +0,0 @@
1
- # .github/workflows/build-and-deploy.yml
2
- #
3
- # Copyright © 2025 Network Pro Strategies (Network Pro™)
4
- # SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
5
- # This file is part of Network Pro
6
-
7
- name: Build Site and Deploy to GH Pages
8
-
9
- on:
10
- release:
11
- types: [created]
12
- workflow_dispatch:
13
-
14
- # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
15
- permissions:
16
- actions: read
17
- contents: read
18
- pages: write
19
- id-token: write
20
-
21
- # Allow one concurrent deployment
22
- concurrency:
23
- group: 'pages'
24
- cancel-in-progress: true
25
-
26
- jobs:
27
- check-codeql:
28
- uses: ./.github/workflows/check-codeql.yml
29
-
30
- build:
31
- needs: check-codeql
32
- runs-on: ubuntu-24.04
33
- env:
34
- ENV_MODE: ci
35
-
36
- steps:
37
- - name: Checkout repository
38
- uses: actions/checkout@v5
39
- with:
40
- fetch-depth: 0
41
-
42
- - name: Set up Node.js
43
- uses: actions/setup-node@v6
44
- with:
45
- node-version: 24
46
- cache: npm
47
- cache-dependency-path: package-lock.json
48
-
49
- - name: Upgrade npm
50
- run: |
51
- corepack enable
52
- npm install -g npm@11.6.2
53
-
54
- - name: Set up Pages
55
- uses: actions/configure-pages@v5
56
-
57
- - name: Install Node.js dependencies
58
- run: npm ci
59
-
60
- # Begin Material for MkDocs setup
61
- - name: Set up Python
62
- uses: actions/setup-python@v6
63
- with:
64
- python-version-file: '.python-version'
65
- cache: 'pip'
66
-
67
- - name: Install Python dependencies
68
- run: pip install -r requirements.txt
69
-
70
- # Strict mode disabled for mkdocs-material
71
- - name: Build MkDocs documentation
72
- run: mkdocs build
73
-
74
- - name: Copy package.json to build directory
75
- run: cp package.json build/
76
-
77
- - name: Upload artifact
78
- uses: actions/upload-pages-artifact@v4
79
- with:
80
- path: ./build
81
-
82
- deploy:
83
- needs: [check-codeql, build]
84
- environment:
85
- name: github-pages
86
- url: ${{ steps.deployment.outputs.page_url }}
87
- runs-on: ubuntu-24.04
88
- env:
89
- ENV_MODE: ci
90
-
91
- steps:
92
- - name: Deploy to GitHub Pages
93
- id: deployment
94
- uses: actions/deploy-pages@v4
package/src/sitemap.xml DELETED
@@ -1,392 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Last Updated: 2025-11-09 -->
3
-
4
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
-
6
- <url>
7
-
8
- <loc>https://blog.netwk.pro</loc>
9
-
10
- <lastmod>2025-11-09</lastmod>
11
-
12
- <changefreq>monthly</changefreq>
13
-
14
- <priority>1.0</priority>
15
-
16
- </url>
17
-
18
- <url>
19
-
20
- <loc>https://blog.netwk.pro/2025/11/09/introducing-our-new-privacy--security-apps--services-portal/</loc>
21
-
22
- <lastmod>2025-11-09</lastmod>
23
-
24
- <changefreq>monthly</changefreq>
25
-
26
- <priority>0.8</priority>
27
-
28
- </url>
29
-
30
- <url>
31
-
32
- <loc>https://blog.netwk.pro/2025/11/09/the-end-of-true-sideloading/</loc>
33
-
34
- <lastmod>2025-11-09</lastmod>
35
-
36
- <changefreq>monthly</changefreq>
37
-
38
- <priority>0.8</priority>
39
-
40
- </url>
41
-
42
- <url>
43
-
44
- <loc>https://blog.netwk.pro/2025/09/23/cyber-alert-update---sonicwall-security-breach-what-you-need-to-know/</loc>
45
-
46
- <lastmod>2025-09-23</lastmod>
47
-
48
- <changefreq>monthly</changefreq>
49
-
50
- <priority>0.8</priority>
51
-
52
- </url>
53
-
54
- <url>
55
-
56
- <loc>https://blog.netwk.pro/2025/07/27/uk-reverses-course-on-apple-cloud-encryption-demands/</loc>
57
-
58
- <lastmod>2025-07-27</lastmod>
59
-
60
- <changefreq>monthly</changefreq>
61
-
62
- <priority>0.7</priority>
63
-
64
- </url>
65
-
66
- <url>
67
-
68
- <url>
69
-
70
- <loc>https://blog.netwk.pro/2025/07/17/foss-spotlight-copy-sms-code---otp-helper/</loc>
71
-
72
- <lastmod>2025-07-27</lastmod>
73
-
74
- <changefreq>monthly</changefreq>
75
-
76
- <priority>0.7</priority>
77
-
78
- </url>
79
-
80
- <url>
81
-
82
- <loc>https://blog.netwk.pro/2025/07/17/ai-personality-profiling-and-the-rise-of-intellectual-leveling/</loc>
83
-
84
- <lastmod>2025-07-17</lastmod>
85
-
86
- <changefreq>monthly</changefreq>
87
-
88
- <priority>0.7</priority>
89
-
90
- </url>
91
-
92
- <url>
93
-
94
- <loc>https://blog.netwk.pro/2025/07/10/is-outlook-quietly-turning-into-microsofts-data-collection-machine/</loc>
95
-
96
- <lastmod>2025-07-10</lastmod>
97
-
98
- <changefreq>monthly</changefreq>
99
-
100
- <priority>0.7</priority>
101
-
102
- </url>
103
-
104
- <url>
105
-
106
- <loc>https://blog.netwk.pro/2025/07/07/hpe-completes-acquisition-of-juniper-networks/</loc>
107
-
108
- <lastmod>2025-07-07</lastmod>
109
-
110
- <changefreq>monthly</changefreq>
111
-
112
- <priority>0.7</priority>
113
-
114
- </url>
115
-
116
- <url>
117
-
118
- <loc>https://blog.netwk.pro/2025/07/01/supreme-court-upholds-age-verification-law/</loc>
119
-
120
- <lastmod>2025-07-01</lastmod>
121
-
122
- <changefreq>monthly</changefreq>
123
-
124
- <priority>0.7</priority>
125
-
126
- </url>
127
-
128
- <url>
129
-
130
- <loc>https://blog.netwk.pro/2025/06/23/encryption-is-not-a-loophole/</loc>
131
-
132
- <lastmod>2025-07-27</lastmod>
133
-
134
- <changefreq>monthly</changefreq>
135
-
136
- <priority>0.6</priority>
137
-
138
- </url>
139
-
140
- <url>
141
-
142
- <loc>https://blog.netwk.pro/2025/06/16/foss-spotlight-cryptomator/</loc>
143
-
144
- <lastmod>2025-07-27</lastmod>
145
-
146
- <changefreq>monthly</changefreq>
147
-
148
- <priority>0.6</priority>
149
-
150
- </url>
151
-
152
- <url>
153
-
154
- <loc>https://blog.netwk.pro/2025/06/12/whats-a-backdoor-in-encryption/</loc>
155
-
156
- <lastmod>2025-07-27</lastmod>
157
-
158
- <changefreq>monthly</changefreq>
159
-
160
- <priority>0.6</priority>
161
-
162
- </url>
163
-
164
- <url>
165
-
166
- <loc>https://blog.netwk.pro/2025/06/08/foss-spotlight-squircle-ce/</loc>
167
-
168
- <lastmod>2025-07-27</lastmod>
169
-
170
- <changefreq>monthly</changefreq>
171
-
172
- <priority>0.6</priority>
173
-
174
- </url>
175
-
176
- <url>
177
-
178
- <loc>https://blog.netwk.pro/2025/06/03/google-gemini-now-reads-your-emails-heres-why-you-should-switch/</loc>
179
-
180
- <lastmod>2025-06-03</lastmod>
181
-
182
- <changefreq>monthly</changefreq>
183
-
184
- <priority>0.6</priority>
185
-
186
- </url>
187
-
188
- <url>
189
-
190
- <loc>https://blog.netwk.pro/2025/06/03/digital-identity-a-trojan-horse-for-surveillance/</loc>
191
-
192
- <lastmod>2025-06-03</lastmod>
193
-
194
- <changefreq>monthly</changefreq>
195
-
196
- <priority>0.6</priority>
197
-
198
- </url>
199
-
200
- <url>
201
-
202
- <loc>https://blog.netwk.pro/2025/05/29/foss-spotlight-heliboard/</loc>
203
-
204
- <lastmod>2025-07-27</lastmod>
205
-
206
- <changefreq>monthly</changefreq>
207
-
208
- <priority>0.5</priority>
209
-
210
- </url>
211
-
212
- <url>
213
-
214
- <loc>https://blog.netwk.pro/2025/05/29/microsoft-authenticator-users---major-change-incoming/</loc>
215
-
216
- <lastmod>2025-07-27</lastmod>
217
-
218
- <changefreq>monthly</changefreq>
219
-
220
- <priority>0.5</priority>
221
-
222
- </url>
223
-
224
- <url>
225
-
226
- <loc>https://blog.netwk.pro/2025/05/26/welcome-to-the-future-of-network-pro/</loc>
227
-
228
- <lastmod>2025-05-26</lastmod>
229
-
230
- <changefreq>monthly</changefreq>
231
-
232
- <priority>0.5</priority>
233
-
234
- </url>
235
-
236
- <url>
237
-
238
- <loc>https://blog.netwk.pro/2025/05/16/progressive-web-app-is-live/</loc>
239
-
240
- <lastmod>2025-05-16</lastmod>
241
-
242
- <changefreq>monthly</changefreq>
243
-
244
- <priority>0.5</priority>
245
-
246
- </url>
247
-
248
- <url>
249
-
250
- <loc>https://blog.netwk.pro/2025/05/15/building-a-better-web-experience/</loc>
251
-
252
- <lastmod>2025-05-15</lastmod>
253
-
254
- <changefreq>monthly</changefreq>
255
-
256
- <priority>0.5</priority>
257
-
258
- </url>
259
-
260
- <url>
261
-
262
- <loc>https://blog.netwk.pro/2025/05/11/the-network-pro-blog-has-moved/</loc>
263
-
264
- <lastmod>2025-05-11</lastmod>
265
-
266
- <changefreq>monthly</changefreq>
267
-
268
- <priority>0.5</priority>
269
-
270
- </url>
271
-
272
- <url>
273
-
274
- <loc>https://blog.netwk.pro/2025/04/30/our-blog-is-live/</loc>
275
-
276
- <lastmod>2025-05-11</lastmod>
277
-
278
- <changefreq>monthly</changefreq>
279
-
280
- <priority>0.5</priority>
281
-
282
- </url>
283
-
284
- <url>
285
-
286
- <loc>https://blog.netwk.pro/category/android/</loc>
287
-
288
- <lastmod>2025-11-09</lastmod>
289
-
290
- <changefreq>monthly</changefreq>
291
-
292
- <priority>0.5</priority>
293
-
294
- </url>
295
-
296
- <url>
297
-
298
- <loc>https://blog.netwk.pro/category/open-source/</loc>
299
-
300
- <lastmod>2025-11-09</lastmod>
301
-
302
- <changefreq>monthly</changefreq>
303
-
304
- <priority>0.5</priority>
305
-
306
- </url>
307
-
308
- <url>
309
-
310
- <loc>https://blog.netwk.pro/category/privacy/</loc>
311
-
312
- <lastmod>2025-11-09</lastmod>
313
-
314
- <changefreq>monthly</changefreq>
315
-
316
- <priority>0.5</priority>
317
-
318
- </url>
319
-
320
- <url>
321
-
322
- <loc>https://blog.netwk.pro/category/security/</loc>
323
-
324
- <lastmod>2025-11-09</lastmod>
325
-
326
- <changefreq>monthly</changefreq>
327
-
328
- <priority>0.5</priority>
329
-
330
- </url>
331
-
332
- <url>
333
-
334
- <loc>https://blog.netwk.pro/archive/2025/</loc>
335
-
336
- <lastmod>2025-11-09</lastmod>
337
-
338
- <changefreq>monthly</changefreq>
339
-
340
- <priority>0.5</priority>
341
-
342
- </url>
343
-
344
- <url>
345
-
346
- <loc>https://blog.netwk.pro/tags/</loc>
347
-
348
- <lastmod>2025-11-09</lastmod>
349
-
350
- <changefreq>monthly</changefreq>
351
-
352
- <priority>0.5</priority>
353
-
354
- </url>
355
-
356
- <url>
357
-
358
- <loc>https://blog.netwk.pro/2015/01/04/secure-secure-shell/</loc>
359
-
360
- <lastmod>2025-11-09</lastmod>
361
-
362
- <changefreq>yearly</changefreq>
363
-
364
- <priority>0.4</priority>
365
-
366
- </url>
367
-
368
- <url>
369
-
370
- <loc>https://blog.netwk.pro/contributing/</loc>
371
-
372
- <lastmod>2025-11-09</lastmod>
373
-
374
- <changefreq>monthly</changefreq>
375
-
376
- <priority>0.4</priority>
377
-
378
- </url>
379
-
380
- <url>
381
-
382
- <loc>https://blog.netwk.pro/CODE_OF_CONDUCT/</loc>
383
-
384
- <lastmod>2025-05-30</lastmod>
385
-
386
- <changefreq>monthly</changefreq>
387
-
388
- <priority>0.4</priority>
389
-
390
- </url>
391
-
392
- </urlset>