Skip to content

feat: rebuild portfolio with Next.js 16, new design and i18n#2

Draft
ribeirogab wants to merge 20 commits intomainfrom
feat/new-portfolio-migration
Draft

feat: rebuild portfolio with Next.js 16, new design and i18n#2
ribeirogab wants to merge 20 commits intomainfrom
feat/new-portfolio-migration

Conversation

@ribeirogab
Copy link
Copy Markdown
Owner

@ribeirogab ribeirogab commented Mar 15, 2026

Rebuild completo do portfólio com nova stack, design e funcionalidades.

  • Upgrade de stack: Next.js 14 → 16, React 18 → 19, Tailwind CSS v3 → v4
  • Novo sistema de i18n com rotas [locale] (EN/PT), middleware de detecção de idioma e language toggle na navbar
  • Novo layout com componentes Magic UI (blur-fade, flickering-grid, dock) e shadcn/ui
  • Galeria de fotos com layout masonry (CSS columns) entre About e Work, com fotos do Instagram
  • Página dedicada de projetos em /[locale]/projects com grid de cards
  • Seção de projetos na home limitada a 4 itens com link "Ver todos" (oculta quando vazia)
  • 16 skills com ícones SVG oficiais do Simple Icons: Node.js, TypeScript, AWS, Cloudflare, Docker, Terraform, PostgreSQL, MySQL, MongoDB, DynamoDB, Redis, NestJS, React, Next.js, PHP, Claude Code
  • Atualização do work experience: adição da Flavia Nasser (Lead Software Engineer), atualização da Goomer (end date fev/2026), remoção da Zunix
  • Seção de contato com email g@gabrielribeiro.work no lugar do Twitter
  • Adição do Instagram (gbr.osr) nos social links da navbar
  • Remoção do blog, hackathons e dependências de MDX/Content Collections
  • Hero responsivo com foto ao lado do greeting em mobile
  • OpenGraph images dinâmicas por locale
  • Security headers (X-Frame-Options, CSP, Referrer-Policy)

Upgrade core dependencies and configs:
- Next.js 14 → 16.1.1, React 18 → 19, Tailwind v3 → v4
- Add Content Collections for MDX blog support
- Replace Framer Motion with Motion v12
- Add security headers in next.config.mjs
- Update PostCSS to use @tailwindcss/postcss
- Remove Prettier, Knip, and old ESLint configs
Remove files replaced by the new portfolio structure:
- Old [lang] pages and section components
- Old i18n system (locale-detector, dictionary types)
- Deprecated configs (Prettier, Knip, Tailwind v3)
- Unused components (resume-card, constants)
- Add MDX blog with 7 posts and Content Collections
- Add new section components (work, projects, hackathons, contact)
- Add Magic UI components (flickering-grid, blur-fade, dock)
- Add shadcn/ui accordion and SVG skill icons
- Add timeline component for hackathons
- Add MDX components (code-block, media-container)
- Add custom fonts for OG images
- Update globals.css to Tailwind v4 with OKLCh colors
Add resume data with personal info, work experience,
education, example projects, and example hackathons.
- Add [locale] dynamic routing (en, pt)
- Add middleware for locale detection (Accept-Language + cookie)
- Add language toggle component in navbar
- Create EN and PT dictionaries with full resume translations
- Add locale-aware links and hreflang metadata
- Move all pages under [locale] segment
- Blog posts stay in English, UI chrome is translated
Change contact CTA to g@gabrielribeiro.work email link.
Add 16 skills with SVG icons in correct order:
Node.js, TypeScript, AWS, Cloudflare, Docker, Terraform,
PostgreSQL, MySQL, MongoDB, DynamoDB, Redis, NestJS,
React, Next.js, PHP, Claude Code.
- Remove hackathons section from home page
- Remove hackathon data from EN/PT dictionaries
- Remove HackathonEntry type from dictionary types
- Add extra spacing between projects and contact sections
Replace placeholder SVGs with real brand logos from Simple Icons
for AWS, MySQL, MongoDB, Redis, and DynamoDB.
Update all 14 SVG icons with exact paths from Simple Icons:
Node.js, TypeScript, AWS, Docker, PostgreSQL, MySQL, MongoDB,
Redis, DynamoDB, NestJS, Cloudflare, PHP, Terraform, Claude.
- Create /[locale]/projects page showing all projects
- Limit home page to 4 projects with "View all" link
- Remove hackathons section component and timeline
- Add viewAll, pageTitle, pageDescription to i18n dictionaries
- Remove blog pages, MDX content, and content-collections
- Remove blog dependencies (shiki, rehype-pretty-code, remark-gfm, etc.)
- Remove blog strings from i18n dictionaries and types
- Replace blog icon in navbar with CodeXml icon linking to /projects
- Conditionally render projects section on home page
- Conditionally show projects icon in navbar
- Empty projects array in EN/PT dictionaries
- Projects will auto-appear when data is added
Add Instagram icon and link (instagram.com/gbr.osr) to
contact social links, visible in the navbar dock.
CSS columns-based masonry gallery between About and Work sections.
Hidden when gallery array is empty, auto-appears when photos are added.
Includes 8 placeholder photos for preview.
Download 5 most recent photos from Instagram profile and
update gallery data with proper filenames and descriptions.
- Add Flavia Nasser as current role (Lead Software Engineer)
- Update Goomer end date to Feb 2026
- Remove Zunix entry
- Update summary in EN/PT dictionaries
@ribeirogab ribeirogab added the enhancement New feature or request label Mar 15, 2026
@ribeirogab ribeirogab self-assigned this Mar 15, 2026
@ribeirogab ribeirogab added the enhancement New feature or request label Mar 15, 2026
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
portfolio Ready Ready Preview, Comment Mar 15, 2026 1:30pm

@ribeirogab ribeirogab changed the title WIP: Temporary PR Title feat: rebuild portfolio with Next.js 16, new design and i18n Mar 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant