A personal portfolio website built with Next.js.
- Next.js with App Router and static site generation
- Material-UI for modern, responsive design
- TypeScript support with path aliases
- Decap CMS for easy content management
- Local Git Backend for development content editing
- Markdown-based blog and portfolio content
- Interactive animations using PIXI.js and GSAP
- Static export ready for GitHub Pages deployment
# Install dependencies
npm install
# Start development server (localhost:8080)
npm run dev
# Or start with CMS server (recommended)
npm run dev:cmsAccess the content management system at http://localhost:8080/admin/ when running the development server.
CMS Features:
- Edit blog posts and portfolio items through web interface
- Real-time preview of changes
- Automatic git commits for content changes
- Media management for images
# Development
npm run dev # Start Next.js dev server
npm run cms # Start Decap CMS proxy server
npm run dev:cms # Start both servers concurrently
# Production
npm run build # Build for production
npm run start # Start production server
npm run export # Export static site
# Quality
npm run lint # Run ESLint
npm run test # Run Jest tests
npm run updateSnap # Update test snapshots
# Utilities
npm run clean # Clean build cacheKey directories:
content/blog/— blog postscontent/portfolio/— portfolio itemspublic/admin/— CMS configurationpublic/img/— imagessrc/app/— Next.js App Router pagessrc/cms/— CMS configuration and preview templatessrc/components/— React componentssrc/templates/— page templates
- Framework: Next.js 15 with App Router
- UI Library: Material-UI v6 with Emotion
- Content Management: Decap CMS with local git backend
- Styling: CSS-in-JS with Emotion
- Animation: GSAP, PIXI.js
- Content: Markdown with gray-matter
- Testing: Jest with React Testing Library
- Language: TypeScript
The project is configured for easy deployment to GitHub Pages using github actions.