Skip to content
  • Unlock Pro
  • Log in with GitHub
Use casesBeginner React projects

Learn React with beginner-friendly projects

Start your React journey with projects designed for beginners. Build simple, interactive applications with professional designs, learn React fundamentals step-by-step, and get supportive feedback from the Frontend Mentor community.

Start building free

Join 1,101,079 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."

Kevin PowellWeb Developer & YouTuber

"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!"

Jessica ChanWeb Developer & YouTuber

Learn React fundamentals by building real projects

Frontend Mentor provides beginner-friendly React projects with realistic designs and clear learning paths. Start with simple components and gradually progress to hooks, state management, and API integration. Each project teaches core React concepts without overwhelming you with complexity. Get community feedback, compare solutions from other learners, and build a portfolio that shows your React growth from day one.

How to start your first React project

  1. 1

    Pick a project below that matches your current skill level.

  2. 2

    Build it from scratch—don’t just copy-paste code. Make it your own.

  3. 3

    Push to GitHub and share your work.

  4. 4

    Iterate: Add features, refactor your code, try different approaches.

  5. 5

    Want feedback? Submit your project for community review on Frontend Mentor.

Your first React projects

Start here if you're brand new to React. These projects focus on JSX, props, and basic component structure. You'll learn how to think in React by breaking UIs into components and passing data through props. No complex state management or hooks yet—just the fundamentals to build your confidence.

  • Free

    Social links profile

    • HTML
    • CSS
    1newbie

    In 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

    3-column preview card component

    • HTML
    • CSS
    1newbie

    This challenge is perfect if you're just getting started. The shift between the layouts will be a nice test if you're new to building responsive projects.

  • Free

    Results summary component

    • HTML
    • CSS
    1newbie

    This 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

    Expenses chart component

    • HTML
    • CSS
    • JS
    2junior

    In 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.

React projects with useState

Ready to make your components interactive? These projects introduce the useState hook for managing component state. Build accordions, toggles, and forms while learning when to use state versus props. You'll understand how React re-renders components and handles user interactions, essential skills for any React developer.

  • Free

    FAQ accordion

    • HTML
    • CSS
    • JS
    1newbie

    In 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
    1newbie

    This 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

    Newsletter sign-up form with success message

    • HTML
    • CSS
    • JS
    2junior

    This 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

    Pricing component with toggle

    • HTML
    • CSS
    • JS
    2junior

    This challenge will get you thinking about building an accessible custom toggle control and also test your layout skills.

  • Free

    Intro component with sign-up form

    • HTML
    • CSS
    • JS
    1newbie

    Practice building out a sign-up form complete with client-side validation using JavaScript.

  • Free

    Conference ticket generator

    • HTML
    • CSS
    • JS
    2junior

    In 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.

  • Free

    Browser extension manager UI

    • HTML
    • CSS
    • JS
    2junior

    This project will be a fun way to practice working with dynamic data, filtering data, color theming, building a responsive grid, and more!

  • Free

    Product list with cart

    • HTML
    • CSS
    • JS
    2junior

    Practice 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.

React projects with useEffect

Take the next step with useEffect for handling side effects. These projects teach you to fetch data from APIs, respond to prop changes, and manage component lifecycle. You'll build real applications that interact with external data sources, preparing you for intermediate React development.

  • Free

    Advice generator app

    • HTML
    • CSS
    • JS
    • API
    2junior

    The 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.

  • Premium

    GitHub user search app

    • HTML
    • CSS
    • JS
    • API
    2junior

    In 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

    Mortgage repayment calculator

    • HTML
    • CSS
    • JS
    2junior

    This mortgage calculator is an excellent project for practicing working with forms, client-side validation, and updating the DOM. Remember to focus on accessibility, too!

  • Free

    Tip calculator app

    • HTML
    • CSS
    • JS
    2junior

    This small app is perfect for anyone starting to get to grips with JavaScript. The calculator functionality will be a nice test!

  • Premium

    Character counter

    • HTML
    • CSS
    • JS
    2junior

    This 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
    3intermediate

    Build a responsive weather app with search functionality, unit conversion, and detailed forecasts using the Open-Meteo API.

Why Frontend Mentor for beginner 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

  • How do I start learning React as a complete beginner?

    Before working with React, ensure you're comfortable with JavaScript fundamentals, including variables, functions, array methods such as map and filter, and ES6 features like arrow functions and destructuring. Then start with a simple React tutorial to understand JSX and components. After that, immediately start building projects—the simplest ones possible. Build a static component that displays data using props. Then add useState for interactivity. Theory makes sense only after you've struggled with real code. Start with the challenges we listed above and progress slowly.

  • What are the easiest React projects for beginners?

    The easiest React projects display static content using components and props—think profile cards, product cards, or FAQ sections. The next level adds useState for simple interactivity, such as counters, toggles, accordions, or tabs. Avoid projects requiring routing, API calls, or complex state management initially. Perfect beginner projects teach one concept clearly. An interactive rating component teaches useState. An FAQ accordion teaches conditional rendering and state. A product card teaches props and component composition. Master these patterns before attempting more complex tasks.

  • How long does it take to learn React as a beginner?

    With consistent practice, expect to feel comfortable with React basics —components, props, useState, and useEffect —within 2-3 months. Building 8-10 beginner projects during this time cements your understanding. After 3-4 months, you'll tackle intermediate projects with routing and complex state. Don't rush—React clicks through repetition, not speed. Build the same type of project multiple times. Create three different counters, two tab components, and a few forms. Repetition with slight variations builds muscle memory. Quality practice beats hasty tutorials. One well-understood project beats five rushed ones.

  • Do I need to know JavaScript before learning React?

    Yes, absolutely. React is JavaScript with a library on top. You need a solid foundation in JavaScript basics, including variables, functions, conditionals, loops, array methods (especially map, filter, and reduce), objects, destructuring, the spread operator, arrow functions, and promises. Without these, React will be impossible to understand. You'll struggle with concepts that are actually JavaScript problems, not React problems. Spend 2-4 weeks building vanilla JavaScript projects before starting React. This foundation prevents confusion and frustration later. Many beginners blame React for gaps in their JavaScript knowledge.

  • Should I learn React or vanilla JavaScript first?

    Always vanilla JavaScript first. React abstracts away DOM manipulation, which means you won't understand what problems it solves if you skip JavaScript fundamentals. Build 5-7 vanilla JavaScript projects: todo lists, calculators, interactive components. Struggle with querySelector, addEventListener, and manual DOM updates. Feel the pain of managing state across functions. Then React's declarative approach and automatic re-rendering will make perfect sense. Developers who start with React often struggle to debug issues or understand why something doesn't work because they lack a solid foundation in JavaScript.

  • What React concepts should beginners focus on first?

    Start with JSX—understanding that it's JavaScript, not HTML, prevents confusion. Learn component thinking: breaking UIs into reusable pieces. Master props for passing data to components. Then useState for making components interactive. Practice these four concepts extensively before moving on to useEffect, routing, or context. Most beginners rush through fundamentals to reach advanced topics, creating shaky foundations. Build 5-6 projects using only JSX, components, props, and useState. This mastery makes everything else easier. UseEffect comes next, but only after state feels natural.

  • Can I build React projects without knowing TypeScript?

    Yes, absolutely. Learn React first with plain JavaScript. TypeScript adds type safety, but also complexity that beginners may not need while learning core React concepts. Build 10-15 React projects with JavaScript first. Once React patterns feel natural—such as components, hooks, state management, and props—then add TypeScript to one project. You'll appreciate type safety after experiencing JavaScript's flexibility. Many production React apps use plain JavaScript successfully. TypeScript is valuable but not required, especially when you're still learning the fundamentals of React—one challenge at a time.

Join 1,101,079 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 GitHub

Related pages

Beginner JavaScript projects

Stop just taking tutorials and start coding! Learn JavaScript faster by building real projects. Explore fun, beginner-friendly JavaScript challenges to practice and boost your skills.

React projects

Build portfolio-worthy React applications with professional designs. Practice hooks, state management, and component architecture while solving real coding challenges.

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner
  • Use cases

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License