A modern, animated portfolio website built with Next.js 14+, featuring beautiful animations and a stunning UI.
- Modern Stack: Next.js 14+ with App Router, TypeScript, and Tailwind CSS
- Beautiful UI: shadcn/ui components with Magic UI animations
- Smooth Animations: Framer Motion powered transitions and effects
- Dark/Light Mode: System-aware theme with smooth transitions
- Contact Form: Resend integration with custom email templates
- Responsive Design: Mobile-first approach for all screen sizes
- SEO Optimized: Meta tags, Open Graph, and Twitter cards
- Performance: Optimized images, lazy loading, and code splitting
- Framework: Next.js 14+
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Animations: Magic UI + Framer Motion
- Email: Resend
- Icons: Lucide React
src/
├── app/
│ ├── api/
│ │ └── contact/
│ │ └── route.ts # Contact form API
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/
│ ├── ui/ # shadcn/ui & Magic UI components
│ ├── emails/ # Email templates
│ ├── sections/ # Page sections
│ │ ├── hero.tsx
│ │ ├── about.tsx
│ │ ├── skills.tsx
│ │ ├── portfolio.tsx
│ │ └── contact.tsx
│ ├── navbar.tsx
│ ├── footer.tsx
│ ├── theme-provider.tsx
│ └── theme-toggle.tsx
└── lib/
└── utils.ts # Utility functions
- Node.js 18+ or Bun
- npm, yarn, pnpm, or bun
- Clone the repository:
git clone https://github.com/Sayanwebdev/portfolio.git
cd portfolio- Install dependencies:
bun install
# or
npm install- Create a
.env.localfile:
cp .env.example .env.local- Add your Resend API key to
.env.local:
RESEND_API_KEY=re_your_api_key_here- Update the email recipient in
src/app/api/contact/route.ts:
to: ["your-email@example.com"],bun dev
# or
npm run devOpen http://localhost:3000 in your browser.
bun run build
# or
npm run buildbun start
# or
npm startThe theme colors can be customized in src/app/globals.css. The portfolio uses a purple-pink gradient as the primary accent.
Update the following files to customize your portfolio:
- Hero Section:
src/components/sections/hero.tsx - About Section:
src/components/sections/about.tsx - Skills:
src/components/sections/skills.tsx - Projects:
src/components/sections/portfolio.tsx - Contact Info:
src/components/sections/contact.tsx - Social Links: Update in navbar.tsx and footer.tsx
- Sign up for Resend
- Get your API key from the dashboard
- (Optional) Add a custom domain for better deliverability
- Update the
fromaddress insrc/app/api/contact/route.ts
- Hero: Animated introduction with typing effect and particles background
- About: Personal introduction with highlights and image
- Skills: Technical skills with animated progress bars
- Portfolio: Project showcase with filtering and hover effects
- Contact: Contact form with validation and email notifications
- BlurFade: Smooth fade-in with blur effect
- Particles: Interactive particle background
- MagicCard: Hover spotlight effect
- BorderBeam: Animated border light
- TypingAnimation: Typewriter text effect
- TextAnimate: Various text animations
- ShineBorder: Glowing border effect
This project is open source and available under the MIT License.
- shadcn/ui for the beautiful components
- Magic UI for the stunning animations
- Resend for the email API
Made with ❤️ by Sayan Dey