A modern, cinematic portfolio website featuring an animated 3D starfield background, glass-morphism UI components, and smooth animations. Built with Next.js 14, TypeScript, Tailwind CSS, and Framer Motion.
- π Animated Starfield Background - 3D particle system with moving stars
- π€ Centered Profile Layout - Circular profile image with social links
- π Social Media Integration - Instagram, LinkedIn, YouTube pill buttons
- β¨ Glass-Morphism Cards - Semi-transparent cards with backdrop blur
- πΌοΈ Responsive Photo Gallery - 2x3 grid showcasing projects
- π¨ Dark Cinematic Theme - Premium futuristic aesthetic
- π± Fully Responsive - Optimized for mobile, tablet, and desktop
- βΏ Accessible - WCAG AA compliant with keyboard navigation
- β‘ Performance Optimized - 90+ Lighthouse score, WebP images, lazy loading
- π SEO Ready - Meta tags, Open Graph, Twitter Cards
- Node.js 18+ and npm
- Clone the repository:
git clone <your-repo-url>
cd ragspro-enterprise- Install dependencies:
npm install-
Add your images:
- Profile photo:
public/images/profile.webp(400x400px) - Card logos:
public/images/logos/*.png(48x48px each) - Gallery photos:
public/images/gallery/*.webp(800x800px each)
- Profile photo:
-
Update content in
app/page.tsx:- Change name, headline, and social links
- Update card titles and descriptions
- Modify gallery image paths and alt text
-
Run the development server:
npm run dev- Open http://localhost:3000 in your browser
/
βββ app/
β βββ layout.tsx # Root layout with fonts and metadata
β βββ page.tsx # Main portfolio page
β βββ globals.css # Global styles and Tailwind
βββ components/
β βββ StarfieldBackground.tsx # Animated 3D particle canvas
β βββ ProfileSection.tsx # Profile image and name
β βββ SocialPill.tsx # Social media button
β βββ SocialLinks.tsx # Social pills container
β βββ HeroHeadline.tsx # Main italic headline
β βββ GlassCard.tsx # Glass-morphism card
β βββ CardStack.tsx # Stack of glass cards
β βββ PhotoGallery.tsx # Responsive image grid
βββ lib/
β βββ utils.ts # Utility functions
βββ public/
β βββ images/
β βββ profile.webp # Profile photo
β βββ logos/ # Card logos
β βββ gallery/ # Gallery photos
βββ tailwind.config.ts # Tailwind configuration
βββ next.config.js # Next.js configuration
βββ package.json # Dependencies
Edit app/page.tsx:
const portfolioData = {
profile: {
name: 'Your Name',
image: '/images/profile.webp',
headline: 'Your headline here.',
},
socialLinks: {
instagram: 'https://instagram.com/yourhandle',
linkedin: 'https://linkedin.com/in/yourprofile',
youtube: 'https://youtube.com/@yourchannel',
},
// ... update gallery images
}Edit components/CardStack.tsx:
const cards = [
{
id: 'your-card',
logo: '/images/logos/your-logo.png',
title: 'Your Title',
subtitle: 'Your description here.',
href: '#your-link',
},
// ... add more cards
]Edit tailwind.config.ts:
colors: {
background: {
primary: '#0a0a0a', // Change base color
},
// ... modify other colors
}Edit animation delays in components:
StarfieldBackground.tsx- Particle speed (line 52:star.z -= 2)ProfileSection.tsx- Fade-in timingGlassCard.tsx- Hover effects
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Icons: Lucide React
- Fonts: Google Fonts (Playfair Display, Inter)
- Image Optimization: Next/Image with WebP
{
"next": "14.0.0",
"react": "^18",
"framer-motion": "^10.16.0",
"lucide-react": "latest",
"tailwindcss": "^3.3.0",
"typescript": "^5"
}- Push your code to GitHub
- Import project in Vercel
- Vercel will auto-detect Next.js and deploy
- Your site will be live at
your-project.vercel.app
No environment variables required for basic setup. Optional:
NEXT_PUBLIC_SITE_URL=https://yourdomain.com
NEXT_PUBLIC_ANALYTICS_ID=your-analytics-id- Lighthouse Score: 90+ (Performance, Accessibility, Best Practices, SEO)
- First Contentful Paint: < 1.5s
- Largest Contentful Paint: < 2.5s
- Cumulative Layout Shift: < 0.1
- Canvas Animation: 60 FPS
- Semantic HTML (main, section, nav)
- ARIA labels on interactive elements
- Keyboard navigation support
- Focus indicators (ring-2 ring-white/50)
- Alt text on all images
- Color contrast: 21:1 (white on black)
- Respects prefers-reduced-motion
- Chrome/Edge: Last 2 versions
- Firefox: Last 2 versions
- Safari: Last 2 versions
- iOS Safari: Last 2 versions
- Android Chrome: Last 2 versions
- Ensure images are in
public/images/directory - Check file names match exactly (case-sensitive)
- Verify image formats (WebP, PNG, JPG supported)
- Check browser console for Canvas errors
- Verify JavaScript is enabled
- Check if prefers-reduced-motion is enabled
# Clear cache and rebuild
rm -rf .next
npm run buildMIT License - feel free to use this template for your own portfolio!
- Design inspiration: Modern portfolio websites
- Fonts: Google Fonts (Playfair Display, Inter)
- Icons: Lucide React
- Framework: Next.js by Vercel
- Email: bhupenderpratap0@gmail.com
- Phone: +91-8700048490
- Location: New Delhi, India
Built with β€οΈ by Bhupender Pratap