Skip to content

Instantly share code, notes, and snippets.

@lorenzocorallo
Last active October 17, 2025 10:45
Show Gist options
  • Select an option

  • Save lorenzocorallo/5180eecb78ff2aee4520bd5f913e8a07 to your computer and use it in GitHub Desktop.

Select an option

Save lorenzocorallo/5180eecb78ff2aee4520bd5f913e8a07 to your computer and use it in GitHub Desktop.
This is a file filled with resources to learn all the basics to contribute to a NextJS TypeScript project.

Resources to build the foundations

Package Manager

How to install pnpm
We use ONLY pnpm. If in tutorials you see npm, yarn, bun, or other package managers, ALWAYS SUBSTITUTE them with pnpm.

Git / GitHub

How to install git

Git and GitHub are essential for contributing to open-source projects and for developing software in a systematic way.

I suggest starting by learning Git on your own, using a non-development project (it can be anything—tracking changes to text files, for example).

Then create a repository on GitHub and become familiar with branching, issues, Pull Requests (PRs), and commit history.

Suggested resources:

Longer tutorials / crash courses (mainly for reference):

TypeScript

Important

If you're interested in writing frontend code, don't aim to become a TypeScript expert;
instead, focus on understanding it well enough to write solid code.

For anyone who has never used TypeScript, the recommended resource is the TypeScript Handbook.
I recommend following the Handbook for the basics of TypeScript until advanced typing starts to become difficult.
We don't need advanced types for our work—stop once you've achieved a solid understanding of the basics.

Below are suggested resources based on your background:

  1. If you know JavaScript, adding types gets you most of the way to TypeScript.
    Read this article

  2. If you already know a programming language like C/C++, C#, Go, Rust, OCaml, or similar, you'll probably learn TypeScript in a few hours—just check some documentation or watch a few videos.

  3. If you know Python, TypeScript is more strongly typed and has syntax more similar to C-like languages. You'll probably need a bit more time to understand the type system, but otherwise it's similar.

  4. If you've never programmed before, start with the tutorials linked below and get the most out of them. Then look at our repositories to see what level of TypeScript we use.
    Read this article

Suggested resources in general:

React / Next.js / Tailwind CSS

Important

Learn React before you learn Next.js. Trying to write Next.js without a solid React foundation will be painful.

Also, use TypeScript from the beginning—don't follow tutorials that use plain JavaScript.

If you've never worked with HTML and CSS, learn those first (use any resources you prefer).

React

Suggested resources for React:

Note

The second and third links are especially good; the Fireship video (first) is very short so watch it anyway.
Next.js - React Foundations (second) is more NextJS-oriented, while react.dev - Learn section (third) is more traditional React stuff. Do what fits your learning style (or do both).

Next.js

I couldn't find a comprehensive Next.js tutorial that doesn't include a lot of unnecessary material. What I recommend is the Next.js - Learn App Router.

Feel free to skip Chapters 14–15-16. It's a fairly long course—work through it until you feel ready.

Note (1): The course uses Vercel for deployment, but we are self-hosted. For the tutorial, this doesn't matter—just don't assume Vercel is the only way to deploy a Next.js project.

Note (2): We handle backend work separately; you can still follow the tutorial and adapt to our setup later.

TailwindCSS

Important

Please, learn CSS first. Also, we (almost) always use flex or grid systems, so do not spend too much time on other ones.

Once you have learned CSS, TailwindCSS is just learning how CSS rules translate into Tailwind class names - you can always look at the docs for that!

We use TailwindCSS as our style "system", instead of standard CSS or CCS-in-JS packages.
WE ARE USING v4

Here are some resources:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment