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
actions
directory. - Responsive Design: Fully responsive and optimized for all devices.
- Accessibility: Includes
aria-label
attributes and other accessibility improvements. - Dynamic Metadata: Metadata for pages is dynamically generated based on content from Sanity.
- Optimized Images: Uses
next/image
for 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 install
Then, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open 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 management
refactor: centralize data fetching logic in actions
fix: 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.