A modern, responsive portfolio website built with Next.js 15, featuring dark theme with purple accents, glass morphism effects, and dynamic project management through Sanity CMS.
- Modern Stack: Next.js 15, React 19, TypeScript, Tailwind CSS 4
- CMS Integration: Sanity for dynamic project content
- Contact System: Email automation with reCAPTCHA protection
- Responsive Design: Mobile-first with smooth animations
- Clone and install:
git clone https://github.com/Ra-Wo/portfolio-v2.git
cd portfolio-v2
npm install- Set up environment:
cp .env.local.example .env.localEdit .env.local with your credentials (see .env.local.example for details).
- Run development server:
npm run devVisit http://localhost:3000
- Sanity CMS: sanity.io - Project content management
- reCAPTCHA: Google reCAPTCHA - Contact form protection
- SMTP Email: Gmail, Brevo, or SendGrid - Contact form delivery
All personal data and site configuration is centralized in lib/data.ts:
export const personalInfo = { name, role, tagline, avatar, resume };
export const contactInfo = { email };
export const socialLinks = [
/* GitHub, LinkedIn, etc. */
];
export const heroData = {
/* Hero section content */
};
export const footerData = {
/* Footer content */
};
export const siteMetadata = { title, description, keywords, author, urls };Everything is configured in one place - no need to edit other files!
Note: To update the About section content (bio, description, etc.), edit the components/About.tsx file directly.
- Portfolio: oudouch.vercel.app
- Email: rashidoudouch@gmail.com
- GitHub: @Ra-Wo
- LinkedIn: rachid-oudouch
Built with ❤️ using Next.js, TypeScript, and modern web technologies.