Portfolio site workflow
Before coding
- Read AGENTS.md
- Read docs/USAGE_GUIDE.md - doc sync table
- Confirm: web React 18 + Vite, not React Native
Mandatory: update docs
After any code change, update docs per the mapping table in USAGE_GUIDE.md.
Tell the user which doc files you updated.
Content source (docs/CONTENT_SOURCE.md)
- Mapping reference only - not imported at runtime
- On content changes: update
CONTENT_SOURCE.mdand runtime files (src/data/*,src/projects/*) - User instructions in chat override
CONTENT_SOURCE.md
Edit homepage copy
| Content | File |
|---|---|
| Profile, contact | src/data/profile.js |
| Hero + impact numbers | src/data/stats.js |
| About | src/data/about.js |
| Skills | src/data/skills.js, src/data/skillIcons.js |
| Project cards | src/data/projects.js |
→ Update docs/FEATURE_MAP.md for affected features.
Edit one project page (custom design)
- JSX:
src/projects/<Name>Project.jsx - CSS:
src/styles/projects/<name>.css - Wrap with
ProjectShell+ matchingslugprop - Do not merge into a shared generic template
→ Update docs/FEATURE_MAP.md for that project.
Add new project
src/data/projects.js-{ slug, link: '/projects/<slug>', ... }src/projects/NewProject.jsx+src/styles/projects/new-project.csssrc/App.jsx-<Route path="/projects/<slug>" element={<NewProject />} />public/images/projects/<slug>.jpg- Update docs:
FEATURE_MAP.md,ARCHITECTURE_OVERVIEW.md,AI_AGENT_GUIDE.md,FULL_DOCUMENTATION.md,API_FLOW.md,AGENTS.mdif routes change
Sync invariants
projects.js slug === App.jsx path segment === ProjectShell slug prop
projects.js link === '/projects/' + slug
getAllProjects() order === prev/next pager order
Commands
npm install && npm run dev
Avoid
motion.divtypos (no framer-motion)href="#work"on project pages → usehref="/#work"or<Link to="/#work">- Editing only
projects.jsfor long case study body (content lives insrc/projects/*.jsx)