Projects/Personal Site/Architecture Decisions

ADR 000: Github Public Repo

Context

I need a place to host the source code for this project. The requirements are:

  • Visibility: It must be public to serve as a portfolio piece and reference implementation.
  • Reliability: It needs to be hosted on a stable, industry-standard platform.
  • Collaboration: It should support standard workflows for version control, issue tracking, and CI/CD integration.
  • Ecosystem: It should integrate easily with other tools (Vercel, Cloudflare, etc.).

Decision

I decided to host the repository publicly on GitHub.

This aligns with several guiding principles:

  • Choose Boring Technologies: GitHub is the default, status quo choice for open source software. It is reliable, well-understood, and ubiquitous.
  • Build in Public: Making the repo public invites feedback, sharing knowledge, and demonstrating technical capability as a portfolio artifact.
  • Minimize Platforms: I already use GitHub for my professional work and other open source contributions. Using it here avoids creating a new account or learning a new interface.

Consequences

Pros

  • Zero Learning Curve: I can leverage my existing years of experience with GitHub actions, secrets, and workflows.
  • Integration: Seamless integration with almost every developer tool (CI/CD, code analysis, deployment targets).
  • Community: It is the go-to place for open source, making it easier for others to discover, fork, or learn from this project.
  • Trust: A public GitHub profile is a standard signal of technical activity for engineers.

Cons

  • Vendor Lock-in: Deep reliance on GitHub Actions and specific features can make migrating to GitLab or Bitbucket difficult later (though accepted as a low risk given GitHub's dominance).