Hope you're doing great 👋!
Another 2 weeks have gone by and a lot of progress has been made on the course I'm building - how to learn NestJS by building real-world projects.
Still planning to launch in November 2023. I'll be announcing the specific launch date soon.
Here's an update on the launch of the course:
💰 How much will the course cost?
For the course launch, I plan on offering 2 packages (so 2 pricing options). The premium package will include access to all the projects, and the standard package will contain the first 3 projects.
I am planning to launch the premium package at $299 (USD) and the standard package will of course be less (to be confirmed).
As you're on the waiting list, you'll receive a significant discount code which will be available for the launch. I'll keep you updated on this as we get closer to launch!
🏋️ What have I been working on the last 2 weeks?
I've been working on the final project for the course - a Slack clone (in the browser). It uses NextJS 13 for the web client and NestJS on the backend). If you've never used Slack before, it's a simple chat app that allows you to create channels and send messages to other users in realtime.
Specifically, it covers:
- Using a monorepo set up with pnpm workspaces
- Setting up a WebSocket server in NestJS
- Setting up a WebSocket client in NextJS
- Building authentication from scratch in both NestJS & NextJS, including: -- Add user signup & login (i.e. authentication, including Google OAuth) -- Set up access tokens and refresh tokens -- Protecting HTTP and WebSocket server connections from unauthenticated users
🚀 What projects will be included in the course?
The course will be project-based. Here are the projects that are in progress and will be included in the course:
🌈 The NestJS Lifecycle
NestJS contains a lot of cool features and functionality, like Pipes, Guards, Interceptors & Exception Filters (and more!) and has a lifecycle that interacts with these different features. I want to include a project that covers these concepts so you know enough to be dangerous. After this project, you'll have a good mental model of which NestJS features solve specific problems so you can make the most of the framework when you're working on real projects.
🪴 The Ultimate NestJS Starter Repo
The goal is to create a NestJS starter repo (we'll actually make 2 repos, 1 for standalone NestJS apps and 1 for monorepo) that prioritises an amazing developer experience, as well as adding some configuration that'll be useful across many projects, like handling env variables, cache, docker compose local setup, e2e testing config setup and more!
🕸️ URL shortener API
In this project, we'll build a url shortening tool like the functionality shown here. You will be able to pass in a url and get back a shortened url that you can use (that will redirect to the original url you passed in). We'll be building out a Rest API with full CRUD functionality, API key based authentication, persisting to a database, unit and e2e testing, and more! The aim of this project is to cover 80% of the NestJS features that you’ll use in a real-world API project and give you a strong NestJS foundation for the remaining projects.
🏡 Real estate API (working with queues)
In this project, we'll build simple real estate API that includes file uploads and sending jobs to a queue for processing. The project is really about handling files in HTTP requests and in-depth look into using queues. Specifically, it covers things like validating file uploads in HTTP requests, setting up and configuring Bull (the queuing package used in NestJS), sending files to a queue as jobs, processing the jobs in the background, viewing the queue jobs in a visual UI using Bull Board, uploading the files to Google Cloud Storage, and more!
📬 Slack clone (Fullstack monorepo)
See update above on what I've been working on for the past 2 weeks!
Now that the Slack clone project is done, I can confirm this is all the projects that will be included in the course launch!
I am planning to add further projects in the future after the launch (e.g. GraphQL server, monorepo set up with tRPC and more).
I'm really happy with the projects that are included - they provide a really solid foundation on NestJS but also go into some more advanced territories.
As mentioned previously, all projects will include testing (unit, integration & end-to-end) and deployment 🙃.
✅ Next steps:
I’m going to continue building this course in public, sharing updates with you every 2 weeks to keep you in the loop on my progress. Here are some of my next to-do items to work through:
- I need to start moving all the course content into Podia, the platform I'm using to host the course
- Choose a launch date (it'll be sometime in late November)
- Figure out my 'launch plan' of how I will communicate the launch
- Keep making small daily progress. Similar to my tutorials, I'm prioritising quality of the material and really trying to explain concepts from first principles (which takes a lot of time!). But with daily action I am making good progress.
Is there anything else you'd like to know from these updates Let me know by replying to any of the emails I send you, I'd love to hear from you! ✌️.