100JSProjects
LearnProjectsExplore all projects
100JS_WORKSPACE/Build · Learn · Repeat
100JSProjects

Practical HTML, CSS, and JavaScript projects designed to help you turn concepts into real skills—one build at a time.

01Explore

./All projects./Learning guides./About./Contact./Privacy

02Resources

./GitHub repository./Support the project

© 2026 100 JS Projects. Built for developers.

TermsCookiesContact
JS//Projects/Recipe Book App

Recipe Book AppHTML, CSS & JavaScript Project

HTML5CSS3JavaScript
View Source CodeLive Demo
Recipe Book App project previewTry Live Demo
What you'll build

Recipe Book App

In this project, we're developing a recipe book application that features a variety of recipes obtained through a free recipe API. We need an API key to access this API. Each time the page is refreshed, a new set of recipes with distinct ingredients will be displayed. Additionally, a link is provided to access the recipe website.

HTML
— Structure
CSS
— Design
JavaScript
— Logic
Complete project files

Build It from the Source Code

Create these three files, copy the code into each one, then open index.html with Live Server.

Project structure
recipe-book-app/
├── index.html
├── style.css
└── index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <header>
      <h1>Recipe Book App</h1>
    </header>

    <div class="container">
      <ul id="recipe-list" class="recipe-list">
        <!-- <li class="recipe-item">
          <img
            src="https://spoonacular.com/recipeImages/12345-312x231.jpg"
            alt="Recipe 1"
          />
          <h2>Recipe 1</h2>
          <p>
            <strong>Ingredients:</strong> Ingredient 1, Ingredient 2, Ingredient
            3
          </p>
          <a href="#">View Recipe</a>
        </li>
        <li class="recipe-item">
          <img
            src="https://spoonacular.com/recipeImages/12545-312x231.jpg"
            alt="Recipe 2"
          />
          <h2>Recipe 2</h2>
          <p>
            <strong>Ingredients:</strong> Ingredient 1, Ingredient 2, Ingredient
            3
          </p>
          <a href="#">View Recipe</a>
        </li>
        <li class="recipe-item">
          <img
            src="https://spoonacular.com/recipeImages/12445-312x231.jpg"
            alt="Recipe 3"
          />
          <h2>Recipe 3</h2>
          <p>
            <strong>Ingredients:</strong> Ingredient 1, Ingredient 2, Ingredient
            3
          </p>
          <a href="#">View Recipe</a>
        </li> -->
      </ul>
    </div>
    <script src="index.js"></script>
  </body>
</html>

JS// Related Projects

Keep Building with Similar Projects

Continue your learning journey with these handpicked projects that share similar concepts and technologies

Testimonial Slider project preview
HTMLCSSJavaScript

Testimonial Slider

In this project, you will learn how to build a testimonial slider using HTML, CSS and JavaScript. We use a timer to change the sliders automatically and also we have added a bountiful animation showing the slides.

View project
Weight Converter project preview
HTMLCSSJavaScript

Weight Converter

Let's create a weight converter project that converts pounds to kilograms. The webpage features an input field where users can enter a weight in pounds, and the webpage automatically displays the equivalent weight in kilograms. After 10 seconds, the result is removed, and the input field is emptied using the 'set time out' method. We've also incorporated an error handling feature to handle negative input numbers. If the user enters a negative number, the webpage displays an error message, "Please enter a valid number." We'll learn how to handle error situations and remove the error message after two seconds using an event listener for the input field. The event listener will call a function that performs the desired actions.

View project
Simple Stopwatch project preview
HTMLCSSJavaScript

Simple Stopwatch

Welcome to the Stopwatch Project! We will create a timer displayed at the top, along with three buttons - start, stop, and reset. Clicking the START button will begin the timer. The STOP button will pause the timer using a JavaScript method called SetInterval, which can be cleared using clearInterval. The RESET button will reset the timer to zero. If you click STOP and then START again, the timer will continue from the previously elapsed time. We'll start by installing CSS for the buttons' design and hover effects, then use JavaScript to get the browser time, manipulate the content, replace it with the calculated time, and provide the start, stop, and reset functionality.

View project
{ }View All Projects