# Next.js Creative Portfolio Tutorial: Build Amazing Portfolio Website with Next.js, Three.js, and Tailwind CSS π₯



This repository contains **final code** for Next.js Creative Portfolio website built using Next.js and Three.js.
For Demo checkout following linkπ:
[Nextjs Creative Portfolio Website Demo](https://next-js-creative-portfolio-website.vercel.app/)
---
β¨ Checkout my brand new Saas application -> [AI Headshot Generator](https://www.smartheadshots.ai)
---
Starter Code Filesπ:
β‘ Link π: [Nextjs Creative Portfolio Website Starter Code](https://github.com/codebucks27/Nextjs-Creative-Portfolio-Starter-Code-Files)
If you want to learn how to create it please follow below tutorialπ:
β‘ Tutorial Link π: [Personal Portfolio Website with Next.js, Three.js & Tailwind CSS Tutorial](https://youtu.be/T5t46vuW8fo)
[](https://youtu.be/T5t46vuW8fo)
π Checkout my personal website [DevDreaming](https://devdreaming.com)
---
# βDO NOT FORGET TO STAR THIS REPOβ
---
## Images of The Portfolio Website:
#### Home

#### About

#### Projects

#### Contact

#### Mobile Version




## Resources Used in This Project
#### 3D Models
- ["Tim Mckee - Boy Wizard"](https://skfb.ly/6YATu) by [elbertwithane is licensed under Creative Commons Attribution ](http://creativecommons.org/licenses/by/4.0/).
- ["Stylized wizard hat"](https://skfb.ly/ozxOQ) by [Enkarra is licensed under Creative Commons Attribution](http://creativecommons.org/licenses/by/4.0/).
- ["Wizard Staff"](https://skfb.ly/6QYZw) by [Toymancer Studio is licensed under Creative Commons Attribution](http://creativecommons.org/licenses/by/4.0/).
#### AI Images
- Created with the help of [Playground AI](https://playgroundai.com/)
#### Github Stats & Details
- [Github ReadMe Stats](https://github.com/anuraghazra/github-readme-stats)
- [Skills Icons](https://github.com/tandpfun/skill-icons)
- [Github Readme Streak Stats](https://github.com/denvercoder1/github-readme-streak-stats)
#### Development Resources
- Fonts from [Google Fonts](https://fonts.google.com/)
- Icons from [Lucide Icons](https://lucide.dev/)
- Notifications from [Sonner](https://sonner.emilkowal.ski/)
- Form created using [react-hook-form](https://react-hook-form.com/)
- Animations using [framer-motion](https://www.framer.com/motion/)
- Emails using [Emailjs](https://www.emailjs.com/)
- Convert 3d models to JSX using [Gltf JSX](https://github.com/pmndrs/gltfjsx)
#### Audio
- Music by Shiden Beats Music from Pixabay
---
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
This repo now uses [**Bun**](https://bun.sh/) as the package manager. Install Bun, then:
```bash
bun install # install all dependencies
bun dev # start the dev server
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
## 2026 Dependency Upgrade
The project has been refreshed to run on the latest stable versions of every major dependency. Headline changes:
- **Next.js** `14.2` β `16.2` (Turbopack builds, removal of `next lint` β replaced with `eslint .`)
- **React / React DOM** `18` β `19`
- **Tailwind CSS** `3` β `4` (new `@tailwindcss/postcss` plugin, `@import "tailwindcss"` + `@config` directive in `globals.css` to keep the existing JS config)
- **@react-three/fiber** `8` β `9` and **@react-three/drei** `9` β `10` (React 19 compatible)
- **framer-motion** `11` β `12`, **three** `0.162` β `0.184`, **sonner** `1` β `2`, **@emailjs/browser** `4.2` β `4.4`, **react-hook-form**, **lucide-react**, **sharp** all bumped to latest
- **ESLint** `8` β `9` with flat config (`eslint.config.mjs`) and `eslint-config-next` `16`
- **Package manager**: switched from npm to **Bun** β `package-lock.json` removed, `bun.lock` checked in
### Code changes required by the upgrade
- Next.js 15+ disallows `dynamic(..., { ssr: false })` inside Server Components, so the three model imports (`Wizard`, `HatModel`, `Staff`) are now wrapped in tiny `*Client.jsx` files marked `"use client"`.
- `globals.css` switched from `@tailwind base/components/utilities` to `@import "tailwindcss"` + `@config "../../tailwind.config.js"` (legacy JS config kept as-is via the v4 `@config` directive).
- `postcss.config.js` now uses `@tailwindcss/postcss` instead of the `tailwindcss` PostCSS plugin.
- `.eslintrc.json` replaced with `eslint.config.mjs` (flat config) using `eslint-config-next/core-web-vitals`.
- `package.json` `lint` script changed from `next lint` to `eslint .`.
### Want the original tutorial code?
The pre-upgrade version (Next.js 14, React 18, Tailwind 3, npm) is preserved in git history. To check it out locally:
```bash
git checkout 3b313c4 # last commit before the upgrade
```
Or browse it on GitHub: [commit 3b313c4](https://github.com/codebucks27/Next.js-Creative-Portfolio-Website/tree/3b313c484d2bdf853c8db72a2ba54995b50faf46).