Content designed to increase developer happiness 😁 and productivity 🚀.
The monorepo is organized into five sub-projects.
hugo
- Static Site Generator. This is where the content livesdesign
- Theme & CSScomponents
- Angular Elements Web Componentsfunctions
- Firebase Cloud Functions Serverless Backendcypress
- End-to-End & Integration Specs
First, install Hugo.
git clone <fireship-repo>
npm install
npm run dev
Visit localhost:1313
and you should be live. You do not need the web components for general content development, but they can be built with:
cd components && npm install
npm run build
Edit and fix the site's content in hugo/content/
. Feel free to submit PRs for small issues. For large issues or features open an issue first.
First, fork this repo on Github.
git clone <your-forked-repo>
npm install
npm run dev
git checkout -b my-fix
# fix some code...
git commit -m "fix: corrected a typo"
git push origin my-fix
Lastly, open a pull request on Github. Once merged, your changes will automatically be deployed to the live site via the CI/CD pipeline.
As features are added and fixes are made to the original repo (usually referred to as the 'upstream') your fork will become out of date. You can keep your fork up to date by doing the following:
Run from your terminal
npm run link-upstream
This should add the official repo as a remote called: 'upstream'. You can see all remotes by entering:
git remote -v
In a typical setup, you should see your fork on Github listed as origin, and the fireship-io
original as upstream:
origin https://github.com/ZackDeRose/fireship.io (fetch)
origin https://github.com/ZackDeRose/fireship.io (push)
upstream https://github.com/fireship-io/fireship.io (fetch)
upstream https://github.com/fireship-io/fireship.io (push)
Whenever you believe your fork may be out of sync, just run from your terminal
npm run sync
This will update your local master branch to match the original repo's master branch! It will then push those changes to your fork on GitHub, essentially keeping all 3 in sync!
If you want to re-install this project and continue contributing, just run the next command in the terminal
npm run reset
This will remove package-lock.json
and node_modules
, then runs npm install
followed by npm run dev
.
Read the style guide for some tips before contributing.
cd hugo
hugo new -k bundle lessons/angularfire-google-oauth
hugo new snippets/my-cool-snippet.md
First time? Add your bio and a social links to content/contributors
.
The CSS and JS required in critical path is located in design
.
Interactive features are built with Angular Elements web components in components/