A modern, responsive portfolio website built with Next.js, React, and Contentful CMS.
- 🌓 Dark/light mode support
- 📱 Fully responsive design with mobile sidebar navigation
- 🔍 Filterable project showcase
- 🖼️ Rich content rendering from Contentful
- 🚀 Smooth animations and transitions using Framer Motion
- 💅 Styled with Tailwind CSS and Shadcn UI components
- Framework: Next.js (App Router)
- Frontend: React, TypeScript
- Content Management: Contentful CMS
- Styling: Tailwind CSS
- UI Components: Shadcn UI
- Animations: Framer Motion (motion)
- Icons: Lucide React, React Simple Icons
- Node.js (v18 or higher)
- npm or yarn
- Contentful CMS account
-
Clone the repository
git clone https://github.com/yourusername/portfolio-website.git cd portfolio-website
-
Install dependencies
npm install # or yarn install
-
Set up environment variables Create a
.env.local
file in the root directory with the following variables:CONTENTFUL_SPACE_ID=your_space_id CONTENTFUL_ACCESS_TOKEN=your_access_token
-
Run the development server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser
This portfolio uses Contentful CMS to manage project data. You'll need to set up the following content models:
-
Project: Your portfolio projects
- Title (Text)
- Slug (Text)
- Year (Number)
- Overview (Text)
- Description (Rich Text)
- Image (Media)
- Platforms (References to Platform)
- Languages (References to Language)
- Technologies (References to Technology)
- Links (Array of Text)
- Collaborators (References to Collaborator)
-
Platform: For categorizing projects by platform
- Name (Text)
- Link (Text, optional)
-
Language: Programming languages used
- Name (Text)
- Link (Text, optional)
-
Technology: Frameworks, libraries, tools used
- Name (Text)
- Link (Text, optional)
-
Collaborator: People who worked on your projects
- Name (Text)
- Link (Text, optional)
/
├── public/ # Static assets
├── src/
│ ├── app/ # App Router pages
│ │ ├── about/ # About page
│ │ ├── contact/ # Contact page
│ │ ├── work/ # Projects listing page
│ │ │ └── [slug]/ # Individual project page
│ │ └── page.tsx # Home page
│ ├── components/ # React components
│ │ ├── ui/ # UI components (Shadcn)
│ │ └── ... # Custom components
│ ├── lib/ # Utilities
│ │ ├── contentful.ts # Contentful client
│ │ ├── contentful-types.ts # TypeScript types for Contentful
│ │ └── utils.ts # Helper functions
│ └── ...
├── tailwind.config.js # Tailwind CSS config
└── ...
This project can be deployed to Vercel with minimal configuration:
- Push your code to a GitHub repository
- Import the project to Vercel
- Add your environment variables
- Deploy!
This project is licensed under the MIT License - see the LICENSE file for details.
- Shadcn UI for the beautiful UI components
- Contentful for the headless CMS
- Framer Motion for the animations
- Next.js for the React framework