2025-04-24 Frontend Working Group Meeting Notes: Build optimization
Date, time, location
Date:Apr 24, 2025 at 15:00 UTC (timezone converter)
Location: https://meet.google.com/wxe-myxy-uei
Discussion topic(s)
One, maybe two topics to be presented or discussed in depth in the upcoming meeting.
@Brian Smith Prod deps
Can we do something immediate-term?
Can we document a decision?
It seems there’s still confusion as to some of the specifics as to how this should be handled. I think most people are on board with “if the user needs it in the browser it’s a dep, otherwise it’s a dev dep” - but the nuances of how that applies to build/platform dev/peer etc. deps don’t seem as clear to everyone.
@Brian Smith Temporary “documented decision” - the optional
peerDep
strategy seems like a good path forward if there aren’t any gotchas
🎥Recording
Video: https://drive.google.com/file/d/1wPHr4FRSzt7f7eIxWHyuVoHkAzzDDl_h/view?usp=drive_link
Chat: https://drive.google.com/file/d/1eG4WwumdyIKaKgDgCz5fewWZCxzE4Efj/view?usp=drive_link
Transcript: https://drive.google.com/file/d/1BewrKq_8Be5OKn8wYIr3Y6dUfKvW8UtwJLPueLf4qsQ/view?usp=drive_link
Participants
Adolfo Brandes, Brian Smith, Jesse Stewart-WGU, Max Frank
🤖 Summary
🛠️ Discussion on Build Dependency Optimization
Context & Problem
Brian Smith initiated a conversation around reducing build times and bundle sizes, referencing a PR by Reis involving the reclassification of frontend build dependencies as
devDependencies
.This PR, however, could break current behavior, since Micro Frontends (MFs) rely on these dependencies at runtime.
Alternative Solution
Brian suggested a cleaner approach involving the use of
optionalDependencies
and reconfiguringfrontend-platform
so thatfrontend-build
can be treated as adevDependency
.This strategy aims to:
Reduce unintended direct dependencies in MF bundles.
Enable
frontend-build
to be omitted during runtime unless explicitly needed.
Unresolved Issue
The team was waiting for input from Adam to understand the results of his discovery and whether this strategy introduces any regressions or issues.
🧪 Jesse Stewart's First Contribution
PR Overview
Jesse described a fix addressing a navigation visibility issue in locked or future-dated courses.
The navigation was disappearing due to a boolean value; Jesse adjusted this and added a
useEffect
to maintain correct navigation state.
Uncertainty remained on whether this was a regression or intended behavior, so Jesse wisely created a proposal and sought product feedback.
Action Items
Jesse:
Confirmed steps from the review checklist.
Engaged with the Product Core group via Slack to validate the intended behavior.
Group:
Suggested quick confirmation with Product.
Agreed it’s a likely bug but wanted documentation of product sign-off.
🔧 Footer Slot Change and External Scripts
Max Frank’s Update
Confirmed that the footer slot change in Learner Dashboard is approved and ready to go.
Discussed duplicating the change in their fork to handle arbitrary JavaScript injection.
Frontend Base Considerations
Adolfo explained that as
frontend-base
matures (moving toward v1.0):Many one-off configurations are being removed or refactored into plugins.
Features like external scripts may need to be reconsidered or rebuilt.
Encouraged collaboration to define what's essential and modularize accordingly.
📦 Frontend Base Refactor & Module Federation
Overview
Frontend Base is a major refactor aiming to make the frontend ecosystem more modular, maintainable, and scalable.
Highlights include:
Leveraging Module Federation (MF) to allow independent module deployments.
Transitioning shared functionality into a plugin architecture.
Reducing build bloat and avoiding multiple versions of shared libraries like React.
Key Takeaways
Jesse showed enthusiasm for module federation, sharing relevant experience.
Team members expressed support for the modular direction and acknowledged the challenges with version management across MFs.
Adolfo noted that though this isn’t yet a monorepo dream, it’s a strong step forward.
Action items
Adolfo to follow up with Adam regarding the dependency discovery.
Jesse to await product feedback and finalize his PR based on it.
Max & Brian to finalize footer slot handling and consider long-term improvements for injecting JavaScript.