A personal portfolio / midterm web app built with Next.js 16 + TypeScript + Tailwind CSS + shadcn/ui.
Pages: Home · Profile · Game (Tic-Tac-Toe)
- Node.js ≥ 20 — nodejs.org
- npm (comes with Node.js)
# 1. Install dependencies (only needed once, or after adding new packages)
npm install
# 2. Start the development server
npm run devThen open http://localhost:3000 in your browser. The page hot-reloads on every file save.
npm run buildThis generates a fully static site in the out/ folder. You can serve it with any static file host.
The project is already set up for automatic GitHub Pages deployment.
- Push this project to a GitHub repository.
- Go to Settings → Pages in your repo.
- Under Source, select "GitHub Actions".
- That's it! Every push to
mainwill auto-deploy.
- The workflow at
.github/workflows/deploy.ymlruns on every push tomain. - It installs dependencies, runs
npm run build, and deploys theout/folder to GitHub Pages. - The base path is automatically set to
/<your-repo-name>— no manual config needed.
https://<your-github-username>.github.io/<your-repo-name>/
src/
├── app/
│ ├── layout.tsx # Root layout (fonts, metadata)
│ ├── page.tsx # Main page (hash-based routing)
│ └── globals.css # Global styles & CSS variables
└── components/
├── home.tsx # Home page
├── profile.tsx # Profile page
├── tic-tac-toe.tsx # Game page
├── navbar.tsx # Navigation bar
└── ui/ # shadcn/ui components
| Tool | Purpose |
|---|---|
| Next.js 16 | React framework (static export mode) |
| TypeScript | Type safety |
| Tailwind CSS v4 | Utility-first styling |
| shadcn/ui | Component library |
| Framer Motion | Animations |
| Recharts | Charts |