Skip to content

Repository files navigation

Carlos Neto LogoCarlos Neto Logo

Produção Nuxt 3.15 i18n PT/EN

Sobre o Projeto

Código que pensa, design que conversa.

Portfólios costumam ser currículos glorificados: foto, lista de skills e um formulário de contato. Quando o recrutador ou cliente precisa entender quem você é, a página não responde.

O Portfolio-CN é a minha vitrine digital pessoal, construída para transcender o conceito de currículo online. É a convergência entre o pensamento lógico do desenvolvedor e a sensibilidade estética do designer, apresentando projetos de alto impacto, habilidades técnicas consolidadas e uma identidade visual proprietária em uma narrativa guiada por animação.

Recrutadores e clientes decidem em segundos se vale a pena te conhecer. O Portfolio-CN transforma esses segundos em uma primeira impressão inesquecível. O que ele soma: identidade visual própria, storytelling com GSAP, multilíngue (PT/EN), dark & light mode e performance de elite com SSR, tudo em Nuxt 3.

Experimente: carlosnetodev.vercel.app · Conheça meus projetos

✨ O que o Projeto faz

O portfólio hoje:

Recurso O que resolve Status
Apresentação Profissional Narrativa de storytelling para conexão imediata ✅ Pronto
Showcase de Projetos Galeria interativa com 7 projetos, detalhes e links ✅ Pronto
Páginas de Projeto Detalhadas Galeria completa, stacks e contexto de cada projeto ✅ Pronto
Dark & Light Mode Adapta ao usuário com escuro como padrão ✅ Pronto
Internacionalização (i18n) Suporte completo para PT-BR e EN ✅ Pronto
Animações Premium Timelines GSAP e micro-interações com Motion ✅ Pronto
Responsividade Total Experiência impecável em qualquer dispositivo ✅ Pronto
SEO & Acessibilidade Otimizado para buscadores e leitores de tela ✅ Pronto
Analytics Integrado Monitoramento via GTM e Vercel Speed Insights ✅ Pronto
Download de Currículo Acesso direto ao PDF do currículo ✅ Pronto
Blog / Artigos Compartilhar conhecimento técnico 🗺️ Planejado
Integração com CMS Gerenciar projetos sem tocar no código 🗺️ Planejado
📋 Ver todos os recursos

Seções da página

  • Hero animado com termos rotativos (Designer Lógico & Dev. Criativo)
  • Portfólio com showcase de projetos
  • Sobre com narrativa e identidade visual
  • Serviços com diferenciais
  • Contato direto e FAQ

Projetos em destaque

  • Meu Maná: Bíblia digital de bolso (React Native, Expo, Supabase) com lojas App Store e Play Store
  • Vector Learn: Plataforma educacional de vetores com simuladores 3D
  • Enjoy Brasil: Experiência de viagem com dicas do dia
  • Inovetech, Dolce Amore, Gorango Admin e CRE 2026: sites e painéis administrativos

Experiência

  • Animações GSAP com scroll-trigger e micro-interações Motion
  • Dark & Light mode com persistência de preferência
  • Transições de página e layout (out-in)
  • Otimização de imagens com @nuxt/image (WebP + densidades)

🎬 Demonstração

Portfolio-CN em ação

Importante
O site abre em dark mode por padrão, com alternância para o modo claro. A versão em inglês fica disponível em /en. Para aproveitar as animações, mantenha o JavaScript habilitado: as transições GSAP dependem dele.

📦 Instalação

Pré-requisitos

Node.js >= 18
npm ou yarn

Instalação

git clone https://github.com/Carlos2505dev/webportfolio-Carlos.git

cd Portfolio-CN

npm install
# ou
yarn install

npm run dev

Abra:

http://localhost:2026

🚀 Primeiros Passos

1. Conheça a narrativa

Abra a página e percorra o Hero até Sobre para entender quem está por trás dos projetos.

2. Explore o portfólio

Navegue até Portfólio e escolha entre os 7 projetos, cada um abre uma página com galeria completa e stacks utilizadas.

3. Veja os serviços

Na seção Serviços, conheça as entregas disponíveis e os diferenciais de cada uma.

4. Entre em contato

Na seção Contato, envie uma mensagem direta ou baixe o currículo em PDF.

A partir daí:

Explorar o hero e a identidade
    ↓
Navegar pelo showcase de projetos
    ↓
Abrir páginas de projeto com galeria
    ↓
Conferir serviços e diferenciais
    ↓
Entrar em contato

🧠 Como Funciona

Um exemplo concreto. Os projetos são dados estáticos consumidos pela aplicação via localData/portfolio.js:

{
    id: 1,
    slug: 'meu-mana',
    name: 'portfolio.projects.1.name',
    stacks: [
        { logo: 'devicon:react', name: 'React.js / React Native' },
        { logo: 'logos:supabase-icon', name: 'Supabase' }
    ],
    app_store_url: 'https://apps.apple.com/br/app/meu-mana/id6756574963'
}

Os textos são resolvidos pelo i18n a partir dos arquivos de tradução, e cada página de projeto é gerada dinamicamente a partir do slug:

const route = useRoute()
const project = portfolio.find((p) => p.slug === route.params.slug)

O Nuxt 3 faz o SSR e a hidratação, enquanto o GSAP orquestra as animações quando a página está pronta:

flowchart LR
    U[Usuário] --> N[Nuxt 3 SSR]
    N --> P[Pages + Componentes Vue]
    P --> D[localData/portfolio.js]
    P --> I[i18n PT/EN]
    P --> G[GSAP + Motion]
    G --> A[Animações e micro-interações]
Loading
🏗️ Detalhes da arquitetura

Componentes

Componente Responsabilidade
pages/ Rotas baseadas em arquivos + projetos
components/ Componentes Vue reutilizáveis
layouts/ Templates estruturais das páginas
localData/portfolio.js Dados estáticos dos projetos
locales/ Traduções PT-BR e EN (i18n)
assets/scss Design system: variáveis e estilos globais
plugins/ Animações GSAP e integrações

Fluxo de uma animação na página

sequenceDiagram
    participant U as Usuário
    participant N as Nuxt 3
    participant C as Componente Vue
    participant G as GSAP

    U->>N: Acessa a página
    N->>N: Renderiza via SSR
    N->>C: Hidrata o componente
    C->>G: Registra timeline
    G-->>U: Animações scroll-trigger
Loading

Decisão: Nuxt 3 (SSR)

Nuxt 3 foi escolhido pela performance excepcional (SSR), SEO otimizado nativamente e estrutura robusta que permite escalar funcionalidades mantendo a agilidade do Vue.js.

Decisão: GSAP + Motion

O GSAP é usado para timelines complexas e scroll-triggered animations; a Motion entra nas micro-interações. Ambas as bibliotecas elevam a percepção de valor do site sem comprometer a fluidez.

🗂️ Estrutura do Projeto

Portfolio-CN/
├── assets/
│   ├── carlos-icons/
│   └── scss/
├── components/
├── layouts/
├── locales/
├── localData/
├── pages/
├── plugins/
├── public/
├── server/
├── services/
├── app.vue
├── i18n.config.ts
├── nuxt.config.js
├── package.json
└── tsconfig.json
📁 Explicação da estrutura
Caminho Objetivo
assets/scss Variáveis, tokens e estilos globais (SCSS)
assets/carlos-icons Coleção de ícones customizada
components/ Componentes Vue reutilizáveis
layouts/ Templates estruturais das páginas
locales/ Arquivos de tradução (pt.json, en.json)
localData/ Dados estáticos consumidos pela aplicação
pages/ Estrutura de rotas baseada em arquivos
plugins/ Plugins GSAP e configurações de runtime
public/ Ativos estáticos (imagens, PDF, favicon)
server/ Lógica de servidor e API routes
services/ Integrações externas e helpers

Arquitetura

O Portfolio-CN adota uma arquitetura em camadas, separando a interface da lógica de dados:

Camada Diretórios Responsabilidade
Apresentação pages, components, layouts Interface, seções e experiência do usuário
Domínio localData Dados dos projetos e regras de conteúdo
Estado services, Pinia stores Estado global e integrações
Contratos locales, i18n.config.ts Traduções e configuração de idiomas

Por que essa arquitetura?

  • Manutenibilidade: cada camada evolui de forma independente. Adicionar um projeto exige apenas um item em localData/portfolio.js.
  • Escalabilidade: novas seções e páginas podem ser adicionadas sem reestruturar o projeto como um todo.
  • Separação de responsabilidades: dados, traduções, animações e interface não se acoplam entre si.
  • Performance: SSR entrega conteúdo pronto ao primeiro paint, e o @nuxt/image otimiza WebP com densidades responsivas.

⚙️ Configurações Avançadas

🔧 Configurações do Nuxt
Configuração Onde definir Descrição Exemplo
devServer.port nuxt.config.js Porta do servidor de dev 2026
gtm.id nuxt.config.js Container ID do Google Tag Manager GTM-MVCQMF2
colorMode.preference nuxt.config.js Tema padrão (dark/light) dark
i18n.defaultLocale nuxt.config.js Idioma padrão pt
i18n.locales nuxt.config.js Idiomas disponíveis pt, en
🧪 Build e geração

Build de produção:

npm run build

Geração estática (SSG):

npm run generate

Preview do build:

npm run preview

Servidor de desenvolvimento:

npm run dev
📊 Benchmarks

Ambiente de referência:

CPU: Apple M3
RAM: 16 GB
Node.js: 18
Navegador: Chrome
Operação Média
Carregamento inicial da página 1,1 s
Hidratação SSR (Nuxt) 300 ms
Animações GSAP (scroll-trigger) 60 FPS
Transição entre páginas 40 ms

Os números acima são apenas uma referência do ambiente descrito e não representam uma garantia de performance.

📚 Documentação

Documento Descrição
README Visão geral
Auditoria de segurança Auditoria do projeto
llms.txt Resumo para LLMs
sitemap.xml Mapa do site
robots.txt Regras de crawlers

🤝 Contribuindo

Todo tipo de contribuição é bem-vinda: correção de bug, seção nova, tradução, documentação.

  1. Fork o projeto
  2. Crie sua Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a Branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

🐛 Reportando Problemas

Abra uma Issue contendo:

### Descrição

Explique o problema.

### Como reproduzir

1. ...
2. ...
3. ...

### Resultado esperado

...

### Ambiente

- OS:
- Navegador:
- Versão do Portfolio-CN:

🔒 Segurança

Não publique vulnerabilidades de segurança em Issues públicas.

Envie um relatório para:

carlosbezerrajr2007@gmail.com

❓ FAQ

O Portfolio-CN é gratuito?

Sim. A visualização do site é pública e gratuita.

Preciso criar uma conta para usar?

Não. É possível explorar todo o conteúdo sem cadastro.

Preciso instalar alguma coisa?

Não. O site roda direto no navegador, basta acessar https://carlosnetodev.vercel.app. Para aproveitar as animações, mantenha o JavaScript habilitado.

O site está disponível em outros idiomas?

Sim. Além do Português (padrão), há versão completa em Inglês disponível em /en.

Você aceita novos projetos?

Sim. Entre em contato pela seção Contato do site para discutir novos projetos, freelas e parcerias.

Por que Nuxt 3 e não outro framework?

A escolha foi fundamentada na necessidade de desempenho excepcional (SSR), SEO otimizado nativamente e uma estrutura robusta que permite escalar funcionalidades mantendo a agilidade do Vue.js, o equilíbrio perfeito entre velocidade de desenvolvimento e qualidade final do produto.

📜 Licença

Este é um projeto pessoal. Todos os direitos reservados, consulte o autor antes de reutilizar qualquer parte do código ou dos assets.

💙 Agradecimentos

Obrigado a cada cliente que confiou no meu trabalho, a cada visitante que explorou os projetos e a todos que enviaram feedback apontando o que faltava. Obrigado também às ferramentas open source que tornam este projeto possível: Nuxt, Vue, GSAP e todo o ecossistema.

Carlos Neto Logo Carlos Neto Logo

Transforme ideias complexas em experiências digitais únicas.

Produção Nuxt 3.15

GitHubAplicação

⬆ Voltar ao topo

About

Código-fonte do meu site, construído com tecnologias modernas do front-end, servindo tanto como vitrine de trabalhos quanto como demonstração das stacks que domino.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages