Repository navigation
Add SocialNetwork-React experimental workload - #596
Merged
Merged
Conversation
✅ Deploy Preview for webkit-speedometer-preview ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
canova
force-pushed
the
social-network-workload
branch
2 times, most recently
from
November 12, 2026 11:30
7fa6487 to
878fa4d
Compare
Contributor
|
[cbruni] Too fast numbers on m4 |
canova
force-pushed
the
social-network-workload
branch
from
November 13, 2026 16:58
eb944fa to
35a0178
Compare
Contributor
|
OpenPostDialog and BackToHomeFeed are still below 10ms on the m4. |
camillobruni
approved these changes
Nov 13, 2026
canova
force-pushed
the
social-network-workload
branch
from
November 13, 2026 17:42
65df390 to
02cb5e8
Compare
Models a social network's home feed and what readers do around it: a virtualized feed that loads more stories as it scrolls, a post dialog with threaded comments and a composer, a profile route and back, a search typeahead and the header menus. It also runs the instrumentation such apps attach to every interaction: error-guard wrappers, auto-tracked events that are batched, compressed and checksummed for upload, impression tracking, interaction timing and feature-gate exposures. Original React 19 + Vite + Tailwind code with deterministic, server-free fixtures (an in-page server streams chunked responses) and no third-party assets. Experimental, so it is off by default and does not affect the official score. Steps wait on window events the app fires once an interaction has committed. After clicks and keystrokes they also await a microtask, because React 19 commits discrete updates from a microtask, which a step-dispatched event only reaches once the step yields.
Output of `npm run build` in suites-experimental/social-network. Build artifacts only, so it can be dropped and regenerated whenever the source commit below it changes.
WebKit allows 100 pushState/replaceState calls per 10 seconds and counts them on the main frame, so suites that ran earlier in the harness can use up the budget. The router's pushState then threw a SecurityError before the state update, and OpenPostDialog waited forever for its event. The steps never go back or forward, so drop the History API entirely.
Components now read the store through fragments with garbage collection, the JSX runtime tracks renders and wraps handlers, strings go through ICU-style formatting, and search uses a fuzzy index. Stories, comments and the dialog are sized after the real site. ClosePostDialog is folded into OpenOwnProfile, as closing stays cheap. ExpandCommentReplies now expands each first-page thread fully.
Feature components now render through design-system primitives (box, text, link, image, pressable) that read context, keep interaction state and register with interaction and visual-completion trackers, matching a production app's component density. The home page stays mounted in <Activity> while the profile is shown. BackToHomeFeed is folded into OpenOwnProfile as VisitOwnProfile, since revealing the kept-alive home is cheap.
Leaving the profile unmounted its feed while the home feed restored its scroll position in the same commit. The profile feed's scroll listener lived in a passive effect, so it was still attached when that scroll fired, and it measured a list that was already gone. Register it in a layout effect instead.
canova
force-pushed
the
social-network-workload
branch
from
November 13, 2026 17:47
02cb5e8 to
6409edd
Compare
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 adds
SocialNetwork-React, an experimental workload. It's an original React 19 + Tailwind app that models a social feed: a virtualized feed, a post dialog with threaded comments, profile navigation, search typeahead, and analytics running on every interaction.Steps: refresh the feed, scroll and load more stories, expand truncated stories, open a post dialog, expand replies, change comment order, load more comments, type a comment, close the dialog, open own profile, go back to the home feed, search typeahead, open the header menus.