JSFiddle - React, Tailwind, and code Playground

HTML

<div id="products-list">
	<div class="product">
		<div class="product-image"> 

			<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/1920px-Wikipedia-logo-v2.svg.png" alt="wiki"/> 

		</div>
		<div class="product-description">
			<div class="product-name">
				My Wiki product
			</div>
			<div class="product-price">
				EUR 10,00
			</div>
		</div>
	</div>

</div>

CSS

#products-list {

  display: grid;
  grid-gap: 5px;
  grid-template-columns: repeat(auto-fit, minmax(100px, 250px));
  justify-content: start;

}

#products-list .product {
    min-width:150px;
    max-width:250px;
    margin:10px 10px 20px 10px;
}

#products-list .product .product-image {
    position:relative;
    width:100%;
    padding-bottom:100%;
    background-color:#c43333;
}
#products-list .product .product-image img {
    position:absolute;
    top:0px;
    right:0px;
    bottom:0px;
    left:0px;
    width:100%;
    height:100%;
}

#products-list .product .product-name {
    width:100%;
    height:20px;
    line-height:20px;
    background-color:#b3afaf;
}

#products-list .product .product-price {
    width:100%;
    height:20px;
    line-height:20px;
    background-color:#b3afaf;
	font-weight:bold;
}

JavaScript

var stop = 10;
var ci = setInterval(function(){
	var p = $('.product:first').clone();
	$('#products-list').append(p);
	stop--;
	if (stop<=0) clearInterval(ci);
},2000);