mirror of
https://github.com/domfelipe/portfolio.git
synced 2026-08-07 07:36:48 +00:00
feat: portfolio bilíngue (PT/EN) — Next.js 16 + Tailwind v4
- Hero com terminal animado e identidade de engenheiro de agentes de IA - 10 projetos curados (destaques: Mika e Agentes de IA com métricas) - Skills, contato, dark mode, SEO/OG por locale - Rotas /pt e /en com redirect por Accept-Language
This commit is contained in:
commit
be348f70f6
32 changed files with 8631 additions and 0 deletions
40
README.md
Normal file
40
README.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Portfolio — Felipe Domingues
|
||||
|
||||
Portfólio pessoal bilíngue (PT/EN) — Next.js 16 + TypeScript + Tailwind CSS v4 + Framer Motion.
|
||||
|
||||
## Stack
|
||||
|
||||
- **Next.js 16** (App Router, SSG) + React 19
|
||||
- **Tailwind CSS v4** + dark mode (next-themes)
|
||||
- **Framer Motion** (scroll reveals, terminal animado, contadores)
|
||||
- **i18n** próprio: rotas `/pt` e `/en`, redirect por `Accept-Language`
|
||||
|
||||
## Comandos
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run dev # http://localhost:3000
|
||||
npm run build
|
||||
npm run lint
|
||||
```
|
||||
|
||||
## Deploy (Vercel)
|
||||
|
||||
1. Crie o repositório no GitHub e faça push:
|
||||
```sh
|
||||
git remote add origin git@github.com:domfelipe/portfolio.git
|
||||
git push -u origin main
|
||||
```
|
||||
2. No [Vercel](https://vercel.com/new), importe o repositório — framework detectado automaticamente (Next.js), sem config extra.
|
||||
3. Após o primeiro deploy, defina a URL final em `src/i18n/config.ts` (`SITE_URL`) ou via env `NEXT_PUBLIC_SITE_URL` para as meta tags canônicas/OG.
|
||||
|
||||
## Estrutura
|
||||
|
||||
```
|
||||
src/
|
||||
├── app/[locale]/ # layout + page (SSG por locale)
|
||||
├── components/ # Hero (terminal), Projects, Skills, Contact...
|
||||
├── data/ # projetos (repos, tags)
|
||||
├── i18n/ # config, dicionários pt/en, context
|
||||
└── proxy.ts # redirect / → /pt ou /en
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue