How to Create a Basic Notes App using ReactJS ?
Last Updated :
28 Apr, 2025
Creating a basic notes app using React JS is a better way to learn how to manage state, handle user input, and render components dynamically. In this article, we are going to learn how to create a basic notes app using React JS. A notes app is a digital application that allows users to create, manage, and store textual notes for personal organization and reference.
Preview of final output: Let us have a look at how the final output will look like.

Prerequisites:
Approach:
- First start creating a basic notes app layout with dummy text, divs, buttons, input, and heading tags along with well-defined classes and id.
- Use classes and id to style the components using CSS and create a dummy notes app structure as shown in the introduction.
- In react, we use hooks like useState to store the data items and also handle the inputs.
- Create a dummy data array of objects having key, title, and description fields.
- Define a handle function to get the input data and store it using useState hook. Also, define a remove function that accepts the key of the item which is to be removed.
- Use the onClick event listener to call the adding or removing functions and update the notes array.
Steps to create Basic Notes App in React:
Step 1: Create a new React app
npx create-react-app notes-app
Step 2: Change your directory and enter your main folder notes-app as :
cd notes-app
Project structure:

The updated dependencies in package.json file will look like
"dependencies": {
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
}
Example: In this example, we are using the above-explained approach.
JavaScript
// App.js
import "./App.css";
import { useState } from "react";
function App() {
const [title, setTitle] = useState("");
const [des, setDes] = useState("");
const [notes, setNotes] = useState(data);
const [count, setCount] = useState(4);
function remove(id) {
setNotes(notes.filter((e) => e.key !== id));
}
function handle() {
if (!title || !des) {
window.alert("Incomplete input");
return;
}
setNotes([...notes, { key: count, title: title, des: des }]);
setCount(count + 1);
setTitle("");
setDes("");
console.log(notes);
}
return (
<div className="App">
<div className="card">
<div className="head">
<h1>React notes</h1>
</div>
<div className="notes">
{notes.map((e) => (
<div className="notes-item">
<div style={{ width: "90%" }}>
<h4>Title: {e.title}</h4>
<p>Note: {e.des}</p>
</div>
<button
type="input"
style={{
fontSize: "20px",
width: "8%",
height: "35px",
padding: "0 2% 0 2%",
color: "black",
}}
onClick={() => remove(e.key)}
>
X
</button>
</div>
))}
<div className="add">
<h3>Add Notes</h3>
<input
type="text"
id="title"
placeHolder="Add title"
value={title}
onChange={(e) => setTitle(e.target.value)}
></input>
<input
type="text"
id="description"
placeholder="Notes"
value={des}
onChange={(e) => {
setDes(e.target.value);
}}
></input>
<button type="submit" onClick={handle}>
Submit
</button>
</div>
</div>
</div>
</div>
);
}
// Dummy data
const data = [
{
key: 0,
title: "Html",
des: "HyperText MarkUp Language",
},
{ key: 1, title: "CSS", des: "StyleSheet" },
{
key: 2,
title: "JavaScript",
des: "Scripting language for web",
},
{
key: 3,
title: "React",
des: "JavaScript framework",
},
];
export default App;
CSS
/* App.css*/
.App {
text-align: center;
}
/* Styling universal selector */
* {
/* margin-top: 50px; */
margin: 0;
margin-top: 10px;
padding: 0;
box-sizing: border-box;
}
/* Style body element */
body {
min-height: 50vh;
display: flex;
align-items: center;
text-align: center;
justify-content: center;
background: hsl(0, 0%, 100%);
font-family: "Poppins", sans-serif;
}
/* Styling card container */
.card {
/* min-height: 50vh; */
height: fit-content;
min-width: 33rem;
max-width: 40rem;
background: rgba(147, 208, 119, 1);
margin: 0 1rem;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
width: 100%;
}
.head {
position: relative;
max-height: fit-content;
min-width: 33rem;
width: 100%;
background: rgb(109, 157, 87);
padding: 1rem;
}
/* Input box and button */
.add {
padding: 5%;
text-align: left;
padding-left: 6%;
/* margin: 10%; */
}
input {
margin-right: 1%;
}
#title {
width: 20%;
font-size: larger;
}
#description {
font-size: large;
width: 60%;
}
button {
border-radius: 5px;
padding: 5px;
font-size: large;
color: #dbeefa;
background-color: rgb(109, 157, 87);
}
/* style accordion */
.notes {
margin: 5%;
text-align: left;
}
/* style for accordion items */
.notes-item {
display: flex;
z-index: 100;
padding: 2%;
/* border-bottom: 1px solid #4e7b48; */
font-size: larger;
margin: 2%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
/* style for accordion items */
.accordion-item {
border-bottom: 1px solid #ddd;
font-size: larger;
}
Run the following command and the output will be visible at http://localhost:3000/
npm start
Output:

Similar Reads
Create a Blog App using React-Native This article will help you make a simple blog app using React Native. The app lets users add, edit, and delete blog posts, making it easy to manage content. You will learn how to use different React Native features to create a user-friendly design that checks if the input is correct, making sure all
15+ min read
Create a Text Editor App using React-Native In this article, we are going to implement a text editor app using React Native. It will contain multiple text formatting functionalities like bold, italic, underline, etc. We will implement Editor with a library called "react-native-pell-rich-editor."Preview of final output: Let us have a look at h
3 min read
Create ToDo App using ReactJS In this article, we will create a to-do app to understand the basics of ReactJS. We will be working with class based components in this application and use the React-Bootstrap module to style the components. This to-do list can add new tasks we can also delete the tasks by clicking on them. The logi
3 min read
Create a Text Narrator App using React-Native In this project, we'll develop a Text Narrator application using React Native. The Text Narrator app is a valuable tool for improving accessibility. It allows users to input text, and the app will convert that text into audible speech. This can be incredibly helpful for individuals with visual impai
2 min read
How To Create a Website in ReactJS? ReactJS is one of the most popular JavaScript libraries for building user interfaces. It allows you to create dynamic, reusable UI components and efficiently manage state and events. In this article, we'll walk through the steps to create a basic website using ReactJS.PrerequisitesNPM & Node.jsR
5 min read
Create a Voice Notes App using React-Native We are going to build a Voice Notes app that will allow us to save our voice as a recording in our application. It is similar to a notes app but we will have our voice as notes. We can play the voice recordings, record them, and delete them. It leverages React-Native's cross-platform capabilities to
4 min read
How To Build a Basic CRUD App With Node and React ? In this article, we will explore how to build a simple CRUD (Create, Read, Update, Delete) application using Node.js for the backend and React for the frontend. Additionally, we will integrate MongoDB as the database to store our data.Preview of final output:App functionalityCreate a new student (CR
11 min read
Create ClassRoom App using React-Native ClassRoom App using React Native is a simple application designed to facilitate online learning and classroom management. These apps are commonly used in educational institutions, schools, colleges, and universities to enhance the teaching and learning experience.Preview of final output: Let us have
7 min read
How to create a Dictionary App in ReactJS ? In this article, we will be building a very simple Dictionary app with the help of an API. This is a perfect project for beginners as it will teach you how to fetch information from an API and display it and some basics of how React actually works. Also, we will learn about how to use React icons. L
4 min read
Creating a Travel Journal App using React The Travel Journal App project is a web application developed using React. This travel journal app will allow users to record their travel experiences and manage their entries efficiently. By leveraging the power of React for the frontend and Bootstrap for styling, we'll create an interactive and vi
5 min read