Personal portfolio application built with React + TypeScript.
It presents projects, skills, certifications, contact information, and professional experience with bilingual support (pt and en).
- Node.js 20+
- npm 10+
-
Install dependencies:
npm install
-
Run development server:
npm run dev
-
Open Vite local URL (default
http://localhost:5173).
# Build (TypeScript + Vite)
npm run build
# Lint
npm run lint
# Preview production build
npm run preview- Framework: React 18
- Language: TypeScript
- Build Tool: Vite
- Styling: TailwindCSS
- Routing: React Router
- Localization: i18next + react-i18next
- Animation: Motion
- Deployment: Vercel
| Path | Purpose |
|---|---|
src/components/ |
Page sections and reusable UI blocks |
src/models/ |
Typed content models (Project, SkillSet, ExperienceItem, etc.) |
src/locales/ |
Translation dictionaries (en and pt) |
src/assets/ |
Images for profile, projects, and certifications |
src/constants/ |
Shared constants and static labels |
public/ |
Public static assets |
- Edit text content in
src/locales/en/translation.jsonandsrc/locales/pt/translation.json. - Keep translation keys synchronized across both locale files.
- Update images in
src/assets/and keep component references consistent. - Update model-driven content in
src/models/when adding projects, skills, or certifications.
- Keep changes aligned with current folder organization.
- Prefer small, focused pull requests.
- Validate with
npm run lintandnpm run buildbefore opening a PR.
