fix spelling + linking & add SEO optimizations

This commit is contained in:
SowinskiBraeden committed 2026-05-05 16:35:17 -07:00
1 parent a8ac8c238c
commit a09f3fc0d0
6 files changed
+125 -26

No files matched your search

+24 -9
View File
@@ -2,11 +2,26 @@
<html lang='en'>
<head>
<title>Braeden Sowinski</title>
<meta name='description' content="Braeden Sowinski's portfolio" />
<title>About | Braeden Sowinski</title>
<meta charset='utf-8'>
<meta name='description' content="Learn more about Braeden Sowinski, a BCIT CST student and software engineer focused on backend systems, APIs, data-driven software, and technical problem solving." />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, software engineer, systems programming, BCIT" />
<meta name='keywords' content="Braeden Sowinski, about, software engineer, backend systems, BCIT" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='robots' content='index, follow'>
<meta name='theme-color' content='#1d1e20'>
<link rel='canonical' href='https://sowinski.dev/about.html'>
<meta property='og:type' content='profile'>
<meta property='og:title' content='About | Braeden Sowinski'>
<meta property='og:description' content='Learn more about Braeden Sowinski, a BCIT CST student and software engineer focused on backend systems, APIs, data-driven software, and technical problem solving.'>
<meta property='og:url' content='https://sowinski.dev/about.html'>
<meta property='og:site_name' content='Braeden Sowinski'>
<meta property='og:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<meta property='og:image:alt' content='Braeden Sowinski profile photo'>
<meta name='twitter:card' content='summary_large_image'>
<meta name='twitter:title' content='About | Braeden Sowinski'>
<meta name='twitter:description' content='Learn more about Braeden Sowinski, a BCIT CST student and software engineer focused on backend systems, APIs, data-driven software, and technical problem solving.'>
<meta name='twitter:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<link rel="stylesheet" href="./public/css/style.css">
<link rel="stylesheet" href="./public/css/about.css">
@@ -89,15 +104,15 @@
<h3>Skills</h3>
<ul class="text skills-list">
<li>Java, C, Go, OCaml</li>
<li>JavaScript (Node.js)</li>
<li>JavaScript and Node.js</li>
<li>Python3+</li>
<li>Git, Github, GitLab</li>
<li>Git, GitHub, GitLab</li>
<li>Docker</li>
<li>MongoDB & PostgreSQL</li>
<li>Windows/Debian based OS</li>
<li>Windows and Debian-based systems</li>
<li>Data Structures & Algorithms</li>
<li>System Administration</li>
<li>Data-Driven Software</li>
<li>Data-driven software</li>
<li>Oral & Written Communication</li>
<li>Team Collaboration & Adaptability</li>
</ul>
@@ -105,7 +120,7 @@
</div>
<section class="about" id="about">
<h3 class="title">About me</h3>
<h3 class="title">About Me</h3>
<p class="text">
As a software engineer, I am passionate about developing back-end systems and data-driven applications.
Currently pursuing a Diploma in Computer Systems Technology at
@@ -165,7 +180,7 @@
d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" />
</svg>
</a>
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="Github">
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="GitHub">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
+18 -3
View File
@@ -2,11 +2,26 @@
<html lang='en'>
<head>
<title>Braeden Sowinski</title>
<meta name='description' content="Braeden Sowinski's portfolio" />
<title>Entry | Braeden Sowinski</title>
<meta charset='utf-8'>
<meta name='description' content="Project entry or update from Braeden Sowinski's portfolio site." />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, project entry, portfolio" />
<meta name='keywords' content="Braeden Sowinski, portfolio entry, project, update" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='robots' content='index, follow'>
<meta name='theme-color' content='#1d1e20'>
<link rel='canonical' href='https://sowinski.dev/entry.html'>
<meta property='og:type' content='article'>
<meta property='og:title' content='Entry | Braeden Sowinski'>
<meta property='og:description' content='Project entry or update from Braeden Sowinski.'>
<meta property='og:url' content='https://sowinski.dev/entry.html'>
<meta property='og:site_name' content='Braeden Sowinski'>
<meta property='og:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<meta property='og:image:alt' content='Braeden Sowinski profile photo'>
<meta name='twitter:card' content='summary_large_image'>
<meta name='twitter:title' content='Entry | Braeden Sowinski'>
<meta name='twitter:description' content='Project entry or update from Braeden Sowinski.'>
<meta name='twitter:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<link rel="stylesheet" href="./public/css/style.css">
<link rel="stylesheet" href="./public/css/projects.css">
+20 -5
View File
@@ -2,11 +2,26 @@
<html lang='en'>
<head>
<title>Braeden Sowinski</title>
<meta name='description' content="Braeden Sowinski's portfolio" />
<title>Braeden Sowinski | Software Engineer</title>
<meta charset='utf-8'>
<meta name='description' content="Braeden Sowinski is a software engineer and BCIT CST student focused on backend systems, APIs, data-driven software, and practical technical problem solving." />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, software engineer, systems programming, BCIT" />
<meta name='keywords' content="Braeden Sowinski, software engineer, backend systems, APIs, BCIT, portfolio" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='robots' content='index, follow'>
<meta name='theme-color' content='#1d1e20'>
<link rel='canonical' href='https://sowinski.dev/'>
<meta property='og:type' content='website'>
<meta property='og:title' content='Braeden Sowinski | Software Engineer'>
<meta property='og:description' content='Software engineer and BCIT CST student focused on backend systems, APIs, data-driven software, and practical technical problem solving.'>
<meta property='og:url' content='https://sowinski.dev/'>
<meta property='og:site_name' content='Braeden Sowinski'>
<meta property='og:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<meta property='og:image:alt' content='Braeden Sowinski profile photo'>
<meta name='twitter:card' content='summary_large_image'>
<meta name='twitter:title' content='Braeden Sowinski | Software Engineer'>
<meta name='twitter:description' content='Software engineer and BCIT CST student focused on backend systems, APIs, data-driven software, and practical technical problem solving.'>
<meta name='twitter:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<link rel="stylesheet" href="./public/css/style.css">
</head>
@@ -92,7 +107,7 @@
<div class="hero-badges">
<span class="badge">BCIT CST Diploma</span>
<span class="badge">C4A President</span>
<span class="badge">Hackathon Podium Finiher</span>
<span class="badge">Hackathon Podium Finisher</span>
</div>
<div class="hero-actions">
@@ -109,7 +124,7 @@
d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" />
</svg>
</a>
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="Github">
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="GitHub">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
+21 -6
View File
@@ -2,11 +2,26 @@
<html lang='en'>
<head>
<title>Braeden Sowinski</title>
<meta name='description' content="Braeden Sowinski's portfolio" />
<title>Projects and Updates | Braeden Sowinski</title>
<meta charset='utf-8'>
<meta name='description' content="Browse selected software projects, technical writeups, and recent updates from Braeden Sowinski, including backend systems, APIs, and student leadership milestones." />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, projects, portfolio, software engineer" />
<meta name='keywords' content="Braeden Sowinski, projects, updates, portfolio, software engineer, BCIT" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='robots' content='index, follow'>
<meta name='theme-color' content='#1d1e20'>
<link rel='canonical' href='https://sowinski.dev/projects.html'>
<meta property='og:type' content='website'>
<meta property='og:title' content='Projects and Updates | Braeden Sowinski'>
<meta property='og:description' content='Browse selected software projects, technical writeups, and recent updates from Braeden Sowinski.'>
<meta property='og:url' content='https://sowinski.dev/projects.html'>
<meta property='og:site_name' content='Braeden Sowinski'>
<meta property='og:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<meta property='og:image:alt' content='Braeden Sowinski profile photo'>
<meta name='twitter:card' content='summary_large_image'>
<meta name='twitter:title' content='Projects and Updates | Braeden Sowinski'>
<meta name='twitter:description' content='Browse selected software projects, technical writeups, and recent updates from Braeden Sowinski.'>
<meta name='twitter:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<link rel="stylesheet" href="./public/css/style.css">
<link rel="stylesheet" href="./public/css/projects.css">
@@ -76,7 +91,7 @@
<p class="eyebrow">Projects & Updates</p>
<h1>Selected work, recent milestones, and technical writeups.</h1>
<p class="projects-intro">
View some of the work I am proud of, and some recent acheivements of mine :)
View selected projects, technical writeups, and recent updates.
</p>
</section>
@@ -86,7 +101,7 @@
<p class="eyebrow">Portfolio</p>
<h2>Selected Projects</h2>
</div>
<a class="section-link" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer">View Github</a>
<a class="section-link" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer">View GitHub</a>
</div>
<div id="projects-grid" class="content-grid">
<p class="loading-state">Loading projects...</p>
@@ -121,7 +136,7 @@
d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z" />
</svg>
</a>
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="Github">
<a class="icon" href="https://github.com/SowinskiBraeden" target="_blank" rel="noopener noreferrer me" title="GitHub">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round">
<path
+2 -2
View File
@@ -169,7 +169,7 @@
"title": "Joined the BCIT Computing Club as an Executive Member",
"slug": "joined-bcit-computing-club",
"type": "updates",
"summary": "After helping friends and existing exutives of the BCIT Computing Club, I have officially joined to help represent, and direct events such as reviews sessions, and hackathons.",
"summary": "After helping friends and existing executives of the BCIT Computing Club, I officially joined to help represent and support events such as review sessions and hackathons.",
"label": "Update",
"date": "2025-12-24",
"status": "New Role",
@@ -180,7 +180,7 @@
"tags": [
"Computing Club",
"Executive Member",
"BICT"
"BCIT"
],
"path": "./public/content/updates/joined-bcit-computing-club.md"
},
+40 -1
View File
@@ -59,13 +59,50 @@
return `<div class="${className}">${tags.map((tag) => `<span class="${className === "tag-list" ? "tag" : "entry-tag"}">${escapeHtml(tag)}</span>`).join("")}</div>`;
};
const setMetaContent = (selector, content) => {
const element = document.querySelector(selector);
if (!element || !content) {
return;
}
element.setAttribute("content", content);
};
const setCanonicalHref = (href) => {
const canonical = document.querySelector("link[rel='canonical']");
if (!canonical || !href) {
return;
}
canonical.setAttribute("href", href);
};
const updateEntryMeta = (entry) => {
const baseUrl = "https://sowinski.dev";
const title = `${entry.title} | Braeden Sowinski`;
const description = entry.summary || "Project entry or update from Braeden Sowinski.";
const url = `${baseUrl}/entry.html?type=${encodeURIComponent(entry.type)}&slug=${encodeURIComponent(entry.slug)}`;
const image = "https://avatars.githubusercontent.com/u/48144618?v=4";
document.title = title;
setCanonicalHref(url);
setMetaContent("meta[name='description']", description);
setMetaContent("meta[property='og:title']", title);
setMetaContent("meta[property='og:description']", description);
setMetaContent("meta[property='og:url']", url);
setMetaContent("meta[property='og:image']", image);
setMetaContent("meta[name='twitter:title']", title);
setMetaContent("meta[name='twitter:description']", description);
setMetaContent("meta[name='twitter:image']", image);
};
const renderLinks = (entry, className) => {
const links = [];
links.push(`<a class="${className} ${className}-primary" href="./entry.html?type=${encodeURIComponent(entry.type)}&slug=${encodeURIComponent(entry.slug)}">Read More</a>`);
if (entry.github) {
links.push(`<a class="${className}" href="${escapeHtml(entry.github)}" target="_blank" rel="noopener noreferrer">Github</a>`);
links.push(`<a class="${className}" href="${escapeHtml(entry.github)}" target="_blank" rel="noopener noreferrer">GitHub</a>`);
}
if (entry.demo) {
@@ -221,6 +258,8 @@
throw new Error("Entry not found.");
}
updateEntryMeta(entry);
const response = await fetch(entry.path);
if (!response.ok) {
throw new Error("Unable to load markdown entry.");