Optimize SEO meta tags and update sitemap for production
ci/woodpecker/push/woodpecker Pipeline was successful Details

- Updated meta descriptions and titles for all HTML pages with concise, keyword-rich content
- Optimized main pages (index.html, stories/index.html) with compelling descriptions
- Enhanced all 15 story pages with unique, SEO-optimized meta tags
- Improved CSV tool page SEO description
- Updated generate-sitemap.sh to use production domain (https://colinknapp.com)
- Regenerated sitemap.xml with production URLs and current timestamps
- Verified and updated all integrity hashes using update-csp-hashes.sh
This commit is contained in:
Colin 2025-11-18 14:11:22 -05:00
parent f7f7bcf7dc
commit 14b03869af
Signed by: colin
SSH Key Fingerprint: SHA256:nRPCQTeMFLdGytxRQmPVK9VXY3/ePKQ5lGRyJhT5DY8
24 changed files with 96 additions and 92 deletions

View File

@ -12,7 +12,8 @@ echo "Generating sitemap.xml..."
# Directory containing the files
BASE_DIR="$(pwd)"
DOMAIN="http://localhost:8080" # Use localhost for local development and testing
# Use production domain by default, can be overridden with SITEMAP_DOMAIN env var
DOMAIN="${SITEMAP_DOMAIN:-https://colinknapp.com}"
# Get current date in ISO 8601 format
CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%S+00:00")

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Portfolio">
<title>Colin Knapp - Portfolio</title>
<meta name="description" content="DevSecOps consultant and cybersecurity expert. Led teams of 45+, built open-source tools with 10M+ downloads, and architected resilient infrastructure for government and healthcare clients.">
<title>Colin Knapp - DevSecOps Consultant & Cybersecurity Expert</title>
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">
<script src="theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>

View File

@ -60,3 +60,6 @@
})();

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - CSV Processing Tool">
<title>CSV Viewer - Colin Knapp</title>
<meta name="description" content="Free browser-based CSV viewer tool. Paste CSV data to instantly view as formatted table with sorting, customizable delimiters, and client-side processing for privacy.">
<title>CSV Viewer Tool - Free Online CSV Parser</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css">
<link rel="stylesheet" href="tool-styles.css?v=2" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">

View File

@ -1,116 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://localhost:8080/index.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/index.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/one-pager-tools/csv-tool.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/one-pager-tools/csv-tool.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/airport-dns.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/airport-dns.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/app-development.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/app-development.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/athion-turnaround.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/athion-turnaround.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/fawe-plotsquared.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/fawe-plotsquared.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/healthcare-platform.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/healthcare-platform.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/home-infrastructure.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/home-infrastructure.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/index.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/index.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/motherboard-repair.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/motherboard-repair.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/nitric-leadership.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/nitric-leadership.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/nuclear-dns.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/nuclear-dns.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/open-source-success.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/open-source-success.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/scansnap-webdav.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/scansnap-webdav.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/showerloop.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/showerloop.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/viperwire.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/viperwire.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/web-design-java.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/web-design-java.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/wordpress-security.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/wordpress-security.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:8080/stories/youtube-game-dev.html</loc>
<lastmod>2025-10-27T17:50:37+00:00</lastmod>
<loc>https://colinknapp.com/stories/youtube-game-dev.html</loc>
<lastmod>2025-11-18T19:06:15+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Airport DNS Infrastructure Case Study">
<title>Airport DNS Infrastructure - Colin Knapp Case Study</title>
<meta name="description" content="Architected geographically redundant DNS infrastructure for Flint Bishop International Airport, achieving A+ resilience standards for critical aviation infrastructure.">
<title>Airport DNS Infrastructure - Resilient DNS Design</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - App Development for Influencers Case Study">
<title>App Development for Influencers - Colin Knapp Case Study</title>
<meta name="description" content="Developed ad revenue tracking application for content creators with real-time analytics, secure API integrations, and data-driven content optimization tools.">
<title>Ad Revenue Tracking App for Influencers</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Athion.net Turnaround Case Study">
<title>Athion.net Turnaround - Colin Knapp Case Study</title>
<meta name="description" content="Revitalized struggling business into profitable operation in two weeks, developing revolutionary open-source tooling that powered major Minecraft projects.">
<title>Athion.net Business Turnaround - Colin Knapp</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - FastAsyncWorldEdit & PlotSquared Case Study">
<title>FastAsyncWorldEdit & PlotSquared - Colin Knapp Case Study</title>
<meta name="description" content="Co-created FastAsyncWorldEdit and PlotSquared, scaling Minecraft world editing from 50K server-crashing edits to billions seamlessly, powering a $2B game brand.">
<title>FastAsyncWorldEdit & PlotSquared - Minecraft Tools</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Healthcare Platform Case Study">
<title>Healthcare Platform - Colin Knapp Case Study</title>
<meta name="description" content="Designed secure, scalable infrastructure for Improving MI Practices healthcare education platform with CIS Level 1-2 security standards and high availability.">
<title>Healthcare Platform Infrastructure - Secure Design</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Home Infrastructure Cluster & WireGuard Mesh Networking - Colin Knapp">
<title>Home Infrastructure Cluster & WireGuard Mesh Networking - Colin Knapp</title>
<meta name="description" content="Built self-hosted infrastructure cluster with 100+ services for data sovereignty and developed WireGuard mesh networking tool for quantum-resistant networking.">
<title>Home Infrastructure & WireGuard Mesh Networking</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Portfolio Stories and Case Studies">
<title>Colin Knapp - Stories & Case Studies</title>
<meta name="description" content="Explore detailed case studies and project stories from Colin Knapp's portfolio: cybersecurity, infrastructure, open source development, and team leadership.">
<title>Project Stories & Case Studies - Colin Knapp</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - MotherboardRepair.ca Case Study">
<title>MotherboardRepair.ca - Colin Knapp Case Study</title>
<meta name="description" content="Co-founded sustainable electronics repair company reducing e-waste through circuit board repairs and promoting environmental responsibility in tech industry.">
<title>MotherboardRepair.ca - Sustainable Tech Solutions</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Nitric Concepts Leadership Case Study">
<title>Nitric Concepts Leadership - Colin Knapp Case Study</title>
<meta name="description" content="Led distributed team of 45 contractors at Nitric Concepts, bootstrapping company to $4M revenue while implementing DevSecOps practices across timezones.">
<title>Nitric Concepts Leadership - Team Management</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Nuclear War-Resistant DNS Infrastructure - Colin Knapp">
<title>Nuclear War-Resistant DNS Infrastructure - Colin Knapp</title>
<meta name="description" content="Architected georedundant, nuclear war-resistant DNS cluster for government clients, ensuring extreme resilience and A+ security standards for critical infrastructure.">
<title>Nuclear War-Resistant DNS Infrastructure</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA="></script>
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Open Source Community Success Case Study">
<title>Open Source Community Success - Colin Knapp Case Study</title>
<meta name="description" content="Transformed OhMyForm from abandoned project to thriving community with 32K+ Discord members, 10M+ Docker pulls, and sustainable funding model.">
<title>Open Source Community Success - OhMyForm</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA="></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="ScanSnap Scanner Service - High-performance receipt digitization for buildersclub.ca">
<title>ScanSnap Scanner Service - Colin Knapp Portfolio</title>
<meta name="description" content="Built high-performance ScanSnap scanner service processing ~1 receipt/second with batch capacity up to 50 documents, featuring automatic cleanup and WebDAV access.">
<title>ScanSnap Scanner Service - Receipt Digitization</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - ShowerLoop Project Case Study">
<title>ShowerLoop Project - Colin Knapp Case Study</title>
<meta name="description" content="Revitalized ShowerLoop website with WCAG 2.0 AA compliance, modern responsive design, and improved accessibility for innovative eco-friendly recirculating shower system.">
<title>ShowerLoop Project - Web Development & Accessibility</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -10,7 +10,7 @@
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4="></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA="></script>
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -10,7 +10,7 @@
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - ViperWire Cybersecurity Case Study">
<title>ViperWire Cybersecurity - Colin Knapp Case Study</title>
<meta name="description" content="Built AI-powered cybersecurity consultancy ViperWire, delivering enterprise-grade security to SMBs with automated threat detection, reducing incident response time to 15 minutes.">
<title>ViperWire - AI-Powered Cybersecurity Consultancy</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - Web Design & Java Plugin Development Case Study">
<title>Web Design & Java Plugin Development - Colin Knapp Case Study</title>
<meta name="description" content="Developed web solutions and Java plugins with Jenkins/GitLab CI/CD, WCAG 2.0 AA compliance, and comprehensive documentation for diverse client environments.">
<title>Web Design & Java Plugin Development</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - WordPress Security Automation Case Study">
<title>WordPress Security Automation - Colin Knapp Case Study</title>
<meta name="description" content="Created Docker-based automated WordPress malware removal tool that eliminated persistent attacks, reducing infection frequency from daily to zero for MLPP.">
<title>WordPress Security Automation - Malware Removal</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>
<script src="../includes.js" integrity="sha256-0VPPSi+jVc1DuyZaSYTq+fnpIfv7ft+ZDenYE6pDPqA=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="stories.css" integrity="sha256-O+OMb48leSKvekhMTDUK1y6+WG9x33kA0eDw00wUwkY=">
<script src="../markdown-loader.js" integrity="sha256-4+erbuMKlaalnlqc0+5d+X4Bpr1CZ7W3dUCsyA15spE="></script>
<script src="../markdown-loader.js" integrity="sha256-IiLNQTun+NOcMWp6VpG9+AxsskrioYMkoyNNbPmclA8="></script>
</head>
<body>
<!-- Header Include -->

View File

@ -3,8 +3,8 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Colin Knapp - YouTube Game Development & Cybersecurity Case Study">
<title>YouTube Game Development & Cybersecurity - Colin Knapp Case Study</title>
<meta name="description" content="Developed custom Minecraft games for YouTube creators with 15M+ subscriber reach, implementing DDoS defense, anti-phishing protocols, and data privacy measures.">
<title>YouTube Game Development & Cybersecurity</title>
<link rel="icon" type="image/x-icon" href="../favicon.ico">
<link rel="stylesheet" href="../styles.css" integrity="sha256-6vUPZLlii+WLObOMBWBE3/mwNmNSmg89f/CqzzecGyc=" crossorigin="anonymous">
<script src="../theme.js" integrity="sha256-+dDNTo7WAOmn2YC875+vn9oH4UkMwlVOGlARp2uq3A4=" crossorigin="anonymous"></script>