This is a Next.js project bootstrapped with create-next-app. It serves as a portfolio website showcasing projects, skills, and more.
- Next.js 15: Built with the latest features of Next.js, including the App Router.
- Sanity CMS: Integrated with Sanity as the headless CMS for managing content dynamically.
- Reusable Actions: Centralized logic for fetching data from Sanity using reusable functions in the
actionsdirectory. - Responsive Design: Fully responsive and optimized for all devices.
- Accessibility: Includes
aria-labelattributes and other accessibility improvements. - Dynamic Metadata: Metadata for pages is dynamically generated based on content from Sanity.
- Optimized Images: Uses
next/imagefor optimized image loading. - Animations: Smooth animations powered by Framer Motion.
- TypeScript: Fully typed with TypeScript for better developer experience.
First, clone the repository and install dependencies:
git clone https://github.com/your-username/portfolio-fullstack.git
cd portfolio-fullstack
npm installThen, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
app/: Contains the main application logic and routing.components/: Reusable UI components such as headers, footers, and cards.app/actions/: Centralized functions for fetching data from Sanity, such asgetHero,getTechSkills, andgetServices.styles/: Global and component-specific styles.public/: Static assets like images and fonts.utils/: Utility functions and helpers.
This project uses Sanity as the headless CMS. Content such as projects, skills, and services is managed dynamically through Sanity. The actions directory contains reusable functions to fetch data from Sanity, such as:
getHero: Fetches the hero section data.getTechSkills: Fetches the list of technical skills.getServices: Fetches the services section data.getProjectDetail: Fetches detailed information about a specific project.
The commit messages follow a clear and descriptive format, explaining the integration of Sanity and the use of actions. For example:
feat: integrate Sanity CMS for dynamic content managementrefactor: centralize data fetching logic in actionsfix: resolve issues with hero component data fetching
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out the Next.js deployment documentation for more details.
Contributions are welcome! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.