Migrate site from Gatsby to Next.js (App Router)
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
Issue này chưa được đánh giá.
Mô tả
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.
- Ngôn ngữ chính
- JavaScript
- Star
- 3
- Fork
- 2
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của multei/web
-
dependencies todo :spiral_notepad:
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày
-
dependencies todo :spiral_notepad:
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
Maintainer thường phản hồi trong vòng 1 ngày
-
dependencies todo :spiral_notepad:
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
Maintainer thường phản hồi trong vòng 1 ngày
-
dependencies todo :spiral_notepad:
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
Maintainer thường phản hồi trong vòng 1 ngày
-
dependencies todo :spiral_notepad:
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
amponce/archive-movie-browser#354 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
saayam-for-all/webapp#1870 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Imageomics/OpenCite#66 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
chr15m/twiiit.com#20 ·
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
antropos17/Aegis#629 ·
Maintainer thường phản hồi trong vòng 4 ngày