‹ Reports
The Dispatch

OSS Report: vercel/next.js


Next.js Development Faces Challenges with Hydration Errors and Middleware Inconsistencies

Next.js, a leading React framework developed by Vercel, is designed for building full-stack web applications with optimized performance. Recent activities indicate ongoing issues with hydration errors and middleware inconsistencies, impacting the stability of applications using the framework.

Recent Activity

Recent issues highlight significant challenges in routing and middleware functionality, with recurring themes around hydration errors (#70795) and inconsistencies in caching and state management between development and production environments. Issues such as #70781, concerning server actions losing context, suggest potential vulnerabilities in state management. The telemetry API causing build hangs (#70758) indicates performance bottlenecks that could disrupt development workflows.

Team Members and Contributions

  1. Tim Neutkens (timneutkens)

    • Managed updates related to turbopack optimizations and bug fixes.
    • Oversaw backporting of critical features for stability.
  2. Sebastian Markbåge (sebmarkbage)

    • Refactored WorkStore for middleware support.
    • Implemented validation improvements for app segment parsing.
  3. Hendrik Liebau (unstubbable)

    • Enhanced server action handling and debugging features.
    • Improved error handling and metadata management.
  4. Wyatt Johnson (wyattjoh)

    • Worked on decoupling cookies from redirect errors.
    • Improved error handling within request lifecycle.
  5. Zack Tanner (ztanner)

    • Addressed client router cache management issues.
    • Contributed to tests ensuring robustness against flaky behavior.
  6. Benjamin Woodruff (bgw)

    • Improved performance in turbopack modules.
    • Implemented task input handling for ResolvedVc.
  7. Steven (styfle)

    • Updated image optimization configurations.
    • Fixed undefined configurations in image management.
  8. Jiachi Liu (huozhi)

    • Improved dynamic API cases and fixed metadata loss issues.
    • Backported features for compatibility with older versions.
  9. Josh Story (gnoff)

    • Enhanced dynamic rendering features around metadata management.
    • Improved error handling in server components.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 50 33 75 0 1
14 Days 84 63 143 1 1
30 Days 212 167 422 2 1
All Time 21312 18428 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Vercel Release Bot 36 29/4/19 94 144 149181
Janka Uryga 7 3/2/0 23 272 42766
Niklas Mischkulnig 7 4/2/0 28 368 38305
Josh Story 4 9/9/0 16 447 20514
Donny/강동윤 9 9/4/3 37 170 15949
Tobias Koppers 10 5/3/0 58 190 12718
Jiwon Choi 12 3/0/0 83 484 12461
JJ Kasper 10 8/7/0 33 110 9057
Jiachi Liu 9 10/10/0 41 284 9008
Benjamin Woodruff 10 7/5/0 31 344 7332
Sebastian "Sebbie" Silbermann 8 16/16/0 28 151 5892
Wyatt Johnson 7 7/6/1 16 143 5199
Zack Tanner 13 19/16/1 29 103 4148
Hendrik Liebau 4 8/8/0 14 129 3360
Will Binns-Smith 4 2/0/0 6 258 3309
Sebastian Markbåge 1 14/11/0 12 72 3179
Sam Ko 7 2/2/0 17 80 2892
LichuAcu 3 0/0/0 11 9 2830
Tim Neutkens 8 7/7/0 27 81 2823
Shu Ding 3 4/4/0 8 113 2568
hrmny 4 0/0/0 6 61 2378
Steven 3 5/4/0 12 39 2034
lichu acuña 3 0/0/0 3 24 1473
Rich Haines 1 0/0/0 1 3 1110
Mark Knichel 2 2/1/0 5 21 983
Lee Robinson 4 0/0/0 6 10 812
PapatMayuri 2 2/0/0 4 24 763
SamPhillemon 5 1/1/0 5 58 682
Alexander Lyon 6 4/0/0 8 16 647
Abhishek Mehandiratta 4 2/0/1 17 40 600
Luca Forstner 1 0/0/0 1 16 518
Delba de Oliveira 4 0/0/0 7 10 471
Kalle Ahlström 1 0/0/0 1 5 312
Vaibhav Sharma 1 0/0/0 1 7 298
Timon Jurschitsch 1 0/0/0 1 9 270
Archana Agivale 1 0/0/0 1 8 264
coderfin 1 0/0/0 1 1 87
Victor Berchet 2 0/0/0 2 3 58
Alvar Lagerlöf 1 0/0/0 1 3 57
방성범 (Bang Seongbeom) 1 0/0/0 1 1 38
マルコメ 3 3/3/0 6 7 35
Joseph 1 1/1/0 1 2 26
Develliot 1 0/0/0 1 1 25
Ivan Torres 1 0/0/0 1 3 19
Zach Hawtof 1 0/0/0 1 4 18
Chandan Pasunoori 1 0/0/0 1 1 18
Ankur Dwivedi 1 0/0/0 1 2 17
Niaz Morshed Nayeem 1 0/0/0 1 5 13
AnaTofuZ 1 0/0/0 1 1 12
Kutsan Kaplan 1 0/0/0 1 3 11
TN (whatisagi) 1 1/0/0 1 1 10
raeyoung.kim 2 0/0/0 2 1 8
jaredhan 1 0/0/0 1 2 7
Ali Othmani 2 0/0/0 2 2 6
sommeeeR 2 0/0/0 2 2 6
tranvanhieu01012002 1 0/0/0 1 3 6
Manuel Muñoz Solera 1 0/0/0 1 1 5
Erwann 1 0/0/0 1 2 5
Bryan Lee 1 0/0/0 1 1 4
Joe_Z 1 0/0/0 1 1 4
Tomoya Tanaka 1 0/0/0 1 1 4
Kid 1 0/0/0 1 2 4
Terry Sutton 1 0/0/0 1 2 4
Jonathan Summers-Muir 1 0/0/0 1 1 4
루밀LuMir 1 0/0/0 1 1 4
Jordy Fontoura 1 0/0/0 1 1 4
Tim Fish 1 0/0/0 1 3 3
Luca Ziliani 1 1/1/0 1 1 2
Poul Poulsen 1 0/0/0 1 1 2
Osarumense Idukpaye 1 0/0/0 1 1 2
baeharam 1 0/0/0 1 1 2
ebCrypto 1 0/0/0 1 1 2
Ryan Feigenbaum 1 0/0/0 1 1 2
Bobbie Soedirgo 1 0/0/0 1 1 2
Angel P. 1 0/0/0 1 1 2
Jean Lucas 1 1/1/0 1 1 2
Willem-Jaap 1 0/0/0 1 1 2
Nakamura Ayahito 1 1/1/0 1 1 2
Florian Goße 1 0/0/0 1 1 2
Jerico 1 0/0/0 1 1 2
Jam Balaya 1 0/0/0 1 1 2
Alessio Maffeis 1 0/0/0 1 1 2
Hirotomo Yamada 1 0/0/0 1 1 2
Lei 1 0/0/0 1 1 1
Cannon Lock 1 0/0/0 1 1 1
Joshua Prodahl (xjpro) 0 1/0/0 0 0 0
None (ytori) 0 1/0/0 0 0 0
Ivica Batinić (isBatak) 0 1/0/0 0 0 0
Matvey (ronanru) 0 1/0/0 0 0 0
Kyle Tsang (kyletsang) 0 1/0/0 0 0 0
Martin Joakim Ulstein (mjulstein) 0 1/0/0 0 0 0
Joel Watson (watsonian) 0 1/0/0 0 0 0
Martin Sione (martinsione) 0 1/0/0 0 0 0
Lorenzo Galassi (LorenzoGalassi) 0 1/0/0 0 0 0
Daniel (daniel-statsig) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Next.js repository on GitHub has seen a significant amount of recent activity, with 3,383 open issues and pull requests, indicating a vibrant development environment. Among the recent issues, there are notable patterns concerning bugs related to routing, middleware functionality, and performance optimizations. Several issues highlight inconsistencies in behavior between development and production environments, particularly regarding caching and state management.

A recurring theme is the interaction between server actions and client components, which has led to various hydration errors and unexpected behaviors during navigation. Additionally, issues related to cookie handling in middleware and server actions suggest potential vulnerabilities or misconfigurations that could affect user sessions.

Issue Details

Here are some of the most recently created and updated issues:

  1. Issue #70805: React Spring on development server not working on initial load

    • Priority: Bug
    • Status: Open
    • Created: 0 days ago
    • Update: N/A
  2. Issue #70795: Hydration error when using Turbopack with dynamically imported named exports

    • Priority: Bug
    • Status: Open
    • Created: 0 days ago
    • Update: N/A
  3. Issue #70789: Headers function get method only return full referrer URL on page refresh

    • Priority: Bug
    • Status: Open
    • Created: 0 days ago
    • Update: N/A
  4. Issue #70781: Issue with passing server actions through React Context

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Update: N/A
  5. Issue #70758: Build hangs indefinitely because of telemetry API

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Update: N/A
  6. Issue #70756: Links not working in only some components

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Update: N/A
  7. Issue #70754: Output chunks change when build stays the same

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Update: N/A
  8. Issue #70752: Bug when using "style jsx" to add custom color in nextjs 15

    • Priority: Bug
    • Status: Open
    • Created: 1 day ago
    • Update: N/A
  9. Issue #70751: Redirect action to protected routes without authorization results in URL change

    • Priority: Bug
    • Status: Open
    • Created: 2 days ago
    • Update: Edited
  10. Issue #70742: Docs: Page not jumping properly after Google Translate

    • Priority: Documentation Issue
    • Status: Open
    • Created: 2 days ago
    • Update: N/A

Analysis of Notable Issues

  • The issues related to hydration errors (#70795) indicate a significant problem with the integration of Turbopack and dynamic imports, which could affect user experience by breaking expected component behavior.
  • The problem with headers returning incorrect values (#70789) suggests a potential oversight in how Next.js handles SPA transitions versus full page reloads, which could lead to inconsistent application states.
  • The issue regarding server actions losing context when passed through React Context (#70781) raises concerns about data integrity across different components, potentially affecting state management strategies.
  • The telemetry API causing builds to hang (#70758) points to performance bottlenecks that could disrupt the development workflow.
  • The link issue (#70756) highlights potential problems with component rendering logic that may confuse users unfamiliar with how Next.js manages links.

These issues collectively reflect ongoing challenges in maintaining robust state management and routing consistency within the Next.js framework, particularly as it evolves with new features like Turbopack.

Important Notes

The analysis reveals that while the community remains active in reporting bugs and suggesting improvements, there are systemic issues that need addressing to enhance the overall stability and performance of Next.js applications. The presence of multiple unresolved bugs indicates a need for focused efforts on testing and validation as new features are introduced.

Report On: Fetch pull requests



Overview

The analysis of the provided pull requests (PRs) for the Next.js project reveals a vibrant and active development environment. The PRs cover a wide range of topics, including feature enhancements, bug fixes, documentation updates, and infrastructure improvements. The involvement of various contributors, including both Vercel team members and community contributors, highlights the collaborative nature of the project.

Summary of Pull Requests

Open Pull Requests

  • PR #70814: Implements TaskInput for ResolvedVc, enhancing the functionality of ResolvedVc in the context of turbopack tasks.
  • PR #70813: Backports a fix for handling undefined images.localPatterns in images-manifest.json, addressing an issue in image configuration.
  • PR #70812: Fixes method resolution in TaskInput macro for ResolvedVc, ensuring correct trait method usage.
  • PR #70811: Ensures write stream is always ended on shutdown in dev mode, preventing incomplete trace writes.
  • PR #70810: Modifies after() callbacks to run in the same context as the outer function, improving consistency in middleware execution.
  • PR #70809: Removes unnecessary WorkStore usage around unstable_cache in Pages, simplifying cache handling.
  • PR #70806: Moves AfterContext to WorkStore, supporting consistent after() execution across different contexts.
  • PR #70804: Updates GA integration to support standalone usage of sendGAEvent, enhancing Google Analytics configuration flexibility.
  • PR #70803: Updates Rust toolchain to nightly-2024-10-04, ensuring compatibility with the latest Rust features and improvements.
  • PR #70801: Adds missing JS code blocks to installation documentation, improving clarity and completeness of setup instructions.
  • PR #70800: Upgrades React to a newer release candidate version, incorporating upstream changes and improvements.

Closed Pull Requests

  • PR #70798: Adds support for collectibles in the new backend of turbopack, enhancing task management capabilities.
  • PR #70793: Tests deployment tests on forks, ensuring consistent behavior across different environments.
  • PR #70791: Updates Turbopack production test manifest, reflecting recent changes and ensuring accurate testing coverage.
  • PR #70790: Updates Turbopack development test manifest, incorporating new tests and adjustments based on recent developments.

Analysis of Pull Requests

The PRs indicate a strong focus on enhancing the functionality and performance of Next.js through various improvements. The introduction of features like TaskInput for ResolvedVc and support for collectibles in turbopack's new backend suggests ongoing efforts to refine the underlying architecture and tooling.

Bug fixes related to image handling (images.localPatterns) and middleware execution (after() callbacks) demonstrate responsiveness to community feedback and issues. The backporting of fixes and updates (e.g., GA integration changes) reflects a commitment to maintaining stability and usability across different versions.

Documentation updates (e.g., adding missing JS code blocks) highlight an emphasis on improving developer experience by providing clearer guidance and reducing setup friction.

The upgrade of dependencies (e.g., Rust toolchain update) and tools (e.g., React upgrade) indicates an effort to leverage the latest advancements in technology for better performance and capabilities.

Overall, the PRs reflect a well-managed project with active contributions from both core team members and the community. The focus on both feature development and maintenance ensures that Next.js remains a leading choice for modern web development.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Contributions

  1. Sebastian Markbåge (sebmarkbage)

    • Recent Activities:
    • Refactored the WorkStore to improve structure for middleware support.
    • Implemented stricter validation for app segment configuration parsing.
    • Fixed issues related to accessing Request Store in prerendering.
    • Worked on dynamic IO features, ensuring compatibility with various contexts.
  2. Hendrik Liebau (unstubbable)

    • Recent Activities:
    • Resolved warnings related to unique "key" props in component trees.
    • Enhanced server action handling and introduced new debugging features for server components.
    • Contributed to improvements in error handling and metadata management.
  3. Wyatt Johnson (wyattjoh)

    • Recent Activities:
    • Enhanced strictness in app segment configuration parsing.
    • Worked on decoupling cookies and action state from redirect errors.
    • Contributed to improvements in error handling within the request lifecycle.
  4. Zack Tanner (ztanner)

    • Recent Activities:
    • Implemented fixes for client router cache management during server actions.
    • Addressed issues with the locking mechanism in the incremental cache.
    • Contributed to tests ensuring robustness against flaky behavior.
  5. Benjamin Woodruff (bgw)

    • Recent Activities:
    • Cleaned up unused code and improved performance in turbopack-related modules.
    • Worked on implementing task input handling for ResolvedVc.
  6. Steven (styfle)

    • Recent Activities:
    • Updated image optimization configurations to include new patterns.
    • Fixed issues related to undefined configurations in image management.
  7. Jiachi Liu (huozhi)

    • Recent Activities:
    • Improved dynamic API cases and fixed client reference access issues causing metadata loss.
    • Backported features from the main branch to maintain compatibility with older versions.
  8. Josh Story (gnoff)

    • Recent Activities:
    • Enhanced support for dynamic rendering features, particularly around metadata and viewport management.
    • Worked on improving error handling in server components.
  9. Tim Neutkens (timneutkens)

    • Recent Activities:
    • Managed various updates related to turbopack, including optimizations and bug fixes.
    • Oversaw backporting of critical features to ensure stability across versions.

Patterns and Themes

  • Focus on Performance: Many recent commits emphasize performance improvements, particularly around caching mechanisms, tree shaking, and dynamic rendering optimizations.
  • Error Handling Enhancements: A significant number of contributions are dedicated to improving error handling, especially in server-side contexts, indicating a proactive approach to stability.
  • Refactoring for Clarity: Several team members have engaged in refactoring efforts aimed at clarifying code structure, which suggests an ongoing commitment to maintainability as the codebase evolves.
  • Collaboration Across Features: Multiple team members are collaborating on overlapping features such as dynamic APIs and middleware support, indicating strong teamwork and shared objectives.

Conclusion

The development team is actively engaged in enhancing Next.js through performance optimizations, improved error handling, and structural refactoring. Their collaborative efforts reflect a commitment to maintaining a robust framework that adapts to modern web development needs while ensuring backward compatibility. The high volume of recent commits demonstrates a vibrant development environment focused on continuous improvement.