This is a personal website built with React 19, TypeScript, and Vite. The project uses Material-UI for component styling and Emotion for CSS-in-JS.
- Framework: React 19.1.1
- Build Tool: Vite 7.1.2
- Language: TypeScript 5.9.3
- UI Library: Material-UI (MUI) 7.3.1
- Styling: Emotion (CSS-in-JS)
- Package Manager: pnpm
- Linting: ESLint with TypeScript support
- Formatting: Prettier
pnpm dev # Start development server
pnpm build # Build for production (TypeScript check + Vite build)
pnpm lint # Run ESLint
pnpm preview # Preview production build/src- Source code directory@/- Path alias that resolves to./srcindex.html- Entry HTML filevite.config.ts- Vite configurationtsconfig.json- TypeScript configuration (references app and node configs)
- Tab Width: 4 spaces
- Semicolons: No semicolons
- Print Width: 120 characters
- Trailing Commas: ES5 style
- Use TypeScript for all source files
- Follow the existing Prettier configuration
- Use the
@/path alias for importing from src directory - Ensure ESLint passes before committing
This site is SEO-optimized. When adding new pages or routes:
- Add the new URL to
public/sitemap.xml - Ensure
index.htmlmeta tags (Open Graph, Twitter Card, description) remain accurate and up to date - Use semantic HTML elements where possible
When changing theme colors, update all locations where colors are defined:
src/theme/- MUI theme definitionsindex.html-theme-colorandmsapplication-TileColormeta tagspublic/site.webmanifest-theme_colorandbackground_color
- Always run
pnpm lintto check for linting errors - Follow the Prettier formatting rules (4 spaces, no semicolons, 120 char width)
- Use Material-UI components where appropriate
- Leverage TypeScript types for type safety
- Use
pnpmfor installing dependencies (NOT npm or yarn) - Only built dependencies: esbuild (as specified in pnpm config)