A fully responsive, SEO-optimized, multilingual, and ready-to-use portfolio template built with Next.js, React, Tailwind CSS, and CSS modules. This template includes all the essentials for a beautiful and functional portfolio, ready for easy customization.
- 🌐 Multilingual Support: Powered by
next-intl, the template supports English and French. Easily extend to any language by adding a JSON file in themessagesfolder (e.g.,es.json,it.json). - 💌 Contact Form: Integrated with EmailJS for handling form submissions.
- 📱 Fully Responsive: Designed with mobile-first principles for a seamless experience across devices.
- 🧩 Reusable Components: Modular structure with essential sections: Hero, Services, Projects, Contact, and About.
- ⚙️ App Router & SEO: Utilizes Next.js App Router for efficient page routing and metadata generation, with robust SEO settings.
- 🎨 Tailwind CSS & CSS Modules: Styled with Tailwind for rapid design and CSS modules for custom styles.
1. Clone the Repository
git clone https://github.com/aminagr/NextPortfolio.git
cd NextPortfolio2. Install Dependencies
npm install3. Configure Environment Variables
If you wish to enable the contact form via EmailJS, Sign up at EmailJS to obtain your keys, uncomment the code in the ContactForm component and add the following environment variables in .env.local
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=your_public_key
NEXT_PUBLIC_EMAILJS_SERVICE_ID=your_service_id
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=your_template_id4. Change the content
Update the language files (en.json, fr.json) in the public/messages folder for supported translations and you can extend to new languages by adding JSON files in public/messagesand update next-intl to recognize them.
5. Run the Development Server
npm run devYour application will be live at http://localhost:3000
Contributions are welcome! Open an issue or submit a pull request to share your suggestions and improvements.
This work, including the source code and template, is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). You are free to copy, modify, and distribute this work under the following conditions:
- Attribution: You must give appropriate credit to the original author, Amina Gmine, by mentioning her name and linking to the original GitHub repository.
- Non-Commercial: You may not use the material for commercial purposes without prior permission from the author.




