- Clone this repository.
- Run
yarn install
(must useyarn
since this repo is using "yarn workspaces"). - Run
yarn start
to start the dev server. - Open http://localhost:3000 in your browser and start profiling its performance.
Your goal is to find and fix performance issues related to this week's material:
- Bundling, dependencies, tree shaking, side-effects, lazy loading, JS waterfalls.
- JS performance, O-complexity.
- Layout performance and shifting. Forced reflows.
- Animation performance.
- You are not supposed to remove any existing logic, but in some cases you can replace libraries with better or smaller alternatives.
- Optimising the video game requires you to get your hands dirty. First to understand the code, and then to rewrite parts of it. Hopefully TypeScript helps.
- You do not have to fix any issues from last week's material. We already covered that stuff in the previous Weekly Project.
- There are some minor JS performance issues in the code which I want you to fix in this weekly project as an exercise, even though they don't seriously affect the performance of the app. In the real world, you should not focus on these kinds of "non-issues".
Your delivery is your fork of the github repository with all of your changes.
Your solution should be yours alone. You are welcome and encouraged to support your classmates. You can help them understand the material better, collaborate and brainstorm on solutions, share online resources and even discuss your approach in detail. But there should be no sharing of code whatsoever. Issues around this will be reported to the university and may have consequences for both of the parties involved.
Finish on time: 30% (changes to 15% if delivered late or with less then half of the requirements)
Requirements: 60%
Extra challenges: 10% each (max 2)