https://github.com/mkschulz9/mkschulz.com
Under the hood of Matthew Schulz's personal website.
https://github.com/mkschulz9/mkschulz.com
commitlint eslint github-actions github-pages husky mui-material pnpm prettier react typescript vite
Last synced: 2 months ago
JSON representation
Under the hood of Matthew Schulz's personal website.
- Host: GitHub
- URL: https://github.com/mkschulz9/mkschulz.com
- Owner: mkschulz9
- Created: 2024-02-14T20:20:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-03T18:36:14.000Z (5 months ago)
- Last Synced: 2025-02-12T01:30:14.793Z (4 months ago)
- Topics: commitlint, eslint, github-actions, github-pages, husky, mui-material, pnpm, prettier, react, typescript, vite
- Language: TypeScript
- Homepage: https://mkschulz.com
- Size: 25.1 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Matthew Schulz's Personal Website
- Welcome to the behind the scenes of Matthew Schulz's personal website! This
site is a single-page application (SPA) built from scratch that showcases
Matthew's projects, work experience, and more. The website is hosted on
[GitHub Pages](https://pages.github.com/) and can be accessed securly at
[mkschulz.com](https://mkschulz.com/).> **_NOTE:_** This website is a work in progress and is constantly being
> updated.| Type | Name | Related Folder(s) / File(s) | Description |
| ------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| Package Manager | [pnpm](https://pnpm.io/) | [package.json](package.json)
[pnpm-lock.yaml](pnpm-lock.yaml) | Package manager that facilitates efficient management and installation of dependencies. |
| Build Tool | [Vite](https://vitejs.dev/) | [vite.config.ts](vite.config.ts) | Build tool that provides fast and efficient development experience. |
| Static Type Checker | [TypeScript](https://www.typescriptlang.org/) | [tsconfig.json](tsconfig.json) | Static type checker that helps catch type-related bugs early. |
| UI Libraries | [React](https://reactjs.org/)
[MUI](https://mui.com/) | [src/main.tsx](src/main.tsx)
[src/components](src/components) | UI libraries that provide a rich set of components and utilities. |
| CI/CD | [GitHub Actions](https://github.com/features/actions) | [.github/workflows](.github/workflows) | CI/CD tool that automates the build, test, and deployment processes. |
| Code Linter | [ESLint](https://eslint.org/) | [eslint.config.js](eslint.config.js) | Code linter that helps maintain consistent code style. |
| Code Formatter | [Prettier](https://prettier.io/) | [.prettierrc.yaml](.prettierrc.yaml) | Code formatter that helps maintain consistent code style. |
| Commit Linter | [commitlint](https://github.com/conventional-changelog/commitlint) | [.commitlintrc.json](.commitlintrc.json) | Commit linter that checks if commit messages meet a certain format. |
| Git Hooks | [husky](https://typicode.github.io/husky/#/) | [.husky](.husky) | Git hooks that run tasks before/after Git commands. |## CI/CD Pipelines
CI/CD pipelines are implemented using GitHub Actions. Workflow files are defined
in [.github/workflows](.github/workflows).| Pipeline | Deployed site | Trigger | Description |
| --------------------------------------------------------------------------- | -------------------------------------------------- | ------------------------ | ------------------------------ |
| [github-pages-deploy.yml](.github/workflows/github-pages-deploy.yml) (Prod) | [mkschulz9.github.io](https://mkschulz9.github.io) | on Push to `main` branch | Build and deploy to prod site. |### Explanation of Steps Defined in `github-pages-deploy.yml`
- The pipeline is triggered on push to the `main` branch.
- The pipeline has two jobs: `build` and `deploy`.
- The `build` job installs dependencies, builds the project, and uploads the
production-ready build files as an artifact.
- The `deploy` job downloads the artifact and deploys the production-ready
build.
- The pipeline uses a GitHub token stored in the repository secrets to deploy
the production-ready build to [GitHub Pages](https://pages.github.com/).## Git Hooks
When a Git commit is made, the following happens in the background:
- [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/) lint and
format the staged code.
- [commitlint](https://github.com/conventional-changelog/commitlint) checks if
the commit message meets the
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) format.