
Explore Next.js 13's latest features, including the app directory, React server components, layouts, and API routes, then build a full-stack portfolio app with Prisma and GitHub API data.
Create a next.js project using create next app after confirming node is installed, configure options (no TypeScript, tailwind CSS, app router), and open in vscode. Then run the dev server with npm run dev to view the default landing page at localhost:3000.
Explore the project file structure with Next.js 13 and Tailwind CSS, install DaisyUI for ready-made components, and create a home page component using a Tailwind-styled primary button.
Learn to implement routing in Next.js 13 by creating an about folder with a page.js, then navigate with next/link, and build nested routes such as about/contact and deeper paths.
Learn how Next.js 13 layouts use a root layout.js to wrap pages with html and body and a shared header and footer, with route-specific layouts like about or login.
Leverage the metadata API to define page titles, descriptions, and keywords in the layout, and customize metadata per page to optimize SEO on Google.
Customize the header navigation by replacing anchors with next/link, remove the submenu, and add home, about, contact, and a GitHub users search link, with potential refactoring into a header component.
Explore React server components and client components in Next.js, highlighting faster initial loads, smaller client bundles, and SEO-friendly metadata, with backend access and data safety considerations.
Learn data fetching in Next.js 13 by comparing server component versus use client patterns, fetch GitHub users via the GitHub API with async/await, and log results.
Learn to render GitHub users in a Next.js 13 app by building a table, displaying avatars, logins, and GitHub links with dynamic iteration over a users array.
Build dynamic routes in Next.js by linking to an internal user repos page using /github-users/[username], extracting the username from params to render the user's repos.
Create a repos component to fetch and list a user's GitHub repositories. Take a user prop and render repo name, id, node id, and description in a table.
learn to create a loading page in Next.js 13 by adding a Loading.js component, display a spinner or loading text, and simulate delays to show the loader before data appears.
Learn how Next.js 13 handles data caching with fetch, using revalidate to refresh data every 60 seconds, enabling dynamic updates for frequently changing data while allowing static behavior when needed.
Explore how API route handlers in Next.js 13 respond to HTTP requests at defined URLs, returning data and supporting GET and POST methods via route.js.
Use Next.js 13 route handlers to fetch books data from a JSON file and expose it via an API route, with Prisma pending for database integration.
Next.js 13 and react crash course demonstrates a books component that fetches data from an API route, renders each book in a card on home page, and links to Amazon.
Adjust book card visuals by resizing images to width 200 and height 150, add line breaks between books, and wrap components in a div to satisfy JSX single-parent requirements.
Learn to build a Next.js 13 books search endpoint that uses url search params to filter books by query or title, returning case-insensitive results.
Add a book by handling a post request, read title, link, and image from the request body, create a new in-memory book with id, update the books array.
Convert a server component to a client component to enable search and interactivity using state and use effect, with client-side data fetching and loading handling.
Add a top search form for book queries, manage a query state, and fetch results from a search API, showing loading and updating the books list.
Create a client add-book component that opens a modal form with a button, using useState to manage the modal and trigger a post request to add a book.
Build an add book form in a modal, wire a text input, handle async submit to an API endpoint, generate a UUID, and reset the form on success.
Refactor the books feature to refresh the list after adding a new book by exposing a refresh books method and using a fetch books function.
Implement a book deletion feature in Next.js by adding a delete button and a dynamic route for book IDs, with an API delete handler and JSON data handling.
Set up a Prisma database with SQLite, define a book model (id: uuid, title, link, image), run migrations, and configure a singleton Prisma client to handle Next.js hot reloading.
Fetch and display books from a prisma database using next.js 13 api routes and server components, including seeding data with prisma create and querying with findMany.
Add a new book to Prisma database using create data for title, link, and image, with Prisma returning UUID and running insert on the server in Next.js 13.
Implement a delete route handler using Prisma to remove a book by id. The handler uses Prisma to delete with a where id clause and confirms generated delete query executes.
Switch the search from a json array to Prisma, using prisma.book.findMany with a where clause where the title contains the query, and define prisma at the top for database access.
In this course, we take you on a fun, hands-on and pragmatic journey to learning Next.js 13 development. You'll start building your first Next.js app within minutes. Every section is recorded in a bite-sized manner and straight to the point as I don’t want to waste your time (and most certainly mine) on the content you don't need.
In this course, we will cover:
1. Introduction and Setup
2. File Structure, HomePage and Using Daisy UI
3. Routing System and Nested Routes
4. Layouts
5. Metadata API
6. Navigation Bar
7. React Server Components vs Client Components
8. Data Fetching
9. Rendering GitHub Users
10. Dynamic Routes and Params Prop
11 Repos Component
12. Loading Page
13. Caching and Revalidating
14. API Route Handlers
15. Serving Books Data
16. Fetching Books Data
17. Slight Adjustment
18. Getting Search Params
19. Adding a New Book
20. Refactor Server to Client Component
21. Search Component
22. AddBook Component
23. Calling the Add Book End Point
24. Refreshing Books After Adding
25. Deleting a Book
26. Setting up Prisma Database
27. Getting Books from Prisma
28. Adding a book into Prisma DB
29. Deleting from Prisma Database
30. Searching from Prisma Database
The goal of this course is to teach you Next.js full stack development in a manageable way without overwhelming you. We focus only on the essentials and cover the material in a hands-on practice manner for you to code along.
Working Through This Course
This course is purposely broken down into short sections where the development process of each section will center on different essential topics. The course a practical hands on approach to learning through practice. You learn best when you code along with the examples.