A cinematic space-themed portfolio website built with Next.js 15, featuring scroll-driven animations and immersive visual effects inspired by films like Interstellar, Gravity, and 2001: A Space Odyssey.
- Next.js 15 with App Router and TypeScript
- Tailwind CSS 4.x with custom color palette and animations
- Framer Motion for scroll-driven animations
- Canvas-based starfield with parallax effects
- Cinematic visual effects (lens flares, gravitational lensing, particle systems)
- Fully responsive design for mobile, tablet, and desktop
- Accessibility compliant with WCAG AA standards
- Performance optimized with sub-2-second load times
- Framework: Next.js 15+
- Language: TypeScript
- Styling: Tailwind CSS 4.x
- Animations: Framer Motion
- Testing: fast-check (property-based testing)
- Code Quality: ESLint, Prettier
- Node.js 18+ or later
- npm, yarn, or pnpm
- Clone the repository:
git clone <repository-url>
cd nextjs-portfolio- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev- Open http://localhost:3000 in your browser.
npm run dev- Start development server with Turbopacknpm run build- Create production buildnpm run start- Start production servernpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run format:check- Check code formattingnpm run type-check- Run TypeScript type checking
nextjs-portfolio/
├── app/ # Next.js App Router
│ ├── components/ # React components
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Main page
│ └── globals.css # Global styles
├── lib/ # Utility functions
│ ├── constants.ts # Configuration constants
│ └── utils.ts # Helper functions
├── types/ # TypeScript type definitions
│ └── index.ts # Shared types
├── public/ # Static assets
│ └── images/ # Image files
├── next.config.ts # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
└── tsconfig.json # TypeScript configuration
The portfolio uses a space-themed color palette:
- Background:
#000000(absolute black) - Text:
#FFFFFF(white) - Accents:
- Blue:
#4D7CFE - Warm:
#FFD6A5 - Pink:
#FF2D75 - Purple:
#9D7CFE - Cyan:
#4DFEEF - Green:
#6DFE7C - Amber:
#FEA54D
- Blue:
- First Contentful Paint (FCP): < 1.5s
- Time to Interactive (TTI): < 3s
- Frame Rate: 60 FPS (desktop), 30 FPS (mobile)
- Initial Bundle Size: < 500KB
- Push your code to GitHub
- Import the project in Vercel
- Deploy with zero configuration
npm run buildThe static files will be generated in the .next directory.
This portfolio is designed with accessibility in mind:
- Semantic HTML structure
- ARIA labels for interactive elements
- Keyboard navigation support
- Color contrast ratios meeting WCAG AA standards
prefers-reduced-motionsupport
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
This project is private and proprietary.
Raghavendra Saini
- Email: raghavvv.dev@gmail.com
- LinkedIn: Raghavendra Saini