A modern, elegant website for a makeup artist business built with Next.js (App Router), TypeScript, and Supabase integration for image storage.
- Next.js 14 with App Router architecture
- TypeScript for type safety
- Responsive design with Tailwind CSS
- Image gallery with lightbox functionality
- Category filtering for gallery images
- Supabase integration for image storage and authentication
- Admin dashboard for image management
- Node.js 16.x or later
- npm or yarn
- Supabase account (for image storage and authentication)
- Clone the repository:
git clone https://github.com/yourusername/simple-beauty-makeup.git
cd simple-beauty-makeup- Install dependencies:
npm install
# or
yarn install- Create a
.env.localfile in the project root and add your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
- Start the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 with your browser to see the result.
- Create a new Supabase project
- Create a storage bucket named
gallery-imageswith public access - Set up authentication to allow email/password sign-in for the admin area
- Create an admin user in the Authentication section of Supabase
├── src/ # Source directory
│ ├── app/ # Next.js App Router pages
│ │ ├── admin/ # Admin section
│ │ │ ├── gallery/ # Gallery management page
│ │ │ └── login/ # Admin login page
│ │ └── gallery/ # Public gallery page
│ ├── components/ # React components
│ │ ├── admin/ # Admin dashboard components
│ │ │ ├── GalleryManager.tsx
│ │ │ └── ImageUploader.tsx
│ │ ├── Footer.tsx
│ │ ├── Gallery.tsx # Gallery component with lightbox
│ │ └── Navigation.tsx
│ ├── styles/ # CSS styles
│ │ └── globals.css # Global styles with Tailwind
│ ├── types/ # TypeScript type definitions
│ │ └── index.ts
│ └── utils/ # Utility functions
│ └── supabase.ts # Supabase client and helper functions
├── public/ # Static assets
│ └── images/ # Local images (fallback)
├── middleware.ts # Next.js middleware for auth
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Project dependencies
Edit the color scheme in the tailwind.config.ts file:
colors: {
'beauty-brown': '#a68674',
'beauty-beige': '#f5f1ed',
'beauty-gold': '#d4b88c',
},The site uses Next.js Font Optimization for loading the following fonts:
- Montserrat (sans-serif)
- Playfair Display (serif)
- Great Vibes (script)
You can modify these in src/app/layout.tsx.
The site can be deployed to Vercel, Netlify, or any other Next.js-compatible hosting platform.
For the easiest deployment experience:
npm install -g vercel
vercelMake sure to set the following environment variables on your deployment platform:
NEXT_PUBLIC_SUPABASE_URL=your-supabase-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
This project is licensed under the MIT License.