Skip to content

xinnaider/portfolio

Repository files navigation

jfernando.portfolio

Portfólio pessoal de José Fernando Gomes Marcial. Desenvolvedor Full Stack.

Stack:

  • Next.js 14 (App Router)
  • TypeScript
  • Tailwind CSS v4
  • Geist + Geist Mono via geist
  • Motion (motion/react) para microinterações
  • Phosphor Icons

Rodar localmente

npm install
npm run dev

Abre em http://localhost:3000.

Estrutura

app/
  layout.tsx        # raiz, fontes, metadata
  page.tsx          # composição das seções
  globals.css       # tokens Tailwind v4 + reset
components/
  language-provider.tsx
  nav.tsx
  footer.tsx
  reveal.tsx        # wrapper de motion com prefers-reduced-motion
  sections/
    hero.tsx
    about.tsx
    experience.tsx
    projects.tsx
    outcomes.tsx
    stack.tsx
    systems.tsx
    education.tsx
    contact.tsx
content/
  copy.ts           # strings PT-BR + EN

Idiomas

Toggle PT / EN no canto direito do nav. Default: PT-BR. Estado vive em LanguageProvider (React Context).

Tema

Light mode travado para a página inteira. Accent: amber-700. Fundo: stone-50. Sem dark mode (decisão de Page Theme Lock).

Build

npm run build
npm run start

Docker

Dev com hot reload

docker compose -f docker-compose.dev.yml up

Sobe node:20-alpine com bind-mount do código. Acesse http://localhost:3000.

Produção (VPS)

O docker-compose.yml sobe apenas o app Next.js em 127.0.0.1:3000. O nginx do host faz o proxy para HTTPS.

docker compose pull
docker compose up -d

Deploy automático via GitHub Actions a cada push em master: build da imagem ghcr.io/xinnaider/portfolio:latest, push e docker compose pull && up -d na VPS.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages