🎉 New plugin: Featured Templates - #10324
Open
benjidotsh wants to merge 10 commits into
Open
Conversation
Migrate the featured-templates plugin, a New Frontend System home page widget that showcases Software Templates selected by a catalog tag, from the DPG Media plugin repository. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
Restructure the workspace README as the plugin's front door with a package list, quick start, screenshot, and provenance; add a Features section to the plugin README. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
approvedGitRepositories and enableScripts were written automatically by yarn's lockfile v9 migration to preserve pre-hardening behavior. The workspace has no git dependencies and needs no lifecycle scripts, so the hardened defaults apply cleanly, matching most other workspaces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
Replaces the imperative IntersectionObserver lifecycle in ScrollControls and the hand-rolled observer mock in tests with useInView and the library's typed test utils. Pinned to 9.5.3, the last release whose test-utils type definitions target jest instead of vitest globals, keeping the strict skipLibCheck build green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
Contributor
Changed Packages
|
Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
benjidotsh
force-pushed
the
plugins/featured-templates
branch
from
August 14, 2026 12:54
fc2ccf2 to
a05a9ca
Compare
benjidotsh
force-pushed
the
plugins/featured-templates
branch
from
August 14, 2026 13:04
d2ea02e to
6bc036a
Compare
awanlin
requested changes
Aug 14, 2026
awanlin
left a comment
Contributor
There was a problem hiding this comment.
Hi @benjidotsh, before this moves forward I'd like clear understanding why this is being added here over being part of the scaffolder. Please bring this up at the next Scaffolder SIG 🙏
Member
Author
|
@awanlin no real reason tbh. didn't consider it. 😅 I've put it on the agenda! |
ScrollControls exists to scroll a track, so a missing track is not a state worth representing — the buttons would have nothing to act on. Render it only once the track element is set, making the prop non-nullable and the guard in scroll unnecessary. initialInView stays true: the gate only defers past the render where the track is still null, while the first IntersectionObserver report lands later, so it is what keeps both arrows hidden until their real state is known. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
mockIsIntersecting already wraps the observer callback in act, so wrapping the calls again in the scroll test added nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Benjamin Janssens <benji.janssens@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces a new plugin called Featured Templates, which adds a home page widget that showcases Scaffolder/Software Templates containing a configurable tag (
featuredby default) to the Backstage home page. (if the Home plugin is installed)The plugin is exclusively built for the New Frontend System and Backstage UI, although it does use the swappable
TemplateCardcomponent, which is by default still a MUI component. There is some CSS in place to make sure the default component renders nicely in this plugin.Demo:
Empty state:
Error state:
Loading state:
✔️ Checklist
Signed-off-byline in the message. (more info)