Store home
Hero with featured product, guarantees, categories, best sellers, editorial banner, new arrivals and newsletter.
app/page.tsx1 GitHub star = 1 new component.
Star the repoA complete, accessible online store: home, catalogue, product page, cart and checkout.
Nova Store is a production-ready e-commerce template for Astro. Five pages share one cart that persists in the browser, the catalogue filters instantly without a backend, and the checkout validates, totals shipping, tax and promo codes and confirms the order. Every block is a library component, so you can use the whole store or just the pieces you need.
Every page is a real, interactive preview — the cart is shared between them.
Hero with featured product, guarantees, categories, best sellers, editorial banner, new arrivals and newsletter.
app/page.tsxCatalogue with breadcrumb, category chips, sticky filters, live result count and sorting.
app/shop/page.tsxGallery, buy box with colour/size pickers and quantity, reviews summary and related products.
app/product/[slug]/page.tsxFocus-mode checkout with steps, contact, delivery, shipping, payment and live order summary.
app/checkout/page.tsxnpm install react-component-kit-uiapp/page.tsx
import { StoreHomePage } from 'react-component-kit-ui/templates/ecommerce';
export default function Page() {
return <StoreHomePage />;
}app/shop/page.tsx
import { StoreCategoryPage } from 'react-component-kit-ui/templates/ecommerce';
export default function Page() {
return (
<>
{/* Category links use /shop/?category=audio */}
<StoreCategoryPage />
</>
);
}app/product/[slug]/page.tsx
import { StoreProductPage, demoStore } from 'react-component-kit-ui/templates/ecommerce';
export const generateStaticParams = () => demoStore.products.map((p) => ({ slug: p.slug }));
export default async function Page({ params }: { params: Promise<{ slug: string }> }) {
const { slug } = await params;
return <StoreProductPage slug={slug} />;
}app/checkout/page.tsx
import { StoreCheckoutPage } from 'react-component-kit-ui/templates/ecommerce';
export default function Page() {
return <StoreCheckoutPage />;
}Spread the demo store and replace what you need. Products accept a real image or one of 16 built-in illustrations.
import { StoreHomePage, demoStore, type StoreConfig } from 'react-component-kit-ui/templates/ecommerce';
const store: StoreConfig = {
...demoStore,
name: 'My Shop',
currency: 'EUR',
locale: 'es-ES',
cartKey: 'my-shop-cart',
products: [
{
slug: 'linen-shirt',
name: 'Linen Shirt',
price: 59,
category: 'apparel',
image: '/products/linen-shirt.webp', // or icon: 'shirt'
sizes: ['S', 'M', 'L'],
rating: 4.7,
reviews: 40,
},
],
};
export default function Page() {
return <StoreHomePage store={store} routes={{ home: '/', shop: '/shop/', product: '/product/', checkout: '/checkout/' }} />;
}Built for this template and available on their own in the library.
Shop navbar with category dropdowns, search, account and a cart button whose badge updates live; collapses to a mobile menu.
Slim announcement bar with rotating messages, pause on hover and a dismiss button remembered per session.
Slide-in cart with quantity steppers, remove, free-shipping progress and subtotal. Accessible modal with focus trap.
Shop landing hero with gradient headline, CTAs, proof stats and a floating featured-product stage.
Row of store guarantees — shipping, returns, secure payment and support — in card, inline or divided style.
Shop product tile with illustration or photo, badge, star rating, colour swatches, compare-at price, wishlist toggle and add-to-cart.
Responsive grid of product cards with an empty state — the target of FilterSidebar and ProductToolbar.
Category, price, colour, rating and stock filters that filter and sort a ProductGrid instantly, synced with the URL.
Catalogue heading with a live result count and a ModernSelect sort control wired to FilterSidebar.
Product image viewer with large stage and keyboard-navigable thumbnails; generates illustrated angles when there are no photos.
Colour swatches or size pills as a native radio group that keeps an add-to-cart button in sync.
Product detail purchase panel: price, savings, colour/size pickers, quantity stepper, add to cart, buy now and expandable details.
Checkout sidebar with cart lines, promo codes, shipping, tax and a live total that follows the chosen shipping method.
One-page checkout — contact, delivery, shipping and payment — with autocomplete hints, validation and an animated confirmation.
Product visual: a real photo, or a hue-tinted backdrop with one of 16 line-art product illustrations.
Read-only star rating with fractional fill, value and review count, exposed as a single accessible label.
Live stacked notifications: "Added to cart" with a View cart action, plus any custom notice sent through the ack:notify event.
Rotating social-proof notice of recent purchases that slides in and out; pauses on hover and can be dismissed for the session.
Live sale countdown with days, hours, minutes and seconds, a CTA and an ended state; fixed date or rolling per-visitor deadline.
Low-stock urgency notice with a level bar and a live "people viewing" counter for product pages.
Framework-free cart state shared by every shop component: localStorage persistence, cross-tab sync, add-to-cart binding and money formatting.
Existing components the template is assembled from.