Build A Hacker News Clone

Learn to build & deploy a full-stack, production-ready application with React.js, Node.js, MongoDB, & friends.

Technologies Used In The Course

What Will You Build?

Together we'll build and deploy a full-stack, production-ready clone of Hacker News. The application will contain a website, REST API, & MongoDB database, and will include all the features of the famous Hacker News website.

Build With The MERN Stack

Create a full-stack application using a MongoDB database, Express.js REST API, React.js website, and Node.js web server. MERN is one of the most widely used stacks by today's developers.

User Authentication

Create new users, login, authentication, logout, reset a user's password in the scenario that it has been forgotten, display and update a user's account information, and allow users to change their password.

Handle User Submitted Data

Build the functionality for users to submit, edit, and delete news stories and comments. This includes upvotes, downvotes, favorites, and much more related to user-submitted data.

Search Functionality

Build a real-time full-text search of the items and comments submitted to the database using the Algolia instant search engine.

Moderator Functionality

Moderators will be given special privileges to kill items and comments along with shadow and outright user bans. These features will give a moderator good control over the content displayed on the site.

Deploy To Production

Deploy the application to a DigitalOcean server in the cloud. We'll configure your custom domain name and serve the application over HTTPS. Search engine indexing and Google Analytics will also be configured.

Who Is This For?

This course is for those who want to learn how to build and deploy full-stack, production-ready applications.

These Kinds Of People

  • Existing React.js Developers
    Apply your existing skills to build a full-stack application alongside Node.js & MongoDB.
  • Node.js Developers
    Combine your Node.js skills with React.js & MongoDB to build a full-stack application.
  • New Developers
    Learn as you go! React.js and Node.js are currently some of the best skills to have on a resume.
  • Students
    Build a full-stack application you can put in your portfolio and talk about in job interviews.

With These Skills

  • Basic Understanding Of HTML, CSS, & JavaScript
    You should be comfortable writing HTML, CSS, & JavaScript. Those are used extensively throughout the course.
  • Basic Knowledge Of React.js
    Some basic React.js skills are required before beginning this course. Once you have the basics down, you'll be able to pick up most advanced concepts as we go.
  • Basic Knowledge Of Node.js
    Prior experience with Node.js will also be helpful. Node.js will be used to build the REST API and interact with the MongoDB database.

Not sure if it's for you?

Give it a try! If it ends up not being for you, we offer a 100% money-back guarantee.

Get Full Acess To The Course

Once purchased, you'll have lifetime access to the course content.

The Course Is...

lines of code
30 hrs
to complete

Self-paced — work at your own pace.

Full source code is available for download.

Lifetime access to all content — includes any future updates.

Table Of Contents

1. Introduction

  • Background information on Hacker News.
  • A broad overview of what will be built in the course.

2. Getting Started

  • Setup your coding environment with a coding editor and terminal, along with installations of Node.js and NPM.
  • Go over each portion of the application and discuss what needs to be built.

3. Bootstrap The Website Application

  • Bootstrap a new Next.js application.
  • Create the header and footer layout for the website.
  • Create an alternate header layout for the website.
  • Create a component for applying <head> metadata to pages.
  • Create favicon image icons.
  • Create custom pages to handle 404, 500, and other errors.

4. Bootstrap The REST API Application

  • Bootstrap a new Node.js and Express REST API application.
  • Create and connect to a MongoDB database hosted using the Atlas cloud service.

5. User Functionality

  • Create new users in the database.
  • Login users using their unique username and password.
  • Authenticate users so they can stay signed in as they use the website.
  • Logout users.
  • Reset a user's password in the scenario it has been forgotten. This will involve sending a user an email that contains a reset token.
  • Display and update a user's information on the website (email address, biography, settings, etc.).
  • Allow users to change their password.

6. Item Functionality

  • Create a new item.
  • Display a single item's data.
  • Upvote an item.
  • Un-vote an item (remove an upvote).
  • Add an item to a user's favorites.
  • Remove an item from a user's favorites.
  • Add an item to a user's hidden item list (won't be visible on item list pages).
  • Remove an item from a user's hidden item list.
  • Edit an item's title and/or text content.
  • Delete an item from the database.
  • Create each item list page.
  • Create an algorithm for ranking items on certain item list pages.

7. Comment Functionality

  • Create a new comment on an item.
  • Display a single comment.
  • Edit a comment's text content.
  • Delete a comment.
  • Upvote a comment.
  • Downvote a comment.
  • Un-vote a comment (remove an upvote or downvote).
  • Add a comment to a user's favorites.
  • Remove a comment from a user's favorites.
  • Reply to another comment.
  • Create the comment sections for designated pages.
  • Create each comment list page.

8. Search Functionality

  • Create and configure an Algolia account.
  • Configure and connect to the Algolia API via the REST API application.
  • Add the necessary REST API code to get item and comment data added to Algolia.
  • Build the necessary pages and functionality to get the search results displayed on the website.

9. Moderator Functionality

  • Configure the REST API to incorporate users with moderator privileges.
  • Kill and un-kill items.
  • Kill and un-kill comments.
  • Shadow ban users.
  • Ban users.
  • Display moderation logs on the website.

10. Informational Pages

  • Formatting options.
  • FAQ.
  • News guidelines.
  • Show CN guidelines.

11. Deploy The Application

  • Create and configure a DigitalOcean server.
  • Configure a custom domain name.
  • Send and receive emails using your custom domain.
  • Deploy the website to production.
  • Deploy the REST API to production.

12. Post Deployment Tasks

13. Conclusion

Meet Nick Major

Nick Major is a full-stack developer from Wisconsin, United States. He is a course creator and independent software developer.

He is also the author of the free Build A Coding Blog From Scratch course.

  • How do I gain access to the course materials?

  • If I signup for a free account, what courses do I have access to?

  • Do I need any special tools or equipment for this course?

  • Do I need any prior knowledge or experience before working through this course?

  • Is there a time limit for finishing the course? Do I ever lose access to the course materials?

  • Do you offer location-based pricing?

  • Are there other ways to pay for the course besides using a Credit Card?

  • Do you have a return policy?

  • I have another question.