Skip to main content

Music Store

Music Store is a beautifully crafted e-commerce application built with React 19, designed to showcase and sell musical instruments with stunning visual effects and smooth animations.

Overview

Music Store combines modern web technologies to deliver an immersive shopping experience featuring advanced WebGL graphics, fluid animations, and a responsive design. The application fetches product data from Supabase and provides a complete shopping cart experience with real-time updates.

Key Features

Modern React Architecture

Built with React 19, leveraging the latest features including hooks, context API, and concurrent rendering for optimal performance.

Advanced 3D Graphics

Powered by OGL (WebGL library) for stunning circular product galleries with physics-based animations and custom shaders.

Real-time Database

Integrated with Supabase for seamless product management, real-time data synchronization, and scalable backend infrastructure.

Smooth Animations

GSAP-powered animations throughout the interface, including hero section transitions, text effects, and interactive elements.

Tech Stack

Music Store is built with cutting-edge technologies:

Frontend Framework

  • React 19.2.0 - Latest React with improved performance and features
  • React Router DOM 7.13.1 - Client-side routing for seamless navigation
  • Vite 8.0.0 - Next-generation build tool with lightning-fast HMR

Styling & UI

  • Tailwind CSS 4.2.1 - Utility-first CSS framework
  • Motion 12.35.1 - Production-ready animation library
  • Custom Components - Grainient backgrounds, shiny text effects, and glassmorphic UI elements

Graphics & Animation

  • GSAP 3.14.2 - Professional-grade animation library for complex timelines
  • OGL 1.0.11 - Minimal WebGL library for 3D circular galleries
  • Math.js 15.1.1 - Advanced mathematics for animations and calculations

Backend & Data

  • Supabase 2.98.0 - Open-source Firebase alternative for authentication and database
  • PostgreSQL - Robust relational database for product catalog

Architecture Overview

The application follows a component-based architecture with clear separation of concerns:
src/
├── components/          # Reusable UI components
│   ├── Hero/           # Landing hero section with GSAP animations
│   ├── Navbar/         # Glassmorphic navigation bar
│   ├── CircularGallery/ # WebGL-powered 3D product gallery
│   ├── CartPanel/      # Sliding cart panel
│   └── ...
├── context/            # React Context providers
│   └── CartContext/    # Global cart state management
├── pages/              # Route components
│   ├── Home.jsx        # Main landing page
│   ├── Categoria.jsx   # Category browsing
│   └── ...
├── backend/            # Backend configuration
│   └── supabaseClient.js # Supabase client setup
├── App.jsx             # Main app component with routing
└── main.jsx            # Application entry point

State Management

Music Store uses React Context API for global state management:
src/main.jsx
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import { CartProvider } from './context/CartContext/CartContext.jsx'
import App from './App.jsx'

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <CartProvider>
        <App />
    </CartProvider>
  </StrictMode>,
)
The CartProvider wraps the entire application, providing cart functionality including:
  • Adding/removing products
  • Quantity management
  • Real-time total calculation
  • Cart panel visibility control

Data Flow

Products are fetched from Supabase on application mount:
src/App.jsx
const [productos, setProductos] = useState([]);
const [cargando, setCargando] = useState(true)

useEffect(() => {
  async function fetchProductos() {
    const { data, error } = await supabase.from("productos").select("*");
    if (error) console.error("Error al traer productos:", error);
    else setProductos(data);
    setCargando(false);
  }
  fetchProductos();
}, []);

What’s Next?

Quick Start

Get Music Store running locally in minutes

Installation Guide

Detailed setup instructions and configuration
Music Store requires Node.js 18+ and a Supabase account for backend functionality. Make sure you have these prerequisites before proceeding.

Build docs developers (and LLMs) love