Personal website and portfolio for Lucas Cardoso Medeiros — Senior Frontend Engineer with 8+ years of experience building high-performance web applications.
- Framework: Next.js 16 (App Router, static export)
- Language: TypeScript (strict mode)
- Styling: Tailwind CSS v4
- Animations: Framer Motion
- i18n: next-intl — English and Portuguese
- Deployment: GitHub Actions → FTPS
| Route | Description |
|---|---|
/en /pt |
Home — hero, highlights, contact CTA |
/en/about /pt/about |
Bio, skills, career timeline |
/en/projects /pt/projects |
Portfolio showcase |
/en/blog /pt/blog |
Technical blog |
/en/resume /pt/resume |
Web resume + PDF download |
/en/contact /pt/contact |
Contact form |
- Node.js 20+
- npm
npm installnpm run devOpen http://localhost:3000.
npm run buildGenerates a static out/ directory ready for deployment.
npm run lint # Run ESLint
npx tsc --noEmit # Type-check without buildingsrc/
├── app/
│ ├── [locale]/ # Locale-scoped pages (en, pt)
│ │ ├── layout.tsx # Locale layout with next-intl provider
│ │ ├── page.tsx # Home
│ │ ├── about/
│ │ ├── projects/
│ │ ├── blog/
│ │ ├── resume/
│ │ └── contact/
│ ├── layout.tsx # Root layout
│ └── page.tsx # Root redirect (detects browser language)
├── components/
│ ├── ui/ # Reusable primitives
│ ├── layout/ # Header, Footer, Navigation
│ └── sections/ # Page-specific sections
├── i18n/ # next-intl config (routing, navigation)
└── lib/ # Utilities (cn, etc.)
messages/
├── en.json # English translations
└── pt.json # Portuguese translations
The site is statically exported and deployed via FTPS on every push to main.
The GitHub Actions workflow (.github/workflows/deploy.yml) requires these repository secrets:
| Secret | Description |
|---|---|
FTP_SERVER |
FTP host |
FTP_USERNAME |
FTP username |
FTP_PASSWORD |
FTP password |
All rights reserved.