Master React with real-world projects
Transform your React knowledge into job-ready skills through hands-on projects. Build modern React applications with professional designs, practice hooks and state management, and get feedback from the Frontend Mentor community.
Start building freeJoin 1,100,898 developers building projects, reviewing code, and helping each other improve.
Testimonials
"I highly recommend Frontend Mentor. Skip the search for project ideas and dive into ready-made challenges that help you level up as a developer."
"Frontend Mentor is a win-win. You can sharpen your skills building websites and add finished projects to your portfolio to help land a job!"

Learn React by building, not just watching
Frontend Mentor provides realistic project briefs that allow you to practice React on real-world UI challenges. Build anything from simple components using hooks to full-stack applications with routing and state management. Compare your solutions, get community feedback, and ship portfolio-ready React projects that demonstrate your skills to potential employers.
How to start building React projects
Pick a project below that matches your current skill level.
Build it from scratch—don’t just copy-paste code. Make it your own.
Push to GitHub and share your work.
Iterate: Add features, refactor your code, try different approaches.
Want feedback? Submit your project for community review on Frontend Mentor.
Beginner React projects
Start with simple React components to learn the fundamentals of JSX, props, and the useState hook. These projects help you understand component architecture and basic React patterns while building interactive UIs. Perfect for developers transitioning from vanilla JavaScript or starting their React journey.
- Free
Results summary component
- HTML
- CSS
1newbieThis challenge has something for everyone. It’s a HTML and CSS only project, but we’ve also provided a JSON file of the test results for anyone wanting to practice JS.
- Free
Social links profile
- HTML
- CSS
1newbieIn this small project, you'll build out your social link-sharing profile. You can even personalize it and use it to share all your social profiles!
- Free
FAQ accordion
- HTML
- CSS
- JS
1newbieIn this challenge, you'll build an FAQ accordion. This is an extremely common front-end pattern, so it's an excellent opportunity to get some practice in!
- Free
Interactive rating component
- HTML
- CSS
- JS
1newbieThis is a nice, small project to practice handling user interactions and updating the DOM. Perfect for anyone who has learned the basics of JavaScript!
- Free
Expenses chart component
- HTML
- CSS
- JS
2juniorIn this challenge, you'll create a bar chart component from scratch. We provide a local JSON file, so you can add the chart data dynamically if you choose.
Intermediate React projects
Level up with useEffect, custom hooks, API integration, and form handling in React. These projects demonstrate your ability to manage side effects, work with external data, and build fully functional React applications with proper state management and an understanding of the component lifecycle.
- Free
Advice generator app
- HTML
- CSS
- JS
- API
2juniorThe perfect project if you're learning how to interact with 3rd-party APIs. This challenge uses the Advice Slip API to generate random quotes of advice.
- Free
Newsletter sign-up form with success message
- HTML
- CSS
- JS
2juniorThis will test your skills with basic form structure, validation, and submission. The success state will also be an excellent opportunity to work with DOM manipulation.
- Free
Time tracking dashboard
- HTML
- CSS
- JS
2juniorA perfect opportunity to practice your CSS Grid skills. For anyone wanting to take it up a notch, we provide a JSON data file to practice working with data.
- Free
Tip calculator app
- HTML
- CSS
- JS
2juniorThis small app is perfect for anyone starting to get to grips with JavaScript. The calculator functionality will be a nice test!
- Free
Mortgage repayment calculator
- HTML
- CSS
- JS
2juniorThis mortgage calculator is an excellent project for practicing working with forms, client-side validation, and updating the DOM. Remember to focus on accessibility, too!
- Premium
GitHub user search app
- HTML
- CSS
- JS
- API
2juniorIn this project, you'll use the GitHub users API to pull profile data and display it. It's a great challenge if you're looking to practice working with a 3rd-party API.
- Free
Product list with cart
- HTML
- CSS
- JS
2juniorPractice updating the UI in multiple places based on user actions. The starter download also includes a JSON file to help you practice populating the DOM dynamically.
- Free
Contact form
- HTML
- CSS
- JS
2juniorBuilding accessible forms is a crucial task for front-end developers. This challenge will help you practice building a form with several input types and validation.
- Free
Conference ticket generator
- HTML
- CSS
- JS
2juniorIn this challenge, you'll create a form that generates a ticket. There's a lot of scope for customizing the generated ticket and putting your own stamp on the project.
- Premium
Character counter
- HTML
- CSS
- JS
2juniorThis project will test a range of your skills, especially your JavaScript, with the counters and letter density graph. The theme switcher is another little challenge.
- Free
Weather app
- HTML
- CSS
- JS
- API
3intermediateBuild a responsive weather app with search functionality, unit conversion, and detailed forecasts using the Open-Meteo API.
- Premium
Password generator app
- HTML
- CSS
- JS
3intermediateThis app will be an excellent test of your HTML, CSS, and JS skills. You'll build custom form controls and use JavaScript to generate random passwords.
- Free
Interactive comments section
- HTML
- CSS
- JS
3intermediateThis is project will put your JavaScript skills to the test. We provide a JSON file to pull the data, but it's also a perfect project to build as a full-stack CRUD app!
- Free
Calculator app
- HTML
- CSS
- JS
3intermediateThis calculator app will be a great test of your CSS and JS skills especially. If you're wanting to practice using Grid, this challenge will be perfect for you!
- Free
Todo app
- HTML
- CSS
- JS
3intermediateThe classic todo app with a few twists! This app includes a dark/light theme toggle and drag & drop reordering for anyone wanting an extra test.
Advanced React projects
Challenge yourself with complex state management, React Router, context API, and performance optimization. These projects showcase advanced React patterns, including compound components, render props, higher-order components, and building scalable application architecture that impresses employers.
- Free
REST Countries API with color theme switcher
- HTML
- CSS
- JS
- API
4advancedIf you're wanting to test your JavaScript skills this is the challenge for you. Use whichever JS framework you prefer and pull data from the REST Countries API.
- Premium
Personal blog
- HTML
- CSS
- JS
3intermediateThis multi-page personal blog project has a JSON file to practice working with dynamic data. You can even use a headless CMS to take the difficulty up a notch!
- Premium
Frontend Quiz app
- HTML
- CSS
- JS
3intermediateThis app will test your skills (as well as your knowledge!) as you build out a fully functional quiz. We provide a local JSON file to help you practice working with JSON!
- Premium
Devjobs web app
- HTML
- CSS
- JS
4advancedBuild a jobs board that pulls data from a local JSON file. This is a great opportunity to practice JS and get to grips with a framework/library of your choice!
- Free
Multi-step form
- HTML
- CSS
- JS
4advancedAn excellent test for your form-building and JS skills, this project will pose many challenges along the way to completion.
- Premium
Bookmark manager app
- HTML
- CSS
- JS
4advancedBuild a fully-functional bookmark manager with add, edit, archive, search, and filter features. Perfect for practicing forms and state management.
- Premium
Mood tracking app
- HTML
- CSS
- JS
4advancedBuilding this app will be a fun way to test a range of your skills. From working with JSON data to logging and charting mood entries, there's a lot to get stuck into!
- Premium
Pomodoro app
- HTML
- CSS
- JS
4advancedThis Pomodoro app will provide some tricky challenges, including building a circular progress bar. You'll also build a range of customizations, like colors and fonts.
- Premium
Entertainment web app
- HTML
- CSS
- JS
4advancedThis multi-page entertainment web app will have you working with JSON data, routing, state management, and search functionality.
- Free
Rock, Paper, Scissors game
- HTML
- CSS
- JS
4advancedThis challenge will test your HTML, CSS and JavaScript skills. There's even a Rock, Paper, Scissors, Lizard, Spock version if you really want to challenge yourself.
- Premium
Hangman game
- HTML
- CSS
- JS
4advancedThis project is a great all-around test. You'll need good HTML to ensure accessible navigation. There are many tricky CSS details, and the game logic will test your JS.
- Premium
Connect Four game
- HTML
- CSS
- JS
4advancedYour JS knowledge will be challenged in this fun project, where you'll build a two-player game. You'll write the logic for the game and how to test for win conditions.
- Premium
Memory game
- HTML
- CSS
- JS
4advancedThis project will be an excellent test for your HTML, CSS, and JS skills! You'll be building a fun memory game where players try to match pairs.
- Premium
Note-taking web app
- HTML
- CSS
- JS
4advancedThis project has many fun and challenging features to add, including color and font themes. It can also be built as a full-stack web app!
- Premium
Link-sharing app
- HTML
- CSS
- JS
5guruIn this project, you'll build a fully-functional link-sharing app for developers! You'll practice working with image uploads, repeater fields, drag-and-drop, and more!
- Premium
Product feedback app
- HTML
- CSS
- JS
5guruThis will be a perfect portfolio piece! You'll be working with JSON, managing state, and building like a real-world app. You can even create it as a full-stack project!
- Premium
Audiophile e-commerce website
- HTML
- CSS
- JS
5guruThis huge e-commerce challenge will provide an incredible test for your front-end skills. Once you're done, you'll have an amazing project to add to your portfolio!
- Premium
Invoice app
- HTML
- CSS
- JS
5guruThis invoicing app project will test you on many levels. You'll be working with JSON data, managing state, plus a lot more. You can even build it out as a full-stack app!
- Premium
Personal finance app
- HTML
- CSS
- JS
5guruThis app contains 5 pages (Overview, Transactions, Budgets, Pots, and Recurring Bills) and includes a lot of tricky elements. You can also build it as a full-stack app!
- Premium
Kanban task management web app
- HTML
- CSS
- JS
5guruIn this project, you'll build a fully-functional task management app with a light/dark mode toggle. We provide a JSON file, so you can practice working with JSON data.
Why Frontend Mentor for React projects?
We're not just another tutorial site. Our approach is proven to help developers build real skills that translate directly to job requirements.
Professional designs included
Skip the design phase and focus on coding. Every project comes with Figma files and style guides from professional designers.
Code reviews & feedback
Get constructive feedback from our community of 1,000,000+ developers. Learn best practices and improve your code quality.
Portfolio-ready projects
Every completed project can be added to your portfolio with live demos and GitHub repos that impress recruiters.
Frequently Asked Questions
- What React projects should beginners start with?
Begin with single-component projects that focus on props and useState. Build interactive UI elements like accordions, tabs, or rating components that teach fundamental React concepts without overwhelming complexity. Avoid projects requiring routing, global state management, or advanced hooks initially. Each project should introduce 1-2 new React concepts while reinforcing JSX and component thinking. Progress to useEffect and API calls only after mastering basic state and props.
- Should I learn vanilla JavaScript before React?
Yes, absolutely. React is a JavaScript library, not a separate language. You need solid JavaScript fundamentals—ES6+ features, array methods, destructuring, async/await, and promises—before React makes sense. Without this foundation, you'll struggle with concepts like closures in hooks or why props are immutable. Build 5-7 vanilla JavaScript projects first. This foundation ensures you understand what React abstracts away and helps you debug issues that stem from JavaScript, not React itself.
- How many React projects do I need for my portfolio?
Quality over quantity: 3-5 well-built React projects outperform 10 basic ones. Hiring managers look for diversity in your portfolio—show different React features and patterns. Include one project demonstrating component composition and hooks, another showcasing routing and API integration, and a complex one with advanced state management. Each should have clean code, proper error handling, loading states, and responsive design. Deploy all projects and include thoughtful READMEs that explain your architectural decisions and the challenges you've solved.
- What makes a React project portfolio-worthy?
Portfolio-worthy React projects demonstrate production-ready thinking, not just the completion of tutorials. They feature proper component architecture with single responsibility, custom hooks for reusable logic, and appropriate state management choices. Error boundaries handle failures gracefully. Loading and empty states provide an excellent user experience. Code is organized logically with a clear file structure. PropTypes or TypeScript add type safety. Performance optimizations, such as memoization or lazy loading, demonstrate an advanced understanding. Deploy with proper CI/CD. Most importantly, projects should solve real problems with professional UI design—this is where Frontend Mentor projects excel.
- Should I use React hooks or class components?
Use hooks exclusively. Class components are legacy code. The React team recommends hooks for all new projects, and employers expect modern React knowledge. Hooks simplify code, reduce boilerplate, and make logic reuse easier through custom hooks. Every React tutorial, library, and best practice documentation focuses on functional components with hooks. Learning class components first can create bad habits and waste time on outdated patterns. Start with useState and useEffect, then progress to useContext, useReducer, and custom hooks.
- Do I need to learn Redux for React projects?
Not initially. Modern React's built-in tools—useState, useReducer, and Context API—handle state management for most applications. Learn these thoroughly first. Redux adds complexity that beginners don't need and can obscure React fundamentals. Build 5-10 React projects using only built-in hooks. Once you reach limitations with prop drilling or complex state management, consider exploring Redux Toolkit or Zustand. Many production apps never need Redux. Employers value developers who choose appropriate tools rather than defaulting to the heaviest solution.
Join 1,100,898 people building portfolio-worthy projects
Our highly supportive, positive community is here to help you improve your skills. We all try to help each other out wherever possible. We’d love to welcome you to our community!
Log in with GitHubRelated pages
JavaScript projects
Learn JavaScript by building real projects. From beginner-friendly mini projects and API work all the way up to fully-functional multi-page web apps.
API integration projects
Connect to real APIs and build portfolio-ready apps. Practice fetch, JSON handling, and error states with beginner-to-advanced challenges.







































