This guide explains how to update the portfolio content without changing the component structure.
In most cases, content edits should happen in:
src/data/content.js
The file contains the structured content used across the page, including:
- navigation labels
- hero headline, rotating words, supporting copy, and CTAs
- about section copy and highlight cards
- approach principles
- architecture branch content
- work entries, metrics, and tags
- contact email, social links, and CTA labels
- footer links and supporting text
If you want to change wording, emphasis, labels, or contact data, start with src/data/content.js.
Do not begin by editing JSX unless one of these is true:
- you need a new visual block
- you need a new interaction
- the current data structure is no longer enough
- Open
src/data/content.js - Find the section object that matches the part of the page you want to change
- Edit the text values only
- Run the app locally
- Check the section on desktop and mobile
Typical safe changes:
- update a hero CTA label
- change the email address
- replace a work card title
- adjust architecture chips
- refine supporting copy in About
Changes that may require component work:
- adding a new field that the component does not render yet
- changing the number or layout of visual cards
- adding new animation logic
Some strings are intentionally local to components because they are:
- decorative mockup labels
- technical helper labels inside fake browser/mockup UI
- implementation-only labels that are not part of the real product copy
That keeps content.js focused on real editable content instead of every visible string in the repository.
For simple edits:
npm run dev- review the changed section visually
Before shipping broader content changes:
npm run format:checknpm run lintnpm run test:smokenpm run build
- keep labels concise
- avoid breaking mobile layouts with unnecessarily long copy
- preserve the tone already established in the project
- treat CTA text as action-oriented, not generic filler
- when changing structured lists, keep data shape consistent with nearby items