Directory structure:
└── netlify-hydrogen-netlify-starter/
├── README.md
├── hydrogen.config.js
├── index.html
├── jsconfig.json
├── netlify.toml
├── package.json
├── postcss.config.js
├── tailwind.config.js
├── vite.config.js
├── .eslintrc.js
├── src/
│ ├── App.server.jsx
│ ├── components/
│ │ ├── CountrySelector.client.jsx
│ │ ├── CustomFont.client.jsx
│ │ ├── DefaultSeo.server.jsx
│ │ ├── EventsListener.client.jsx
│ │ ├── HeaderFallback.jsx
│ │ ├── index.js
│ │ ├── index.server.js
│ │ ├── account/
│ │ │ ├── AccountActivateForm.client.jsx
│ │ │ ├── AccountAddressBook.client.jsx
│ │ │ ├── AccountAddressEdit.client.jsx
│ │ │ ├── AccountCreateForm.client.jsx
│ │ │ ├── AccountDeleteAddress.client.jsx
│ │ │ ├── AccountDetails.client.jsx
│ │ │ ├── AccountDetailsEdit.client.jsx
│ │ │ ├── AccountLoginForm.client.jsx
│ │ │ ├── AccountOrderHistory.client.jsx
│ │ │ ├── AccountPasswordResetForm.client.jsx
│ │ │ ├── AccountRecoverForm.client.jsx
│ │ │ └── index.js
│ │ ├── cards/
│ │ │ ├── ArticleCard.jsx
│ │ │ ├── CollectionCard.server.jsx
│ │ │ ├── index.js
│ │ │ ├── index.server.js
│ │ │ ├── OrderCard.client.jsx
│ │ │ └── ProductCard.client.jsx
│ │ ├── cart/
│ │ │ ├── CartDetails.client.jsx
│ │ │ ├── CartEmpty.client.jsx
│ │ │ ├── CartLineItem.client.jsx
│ │ │ └── index.js
│ │ ├── elements/
│ │ │ ├── Button.jsx
│ │ │ ├── Grid.jsx
│ │ │ ├── Heading.jsx
│ │ │ ├── Icon.jsx
│ │ │ ├── index.js
│ │ │ ├── Input.jsx
│ │ │ ├── LogoutButton.client.jsx
│ │ │ ├── Section.jsx
│ │ │ ├── Skeleton.jsx
│ │ │ └── Text.jsx
│ │ ├── global/
│ │ │ ├── CartDrawer.client.jsx
│ │ │ ├── Drawer.client.jsx
│ │ │ ├── Footer.server.jsx
│ │ │ ├── FooterMenu.client.jsx
│ │ │ ├── Header.client.jsx
│ │ │ ├── index.js
│ │ │ ├── index.server.js
│ │ │ ├── Layout.server.jsx
│ │ │ ├── MenuDrawer.client.jsx
│ │ │ ├── Modal.client.jsx
│ │ │ ├── NotFound.server.jsx
│ │ │ └── PageHeader.jsx
│ │ ├── product/
│ │ │ ├── index.js
│ │ │ ├── ProductDetail.client.jsx
│ │ │ ├── ProductForm.client.jsx
│ │ │ ├── ProductGallery.client.jsx
│ │ │ ├── ProductGrid.client.jsx
│ │ │ └── ProductOptions.client.jsx
│ │ ├── search/
│ │ │ ├── index.server.js
│ │ │ ├── NoResultRecommendations.server.jsx
│ │ │ └── SearchPage.server.jsx
│ │ └── sections/
│ │ ├── FeaturedCollections.jsx
│ │ ├── Hero.jsx
│ │ ├── index.js
│ │ ├── index.server.js
│ │ ├── ProductCards.jsx
│ │ └── ProductSwimlane.server.jsx
│ ├── lib/
│ │ ├── const.js
│ │ ├── fragments.js
│ │ ├── index.js
│ │ ├── placeholders.js
│ │ ├── styleUtils.jsx
│ │ └── utils.js
│ ├── routes/
│ │ ├── admin.server.jsx
│ │ ├── cart.server.jsx
│ │ ├── index.server.jsx
│ │ ├── robots.txt.server.js
│ │ ├── search.server.jsx
│ │ ├── sitemap.xml.server.js
│ │ ├── account/
│ │ │ ├── index.server.jsx
│ │ │ ├── login.server.jsx
│ │ │ ├── logout.server.js
│ │ │ ├── recover.server.jsx
│ │ │ ├── register.server.jsx
│ │ │ ├── activate/
│ │ │ │ ├── index.server.js
│ │ │ │ └── [id]/
│ │ │ │ └── [activationToken].server.jsx
│ │ │ ├── address/
│ │ │ │ ├── [addressId].server.js
│ │ │ │ └── index.server.js
│ │ │ ├── orders/
│ │ │ │ └── [id].server.jsx
│ │ │ └── reset/
│ │ │ ├── index.server.js
│ │ │ └── [id]/
│ │ │ └── [resetToken].server.jsx
│ │ ├── api/
│ │ │ ├── bestSellers.server.js
│ │ │ └── countries.server.js
│ │ ├── collections/
│ │ │ ├── [handle].server.jsx
│ │ │ ├── all.server.jsx
│ │ │ └── index.server.jsx
│ │ ├── journal/
│ │ │ ├── [handle].server.jsx
│ │ │ └── index.server.jsx
│ │ ├── pages/
│ │ │ └── [handle].server.jsx
│ │ ├── policies/
│ │ │ ├── [handle].server.jsx
│ │ │ └── index.server.jsx
│ │ └── products/
│ │ ├── [handle].server.jsx
│ │ └── index.server.jsx
│ └── styles/
│ ├── custom-font.css
│ └── index.css
├── tests/
│ ├── utils.js
│ └── e2e/
│ ├── collection.test.js
│ ├── index.test.js
│ └── product.test.js
└── .devcontainer/
└── devcontainer.json