Skip to content

patgpt/portfolio

Repository files navigation

Portfolio Project

License: MIT Next.js Tailwind CSS

Netlify Status CI/CD Uptime

TypeScript Prismic CMS Framer Motion DaisyUI ESLint

A modern, performant portfolio website built with Next.js, Prismic CMS, and Tailwind CSS.

🚀 Demo

✨ Key Features

  • Dynamic Content Management: Powered by Prismic for seamless updates.
  • Responsive Design: Fully optimized for all screen sizes using Tailwind CSS and DaisyUI.
  • Smooth Animations: Integrated with Framer Motion for elegant user interactions.
  • Light and Dark Themes: Supports theming via next-themes.

🛠 Technologies Used

  • Framework: Next.js (15.1.0)
  • Styling: Tailwind CSS, DaisyUI
  • Content Management: Prismic
  • Animation: Framer Motion
  • Utilities: clsx, tailwind-merge

🏗 Project Structure

portfolio/
├── app/              # Next.js app directory
├── components/       # Reusable UI components
├── lib/             # Utility functions and configurations
├── public/          # Static assets
├── styles/          # Global styles
└── types/           # TypeScript type definitions

🚦 Getting Started

Prerequisites

  • Node.js 18+
  • Bun package manager
  • Prismic account

Environment Setup

  1. Create .env.local:

    NEXT_PUBLIC_PRISMIC_ENDPOINT=your-repo-name.cdn.prismic.io
    PRISMIC_ACCESS_TOKEN=your-access-token

Installation

  1. Clone and Install

    git clone https://github.com/your-username/portfolio.git
    cd portfolio
    bun install
  2. Start Development Server

    bun run dev

📝 Available Scripts

Script Description
bun run dev Starts the development server with Turbopack and SliceMachine
bun run build Builds the project for production
bun start Starts the production server
bun run lint Runs ESLint for code quality checks
bun run slicemachine Launches Prismic SliceMachine UI

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Commit Convention

We use Conventional Commits specification for commit messages. This is automatically enforced using Husky, which checks your commit messages before they're finalized.

How it works

Your commit message should be structured like this:

type(scope): description

[optional body]
[optional footer(s)]

Common types include:

  • feat: A new feature (e.g., feat: add dark mode toggle)
  • fix: A bug fix (e.g., fix: resolve mobile menu overlap)
  • docs: Documentation changes (e.g., docs: update installation steps)
  • style: Code style changes (e.g., style: format with prettier)
  • refactor: Code changes that neither fix bugs nor add features
  • test: Adding or modifying tests
  • chore: Updates to build process, tools, etc.

If you try to commit without following this format, Husky will prevent the commit and show an error message. This helps maintain consistent commit history!

Example commit messages

feat(nav): add hamburger menu for mobile
fix(auth): resolve login timeout issue
docs(readme): update deployment instructions

📄 License

This project is licensed under the MIT License.

👏 Acknowledgments

  • Next.js Team
  • Prismic CMS
  • Tailwind CSS Community
  • DaisyUI Contributors

Releases

No releases published

Packages

No packages published

Languages