├── .env.example
├── .eslintrc.json
├── .gitignore
├── README.md
├── deploy.ts
├── next-env.d.ts
├── next.config.js
├── package.json
├── pages
├── 404.tsx
├── [user].tsx
├── _app.js
├── api
│ ├── clear.ts
│ ├── progress.ts
│ ├── render.ts
│ └── retry.ts
├── faq.tsx
└── index.tsx
├── public
├── fav.png
├── flash.png
├── promo1.png
├── promo2.png
├── promo3.png
└── vercel.svg
├── remotion
├── Contrib.tsx
├── Decoration.tsx
├── DecorativeLines.tsx
├── EndCard.tsx
├── EndCard2.tsx
├── Flashcard.tsx
├── Green.tsx
├── IDidALot.tsx
├── Issues.tsx
├── Lang.tsx
├── Main.tsx
├── ManyLanguages.tsx
├── TitleCard.tsx
├── TopWeekday.tsx
├── TotalContributions.tsx
├── Transition.tsx
├── TransitionDemo.tsx
├── Video.tsx
├── all.ts
├── font.ts
├── icons
│ ├── C.tsx
│ ├── Dart.tsx
│ ├── Elixir.tsx
│ ├── Erlang.tsx
│ ├── Flutter.tsx
│ ├── Go.tsx
│ ├── Haskell.tsx
│ ├── Javascript.tsx
│ ├── Php.tsx
│ ├── Python.tsx
│ ├── Ruby.tsx
│ ├── Rust.tsx
│ ├── Scala.tsx
│ ├── Swift.tsx
│ ├── Typescript.tsx
│ └── Zig.tsx
├── index.tsx
├── letters
│ ├── github.tsx
│ ├── one.tsx
│ ├── two.tsx
│ └── zero.tsx
└── map-response-to-stats.ts
├── src
├── components
│ ├── Download.tsx
│ ├── Footer.tsx
│ ├── Rerender.tsx
│ ├── button.ts
│ └── spinner.tsx
├── config.ts
├── db
│ ├── cache.ts
│ ├── mongo.ts
│ └── renders.ts
├── get-account-count.ts
├── get-all.ts
├── get-random-aws-account.ts
├── get-render-or-make.ts
├── get-render-progress-with-finality.ts
├── get-stats-or-fetch.ts
├── palette.ts
├── regions.ts
├── set-env-for-key.ts
└── use-window-size.ts
├── styles
└── globals.css
├── tsconfig.json
└── yarn.lock
/.env.example:
--------------------------------------------------------------------------------
1 | AWS_KEY_1=
2 | AWS_SECRET_1=
3 | AWS_KEY_2=
4 | AWS_SECRET_2=
5 | GITHUB_TOKEN=
6 | MONGO_URL=
7 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env.local
29 | .env.development.local
30 | .env.test.local
31 | .env.production.local
32 |
33 | # vercel
34 | .vercel
35 | .env
36 | tsconfig.tsbuildinfo
37 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | This is the repo for the 2021 version. Go to the 2022 version!
4 |
5 |
This doesn{"'"}t seem to be a GitHub user. Probably just a typo!
22 | 23 | 24 | 25 | 26 |343 | Download your video and tweet it using{" "} 344 | 349 | #GitHubUnwrapped 350 | {" "} 351 | hashtag! 352 |
353 |368 | Tip for iOS Safari: Long press the {'"'}Download button{'"'} 369 | , then press {'"'}Download Linked File{'"'} to save the 370 | video locally. 371 |
372 | ) : null} 373 | 378 | 379 | 380 | 381 | 386 |41 | We call GitHub{"'"}s GraphQL API to fetch and calculate your 2021 42 | statistics. The video is written in React using Remotion. 43 |
44 |45 | To display the video, the{" "} 46 | 54 | @remotion/player 55 | {" "} 56 | library is being used. When a username is entered for the first time, 57 | we render the video to an MP4 in an AWS Lambda function using{" "} 58 | 66 | @remotion/lambda 67 | {" "} 68 | and cache it in an S3 bucket. 69 |
70 |71 | Want to make your own programmatic video solution? Check out{" "} 72 | 80 | Remotion! 81 | 82 |
83 | 84 |86 | Yes, the source code is available on{" "} 87 | 95 | GitHub 96 | 97 | ! The source code of the video is {'"'}open source{'"'}, while 98 | Remotion, the framework for making videos is {'"'}source-available 99 | {'"'} and requires companies to obtain a license to use it. 100 |
101 |103 | This is a hackathon project by{" "} 104 | 112 | Jonny Burger 113 | 114 | . No affiliation with GitHub.{" "} 115 |
116 |118 | 126 | {'"'}The Librarian{'"'} by Adi Goldstein. 127 | 128 |
129 |131 | 139 | hi@remotion.dev 140 | 141 |
142 |139 | Get a personalized video of your GitHub activity in 2021. Type 140 | your username to get started! 141 |
142 |47 | We have improved your statistics since the video was last rendered. You 48 | can re-render it! 49 |
50 | {downloadProgress !== null && 51 | downloadProgress.type == "finality" && 52 | downloadProgress.finality && 53 | downloadProgress.finality.type === "success" ? ( 54 | 57 | ) : null} 58 |