Site pessoal e currículo online com suporte a múltiplos idiomas (Português e Inglês), tema claro/escuro e impressão otimizada em PDF. Construído com tecnologias modernas e foco em performance e acessibilidade.
- 🌍 Internacionalização (i18n) - Suporte para Português (BR) e Inglês
- 🌙 Dark Mode - Alternância entre tema claro e escuro com persistência
- 🖨️ Impressão PDF - Layout otimizado para impressão via
Ctrl+P - 📱 Responsivo - Layout adaptável para todos os tamanhos de tela
- ⚡ Performance - Build otimizado com Bun e Tailwind CSS
- ♿ Acessibilidade - Semântica HTML correta e suporte a leitores de tela
- 🔍 SEO - Meta tags, Open Graph e Schema.org implementados
- 🧹 Linting - Biome para formatação e análise de código
- Runtime/Server: Bun (v1.2.3+ com routes API)
- Bundler: Bun HTML bundler (bundling nativo de HTML, JS, CSS)
- Linguagem: TypeScript
- Estilização: Tailwind CSS v4
- Reatividade: Alpine.js
- Linter/Formatter: Biome
- Dados: YAML (suporte nativo do Bun)
Este projeto utiliza recursos modernos do Bun:
- 📦 HTML Imports: Importação de arquivos HTML como módulos
- 🔄 YAML Imports: Carregamento nativo de arquivos YAML
- 🌐 HTTP Server:
Bun.serve()com API de rotas - 🔥 Hot Reload: Atualização automática em desenvolvimento
- 📄 Static Bundling: Geração de site estático para GitHub Pages
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions para deploy
├── data/ # Dados do currículo em YAML
│ ├── en/ # Dados em Inglês
│ │ ├── education.yaml
│ │ ├── experience.yaml
│ │ ├── profile.yaml
│ │ ├── skills.yaml
│ │ └── ui.yaml
│ └── pt-BR/ # Dados em Português
│ ├── education.yaml
│ ├── experience.yaml
│ ├── profile.yaml
│ ├── skills.yaml
│ └── ui.yaml
├── src/ # Código fonte
│ ├── server.ts # Servidor HTTP Bun (dev mode)
│ ├── index.ts # Lógica Alpine.js + imports
│ ├── global.css # Estilos Tailwind CSS v4
│ ├── pages/ # Páginas HTML
│ │ ├── index.html # Página PT-BR
│ │ └── en/
│ │ └── index.html # Página EN
│ └── types/ # Definições de tipos TypeScript
│ └── types.d.ts
├── biome.json # Configuração do linter
├── bunfig.toml # Configuração do Bun
├── tsconfig.json # Configuração TypeScript
└── package.json
- Bun (v1.0+)
# Clone o repositório
git clone https://github.com/joaovjo/joaovjo.github.io.git
cd joaovjo.github.io
# Instale as dependências
bun install# Inicia o servidor de desenvolvimento com hot reload
bun run devO site estará disponível em:
- Português:
http://localhost:3000/ - Inglês:
http://localhost:3000/en/ - Health Check:
http://localhost:3000/api/health
bun run dev # Servidor de desenvolvimento com hot reload
bun run start # Servidor de produção
bun run build # Build completo (server + static)
bun run build:static # Build apenas site estático
bun run build:server # Build apenas servidor
bun run lint # Verificar código com Biome
bun run lint:fix # Corrigir problemas automaticamente
bun run typecheck # Verificar tipos TypeScript# Gera o build de produção
bun run buildOs arquivos de produção serão gerados na pasta dist/.
Os dados do currículo são armazenados em arquivos YAML na pasta data/. Para personalizar:
- Edite os arquivos em
data/pt-BR/para Português - Edite os arquivos em
data/en/para Inglês
O projeto usa variáveis CSS para tematização. Os temas claro e escuro são gerenciados via Tailwind CSS.
O site é hospedado no GitHub Pages e configurado para o domínio personalizado joaovjo.com.br.
O deploy é feito automaticamente via GitHub Actions quando há push no branch main:
- Instala dependências com Bun
- Compila TypeScript e processa Tailwind CSS
- Gera arquivos estáticos na pasta
dist/ - Faz deploy no GitHub Pages
# Gera o build de produção
bun run buildOs arquivos serão gerados em dist/.
Este projeto é de uso pessoal. Sinta-se à vontade para usar como inspiração para seu próprio portfólio.
- Email: [email protected]
- LinkedIn: joaovitordejesusoliveira
- GitHub: @joaovjo