Migrate site from Gatsby to Next.js (App Router)
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Context
The Multei! site (@multei/web) runs on Gatsby 2 (React 17, legacy plugins). That stack is outdated and friction-heavy locally (modern Node, sharp/ARM, OpenSSL/Webpack, abandoned plugins such as gatsby-plugin-prefetch-google-fonts).
Goal
Migrate the site to the latest stable Next.js (16.x line, App Router), preserving current behavior and content, with modern DX and deploy.
Motivation
- Gatsby 2 and related dependencies do not track current Node LTS or Apple Silicon without workarounds.
- The Gatsby ecosystem is relatively stagnant; Next.js is the market default for React sites on Vercel.
- App Router, Server Components, Turbopack, and current tooling improve performance, DX, and maintainability.
- Easier alignment with Vercel auth, APIs, env vars, and CI.
Suggested scope
Discovery
- Inventory routes (
src/pages), layouts, components, and critical dependencies (Material UI v4, Recoil,muy/metax, maps, images). - Map Gatsby plugins to equivalents (SEO/helmet, sitemap, manifest/PWA, sharp/images, fonts, Material UI).
- Define target: Next.js 16 (App Router) + React 19, TypeScript (in this migration or as a follow-up).
Migration
- Scaffold Next.js and
app/structure (layouts, pages, Metadata API). - Port pages and components; replace
gatsby-image/ asset GraphQL withnext/image(or equivalent). - Replace
react-helmet/ metax with Next Metadata / Open Graph. - Review global state (Recoil) and hooks; align with Server/Client Component patterns.
- Upgrade or replace Material UI v4 (evaluate MUI v6/v7 or the current design system).
- Fonts: replace the prefetch plugin with
next/font. - Configure sitemap, robots, and PWA/manifest as needed.
- Tests: migrate Jest/Cypress to the new entrypoint; smoke E2E on main routes.
Delivery
-
dev/build/startscripts, env vars, and deploy (Vercel/Netlify) equivalent to today’s flow. - Remove Gatsby and orphaned dependencies; document how to run the project.
- Cutover plan (preview → production) and rollback.
Out of scope (for now)
- Broad visual redesign (except what the stack change requires).
- Large business-domain refactors unrelated to the migration.
Acceptance criteria
- Site runs on current Node LTS without legacy workarounds (
openssl-legacy-provider,sharphacks, etc.). - Main routes and flows match the current Gatsby site.
- Production build and preview deployables work.
- Critical tests (unit/E2E) are green on the new stack.
- README updated with development instructions.
Notes
- When starting implementation, pin the latest stable Next.js available at that time (today: 16.2.x; evaluate 16.3 once out of preview).
- Prefer small incremental PRs (scaffold → pages → assets/SEO → cleanup).
- Related: hosting move in #416.
- Lenguaje dominante
- JavaScript
- Estrellas
- 3
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de multei/web
-
dependencies todo :spiral_notepad:
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
dependencies todo :spiral_notepad:
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
dependencies todo :spiral_notepad:
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
-
dependencies todo :spiral_notepad:
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
-
dependencies todo :spiral_notepad:
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de multei/web
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Mend: dependency security vulnerability untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100