Track LinkedIn followers - #9
Merged
Merged
Conversation
LinkedIn has no public API for follower counts, and the Marketing Developer Platform needs an approved app plus OAuth tokens that expire, which is a lot of machinery for one number. The logged-out company page does carry the count, so read it from there. It is scraped, so it is fragile in two ways: the markup can change, and LinkedIn serves an auth wall to some datacentre ranges, which GitHub Actions runners are. Both are handled by writing nothing rather than failing — the collector catches its own errors and the combiner already skips fields whose file is absent, so a blocked run loses this number and nothing else. The regex deliberately ignores abbreviated counts like "10K followers": no number beats a wrong one. Closes #6.
Zethson
added a commit
to scverse/scverse.github.io
that referenced
this pull request
Aug 14, 2026
scverse/stats#9 adds the field. It is scraped from the logged-out company page, so a run that gets blocked will not have it, and the tile is behind a `with` rather than assuming it is there.
Zethson
added a commit
to scverse/scverse.github.io
that referenced
this pull request
Sep 3, 2026
* Build the stats page into the site The stats page lived in scverse/stats with its own frontend, so it did not look or navigate like the rest of scverse.org. This renders the same data through the site's own layout, type and tiles, and links it from the About menu. stats.json and contributors.json are still produced by scverse/stats and fetched at build time, the same way the packages page reads the ecosystem registry. The data is a snapshot rather than a time series, so the page is a set of numbers and a contributor list, not the growth charts the issue imagined. Refs #157. * Colour the contribution bars and shorten the nav label A dark neutral bar disappears under extensions that invert the page, so use the blue from the Join button gradient. It is the only site hue besides the cerise that clears 3:1 against the page, checked rather than eyeballed. "scverse in numbers" stays as the page title, but the menu entry reads Statistics. * Make the tiles that lead somewhere clickable, and drop the Impact group Tiles with a destination are anchors and pick up the hover the rest of the site uses — background shift plus a small scale. Only eight of the thirteen link: a tile links out where the destination shows the same number, so Zulip, Bluesky, the org people page, /people, the two packages sections and the org page do, while the pull request and issue counts do not, since a GitHub search covers all 99 org repos and these numbers cover 12. Issues move in with the packages, citations join the community, and the daily download average goes back under the headline figure, which leaves two groups instead of three and nothing stranded. * Show LinkedIn followers when the registry has them scverse/stats#9 adds the field. It is scraped from the logged-out company page, so a run that gets blocked will not have it, and the tile is behind a `with` rather than assuming it is there. * Pair citations with the download figure, expand the contributor list Citations sat awkwardly among the community tiles; they belong next to downloads, so the two impact numbers now share the headline row with the citation count set smaller. The remaining contributors go behind a details element rather than a count of people you cannot see. It needs no JavaScript, and the avatars in it are not fetched until it is opened. Drop the sources footnote: the intro already credits scverse/stats, and the contributor paragraph already says the counts are core-only. * Give both headline figures the same size * Say the ranking is by commits without calling anyone busiest * Read stats from the public S3 bucket scverse/stats keeps scverse.org/stats/ occupied for as long as it deploys to Pages, and that is the path this page wants. Point both stats fetches at the public scverse-stats bucket instead, which scverse/stats uploads to in scverse/stats#11. * Read stats from the dev bucket The role behind AWS_ROLE_ARN only covers scverse-stats-dev, so that is where scverse/stats publishes until the pipeline is proven. Tracked in scverse/stats#13.
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.
Closes #6.
LinkedIn has no public API for follower counts. The Marketing Developer Platform can give them, but it needs an approved app, page-admin verification and OAuth tokens that expire. The logged-out company page does carry the count, so this reads it from there. No new secrets.
npx tsc --noEmitclean; ran the collector against the live page and the combiner over its output, giving"linkedin_followers": 3421instats.json.