View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
View brennanbrown's full-sized avatar
✨
Looking for FOSS projects to contribute to!
✨
Looking for FOSS projects to contribute to!

Block or report brennanbrown

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
brennanbrown/README.md

Dev.toLinkedinMediumKo-fiPronounsOpen SourceLiberapay

:octocat:Website / Resume / Writing Portfolio:octocat:

NEW! Visit my indieweb site πŸ”† brennan.day πŸ”†

About Me πŸ‘‹

Hey there! πŸ˜„ My name is Brennan, I'm a 30-year-old Queer MΓ©tis JAMstack developer at Berry House and full-time writer from Winnipeg, Manitoba and currently reside in Calgary, Alberta. In April 2025, I graduated from Mount Royal University with a Bachelor of Arts majoring in English Honours, and have also completed both the Full-Stack Developer Program at InceptionU in 2020 and the Growth Marketing Bootcamp at OnRamp in 2022. Now, I'm looking to help those that need web development work done, or searching for ideas and management for their next content project.

I would also love to volunteer my time to contributing to open-source projects! I love creating and tinkering with small, static websites and projects. I'm a big proponent of putting an emphasis on accessibility and the A11y project in web development.

I'm always looking to work with people that are hopeless idealists like me, as well as who are interested in creating and working on cool, interesting, and meaningful projects! Shoot me an e-mail if that sounds like your cup of tea.

Octo Ring logo
previousrandomnext
check out other GitHub profiles in the Octo Ring

My Technology Stack πŸ“š

Design

GIMPInkscape

IndieWeb & Decentralized Web

IndieWebAT ProtocolRSS

Databases

MariaDBRedisElasticsearch

Content & Documentation

DEV.toWrite.asLaTeX

Styling & Frontend Tools

SassBootstrapTailwind CSSFont Awesome

JAMstack & Static Site Generators

Jekyll11tyNunjucksHugoNetlifyCodeberg Pages

Content Management & Tools

GitGitLabNPMRubyGemsESLintObsidian

Self-Hosting & Homelab

DockerLinuxNGINXLet's EncryptPorkbunUmami

Languages & Core Technologies

MarkdownJavaScriptTypeScriptNode.jsHTML5CSS3PythonRubyJSONYAML

Development Environment

VSCodiumSublime TextMicroTerminalfish shelltmuxnvmFileZillamacOSDebian

Research & Academia

ORCIDGoogle ScholarResearchGateZoteroInternet Archive


Recent Posts πŸ“‘

A selection of other technical write-ups from brennan.day:

From: 18 August 2017 - To: 02 September 2026
Total Time: 1,404 hrs 3 mins
Markdown 729 hrs 31 mins β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 51.96 %
HTML 145 hrs 40 mins β–ˆβ–ˆβ–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 10.38 %
JavaScript 132 hrs 23 mins β–ˆβ–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 09.43 %
CSS 78 hrs 34 mins β–ˆβ–’β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 05.60 %
Python 63 hrs 19 mins β–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 04.51 %
YAML 44 hrs 57 mins β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 03.20 %

⚠️ Choose a Better Developer Platform

GitHub and Microsoft have demonstrated a pattern of decisions that conflict with the values of the independent, ethical web. Here are the key concerns:

Loss of Independence and Declining Engineering Quality

In August 2025, GitHub's CEO resigned and the platform was fully absorbed into Microsoft's CoreAI division, ending operational independence. This coincided with mounting complaints about declining service quality.

The Zig Software Foundation publicly quit GitHub, citing Microsoft's AI obsession as having "ruined the service." Critical infrastructure bugs like the safe_sleep.sh issue that caused runners to hang indefinitely went unaddressed for over a year while Microsoft prioritized AI features.

Copilot Training on Your Code Without Proper Attribution

GitHub Copilot was trained on billions of lines of code from public repositories without respecting open-source license requirements. A class-action lawsuit filed in November 2022 alleges that Copilot violates the terms of 11 popular open-source licenses (including MIT, GPL, and Apache) by:

Most copyright claims were dismissed, but breach of contract and open-source license violation claims continue.

Privacy and Security Concerns

Microsoft Copilot leaked thousands of private GitHub repositories from major companies including IBM, Google, and Microsoft itself. Over 16,000 organizations were affected, with sensitive data including access keys and security tokens exposed through caching mechanisms.

GitHub's privacy policy is deliberately vague regarding training data. While Business and Enterprise customers reportedly have protections, free and Pro tier users face uncertainty about whether their code is used for training. Users report that privacy settings have been mysteriously re-enabled without consent.

Ignored User Feedback

User requests to disable or block Copilot features have been the #1 and #2 most popular topics on GitHub's community page for over 12 monthsβ€”and remain completely unanswered. Users report that disable buttons are ignored by the interface.

Pricing Controversies

In December 2025, GitHub announced plans to charge $0.002/minute for self-hosted Actions runners, charging developers to run GitHub's software on their own hardware. The backlash was so intense that GitHub postponed the change within 24 hours.


How to Migrate Your Code

You don't have to stay on a platform that doesn't align with your values. Here are ethical alternatives:

Codeberg (Recommended)

A non-profit, community-driven platform run by Codeberg e.V., a democratic German organization. It's powered by Forgejo and funded entirely by donations. No investors, no ads, no corporate roadmap.

Features:

  • Free Git hosting for open source
  • CI/CD via Woodpecker and Forgejo Actions
  • Static site hosting with Codeberg Pages
  • Migration tools built-in

Forgejo: The software powering Codeberg. Lightweight, runs on modest hardware (like Raspberry Pi), with a familiar GitHub-like interface.

Gitea: The original project Forgejo forked from. Still actively maintained, written in Go, easy to install.

GitLab: Full DevOps platform with comprehensive CI/CD. Can be self-hosted or used as a service.

Migration Steps

  1. Create accounts on your chosen platform(s)
  2. Use built-in migration tools: Most alternatives can import directly from GitHub, including issues, PRs, and wikis
  3. Update your README: Add a notice about the migration with links to new locations
  4. Archive GitHub repos: Mark them as read-only with clear redirection
  5. Update local remotes: git remote set-url origin <new-url>

Detailed migration guide for Codeberg


Why Keep a GitHub Mirror?

I maintain a mirror here for three reasons. Discoverability, as many developers still only search on GitHub, education as this README can reach people who need to know about these issues, and community, by helping others migrate and that's better than just disappearing.


β†’ My GitLab β†’ My Forgejo β†’ My Codeberg

Pinned Loading

  1. enjoyment-workenjoyment-workPublic template

    πŸ—ƒοΈ A Digital Garden: Capturing my daily thoughts and progress, as well as curated ideas with unique synthesisβ€”a personal zettelkasten. Built on Simply Jekyll by Raghuveer S.

    HTML 114 13

  2. purelogpurelogPublic template

    πŸ“” A responsive sidebar Jekyll theme, created with the Pure.css framework, designed for writers and bloggers of all kinds.

    HTML 39 33

  3. waterywateryPublic template

    🚰 A minimalist, bare-bones theme for Jekyll only using the Water.css framework while still following the best practices for accessibility and search-engine optimization.

    HTML 20 8

  4. 11ty-Indie-Web-Blog-Starter11ty-Indie-Web-Blog-StarterPublic template

    🎈 A modern, feature-complete blog template built with Eleventy and Chota CSS. Designed for writers who want to own their content and participate in the IndieWeb.

    Nunjucks 24 1

  5. journalbarjournalbarPublic

    🐝 A personal blog for self-quantification and personal improvement via Beeminder. Powered by Jekyll. / https://beejournal.netlify.app

    HTML 8 1

  6. newsprintnewsprintPublic

    πŸ—žοΈ 11ty blog theme with a newspaper aesthetic, functioning as a newsletter-first publication. Prioritizing readability, traditional typography, and excellent RSS feed implementation.

    CSS 17 5