
Learn how to set up the starter project and configure the game to maintain aspect ratio.
Add UI elements and interaction buttons to the header.
Continue building the header with options like restart, undo, and add tube.
Build the layout and wrapper component of the game.
Understand how to create the layout and start building the game wrapper.
Create a visual component for the ball and make it dynamic.
Start designing the Tube component structure.
Finalize the Tube component and add interactivity
Initialize and manage the main game state.
Create the initial game state using React state hooks.
Define the initial state of the balls and their logic.
Manage tubes and their relationship to balls.
Initialize tube states and structure them to hold ball stacks.
Create logic to distribute balls among tubes.
Understand how tube distribution works based on current game data.
Update tube distribution with dynamic changes.
Handle distribution updates when a new tube is added or removed.
Track screen positions for tubes.
Get tube positions on the screen to animate ball movements properly.
Define ball positions relative to tubes.
Assign each ball its position relative to the tube.
Render the ball components inside the tubes with correct order and placement.
Detect user input for selecting tubes.
Begin implementing selection logic for tubes.
Validate and select the origin tube for ball movement.
Confirm destination tube and start move sequence.
Build the logic to move a ball between tubes
Move multiple matching balls in a single move.
Start animating the ball movement from tube to tube.
Continue refining the animation sequence between positions.
Finish ball animations and handle sequential movements.
Create the logic to detect when a tube is completed.
Show UI when level is successfully completed.
Implement the incognito feature for hidden balls.
Introduce incognito balls that hide their color unless on top.
Add undo UI and logic initialization.
Add the undo button and basic logic for storing moves.
Track moves and prepare for undoing.
Track moves using a stack and implement undo interactions.
Complete the undo logic.
Allow users to add an extra tube to help complete the level.
Add routing between game screens
Welcome to Build Ball Sort Puzzle with ReactJS from Scratch! In this project-based course, you will learn how to create a fully functional and interactive puzzle game using modern React techniques.
Whether you're a beginner looking to strengthen your frontend development skills or an experienced developer seeking a fun and practical project, this course will guide you step-by-step—from setting up the project to deploying it as a Progressive Web App (PWA).
You will:
Learn how to build dynamic components with React
Manage complex game logic and state using React hooks
Animate UI interactions and ball movements smoothly
Create reusable components like tubes, balls, and headers
Implement undo, level progression, and special game rules
Store and retrieve game data using local storage
Set up routing with react-router-dom
Convert your project into a PWA using Workbox
Deploy your game using Vercel
This course is designed to be hands-on and modular, with short, focused videos that help you understand each part of the development process clearly. You'll work directly in code, gradually building up all the functionality the game needs.
You'll also gain experience with animations, custom hooks, local storage strategies, and deployment workflows used in real-world applications. Throughout the course, you'll be encouraged to experiment, customize, and apply what you learn to your own projects.
Get ready to level up your skills while building something fun and shareable.