A modern, responsive developer portfolio website built with Next.js and Sanity CMS, featuring beautiful animations and a dark/light theme toggle.
- Responsive Design: Optimized for all device sizes
- Dark/Light Mode: Theme switcher for user preference
- Content Management: Sanity CMS integration for easy content updates
- Modern Animations: Smooth animations using Framer Motion
- Interactive Effects: Particle backgrounds and typewriter effects
- Contact Form: Functional contact form for inquiries
- Project Showcase: Dynamic project gallery
- Skills Section: Interactive skills display
- Resume/CV Page: Dedicated resume section
- Next.js 13 - React framework with SSG/SSR
- React 18 - JavaScript library for building user interfaces
- Tailwind CSS - Utility-first CSS framework
- NextUI - Modern React UI library
- Framer Motion - Animation library
- React Icons - Icon library
- Sanity CMS - Headless CMS for content management
- Sanity Image URL - Image optimization and transformation
- Tailwind CSS - Main styling framework
- Custom Fonts: Azonix, Nunito, and Poppins
- next-themes - Theme switching functionality
- React Simple Typewriter - Typewriter text effects
- React Scroll - Smooth scrolling navigation
- React Tilt - 3D tilt effects
- Particles BG - Particle background animations
- React Hook Form - Form management
βββ components/
β βββ About.js # About section component
β βββ Contact.js # Contact section component
β βββ ContactForm.js # Contact form component
β βββ ContactItems.js # Contact information display
β βββ Hero.js # Hero/landing section
β βββ Project.js # Projects showcase component
β βββ Skill.js # Skills display component
β βββ Layout/
β βββ Footer.js # Site footer
β βββ Layout.js # Main layout wrapper
β βββ Navbar.js # Navigation component
β βββ ThemeSwitcher.js # Dark/light mode toggle
βββ pages/
β βββ _app.js # Next.js app configuration
β βββ _document.js # HTML document structure
β βββ index.js # Homepage
β βββ projects.js # Projects page
β βββ resume.js # Resume/CV page
β βββ api/
β βββ hello.js # API endpoint example
βββ config/
β βββ sanity.config.js # Sanity CMS configuration
βββ styles/
β βββ globals.css # Global styles
β βββ custom.css # Custom component styles
β βββ hero.css # Hero section specific styles
βββ assets/ # Font files and static assets
βββ public/ # Static files and favicon
- Node.js 16+
- npm or yarn
- Sanity account and project
-
Clone the repository
git clone <repository-url> cd developer-portfolio
-
Install dependencies
npm install # or yarn install
-
Environment Setup Create a
.env.local
file in the root directory:SANITY_PROJECT_ID=your_sanity_project_id SANITY_DATASET=your_sanity_dataset
-
Run the development server
npm run dev # or yarn dev
-
Open your browser Navigate to http://localhost:3000
-
Create a Sanity project
- Go to sanity.io
- Create a new project
- Note your project ID and dataset name
-
Configure content schemas Set up the following content types in your Sanity studio:
bio
- Personal information and profile imageskill
- Technical skills with icons/imagesproject
- Project details, images, and links
-
Update environment variables Add your Sanity project credentials to
.env.local
The portfolio uses Sanity CMS for content management. You can update:
- Bio/Profile: Personal information, profile image, and introduction
- Skills: Technical skills with proficiency levels and icons
- Projects: Project details, screenshots, technologies used, and links
- Contact Information: Contact details and social media links
The portfolio supports dark and light themes. Customize colors in:
tailwind.config.js
- Tailwind configurationstyles/globals.css
- Global theme variables
Custom fonts are located in the assets/
directory:
- Azonix - Display font
- Nunito - Body text
- Poppins - Headings and emphasis
Framer Motion animations can be customized in individual components for:
- Page transitions
- Element reveals
- Interactive hover effects
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on every push
- Build the project:
npm run build
- Deploy the
out/
folder to Netlify - Configure environment variables in Netlify dashboard
npm run build
npm run start
- Home (
/
) - Hero, About, and Contact sections - Projects (
/projects
) - Detailed project showcase - Resume (
/resume
) - CV/Resume page
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is open source and available under the MIT License.
Klajdi Murataj
- GitHub: @klajdm
- LinkedIn: [Klajdi Murataj]
β Don't forget to star this repository if you found it helpful!