โฆ 50 Widget Embeds for Your Static Site
๐ป Coding & Dev Activity
- WakaTime bar chart โ
anmol098/waka-readme-statsfetches your WakaTime API for languages, editors, and OS breakdowns; renders as a text bar chart you write to a.jsonfile for your site[^3_1] - WakaTime embed card โ
https://wakatime.com/badge/user/{uuid}serves a live SVG badge with total coding hours;<img>-embeddable, no action needed[^3_2] - GitHub contribution graph โ
https://ghchart.rshah.org/{username}serves your green contribution grid as a live SVG<img>[^3_3] - GitHub stats card โ
github-readme-stats.vercel.app/api?username={user}for stars, commits, PRs, issues as an embeddable SVG[^3_3] - GitHub streak card โ
github-readme-streak-stats.herokuapp.com?user={user}for current streak, longest streak, total contributions[^3_3] - GitHub trophies โ
github-profile-trophy.vercel.app/?username={user}renders achievement badges as embeddable SVG cards[^3_4] - Top languages card โ
github-readme-stats.vercel.app/api/top-langs/?username={user}withlayout=compactfor a language pie[^3_3] - GitHub pinned repos โ fetch your own pinned repos via the GitHub GraphQL API in a scheduled action, write to
data/pinned.json, render as cards[^3_5] - StackOverflow reputation โ
https://stackoverflow.com/users/flair/{id}.pngis a self-updating flair embed; or fetchapi.stackexchange.com/2.3/users/{id}in a workflow for structured JSON[^3_6] - Codewars rank badge โ
www.codewars.com/users/{username}/badges/largeis a live<img src>embed with rank and kata count[^3_4]
๐ฎ Gaming
- Chess.com stats โ
Balastrong/chess-stats-actionfetches rating, wins/losses/draws, and recent games from Chess.com API; uses<!--START_SECTION:chessStats-->placeholder injection[^3_7][^3_8] - Steam recently played โ
https://api.steampowered.com/IPlayerService/GetRecentlyPlayedGames/v1/in a scheduled Python step; write game names, hours, and capsule art URLs todata/steam.json[^3_9] - Steam current game badge โ
j4ckofalltrades/steam-current-gameVercel-hosted SVG card;<img src="https://steam-current-game.vercel.app/api?steamid={id}">[^3_9] - Lichess stats โ Lichess has a fully open API at
https://lichess.org/api/user/{username}(no auth required); fetch rating per time control and puzzle rating into JSON[^3_10] - RetroAchievements โ
https://retroachievements.org/API/API_GetUserSummary.php?u={user}&z={user}&y={key}returns points, rank, and recent game; write to a data file in a daily action[^3_11]
๐บ Film & TV
- Trakt.tv watch history โ Traktโs REST API (
/users/{user}/history/movies) with OAuth;rudrakabir/Trakt-Embedshows a dynamically fetched watch history widget[^3_12][^3_13] - Trakt poster grid โ
LekoArts/annumgenerates a full-year poster grid of watched movies and shows from Trakt history; outputs static HTML[^3_14] - Letterboxd RSS โ JSON โ fetch
https://letterboxd.com/{user}/rss/on a cron, parse withfeedparser, writedata/films.jsonwith title, rating, watched date, TMDB poster[^3_15] - TMDB poster enrichment โ after any film fetch, cross-reference
https://api.themoviedb.org/3/search/movie?query={title}to get backdrop images, genres, and cast[^3_12] - Trakt ratings heatmap โ fetch
/users/{user}/ratings/moviesand/ratings/shows, bucket by year/genre, write to a JSON file for a D3 heatmap on your/watchedpage[^3_14]
๐ Social & Fediverse
- Mastodon post count badge โ fetch
https://{instance}/api/v1/accounts/lookup?acct={user}, getstatuses_count,followers_count; write to data file[^3_16] - Mastodon recent posts feed โ
https://{instance}/@{user}/outbox?page=truewithAccept: application/activity+jsonreturns ActivityPub JSON of your last 20 posts[^3_17] - Bluesky post feed โ
https://public.api.bsky.app/xrpc/app.bsky.feed.getAuthorFeed?actor={handle}returns your posts as JSON; no auth required for public profiles[^3_18] - Bluesky follower count โ same endpoint:
app.bsky.actor.getProfile?actor={handle}returnsfollowersCount,followsCount,postsCount[^3_18] - Pixelfed gallery RSS โ Pixelfed exposes
https://{instance}/users/{user}.atom; parse it in a workflow for a photo griddata/photos.json[^3_16]
๐ Fitness & Health
- Strava year-to-date stats โ fetch
/athletes/{id}/statswith OAuth refresh token in a scheduled action; write YTD run distance, elevation, and time to JSON[^3_19] - Strava recent activities โ
/athlete/activities?per_page=5returns polyline, sport type, distance, pace; decode withpolylinelibrary for a mini map embed[^3_19] - Strava contributions heatmap โ parse activity dates from
/athlete/activities?per_page=200, build a GitHub-style grid of active days, write to SVG via Python[^3_20] - Fitbit daily summary (via Fitbit API) โ fetch
/1/user/-/activities/date/today.jsonwith refresh token; write steps, active minutes, sleep todata/fitbit.json[^3_19] - Garmin Connect (via
cyberjunky/python-garminconnect) โ scrape daily step count and VO2 max estimate in a scheduled Python step; no official API but widely used library[^3_19]
๐ Language Learning & Education
- Duolingo streak card โ
https://duolingo-stats-card.vercel.app/api?username={user}is a live embeddable Vercel card with streak, XP, and league[^3_21] - Duolingo README stats action โ
centrumek/duolingo-readme-statsinjects streak, total XP, and league into a placeholder comment in any Markdown or HTML file[^3_22] - Anki review count (via AnkiConnect) โ if you run Anki with AnkiConnect locally, a webhook workflow can push daily review stats to your repo[^3_22]
- Clozemaster fluency score โ Clozemaster exposes a public profile page; scrape it in a workflow with
requests+BeautifulSoupfor fluency % per language[^3_22]
๐ก Weather & Environment
- OpenWeatherMap current โ
https://api.openweathermap.org/data/2.5/weather?q={city}&appid={key}in a 30-min cron; write temp, conditions, icon todata/weather.json[^3_11] - Open-Meteo forecast (no API key) โ
https://api.open-meteo.com/v1/forecast?latitude=37.27&longitude=-80.05&daily=temperature_2m_maxfor Salem, VA; completely free[^3_11] - AQI / air quality โ
https://api.openweathermap.org/data/2.5/air_pollution?lat={}&lon={}returns PM2.5, PM10, O3, NO2 as structured JSON for an air quality indicator[^3_23] - Moon phase โ
https://api.farmsense.net/v1/moonphases/?d={unix_timestamp}or compute it with a pure Python function (no API key needed); write phase name and emoji to data file[^3_11] - Sunrise/sunset โ
https://api.sunrise-sunset.org/json?lat={}&lng={}returns golden hour, civil twilight, nautical twilight; free and no-key[^3_11]
๐ Anime & Manga
- AniList watching list โ
Yizack/anilist-animes-actionuses AniListโs GraphQL API to fetch yourCURRENT,COMPLETED, andPLANNINGlists and injects them into placeholder comments[^3_24] - AniList stats card โ
https://anilist.co/user/{username}/exposes anime count, mean score, and genres as a public GraphQL query; fetch and write to data file[^3_25] - MyAnimeList profile stats โ Jikan (unofficial MAL API) at
https://api.jikan.moe/v4/users/{username}/statisticsreturns episodes watched, mean score, completed; no key needed[^3_24] - AniList favorites grid โ GraphQL query
MediaListCollection(userName: "{user}", type: ANIME, status: CURRENT)returns cover images + titles for a currently-watching shelf[^3_25]
๐น Video & Streaming
- YouTube latest video โ YouTube Data API
channels?part=contentDetails&id={channelId}โplaylistItems?part=snippet&playlistId={uploadsId}&maxResults=1; embed thumbnail + title as a โlatest videoโ card[^3_26] - YouTube channel stats โ fetch
statisticspart forsubscriberCount,viewCount,videoCount;jqextracts them cleanly in a bash step[^3_26] - Twitch live status badge โ
https://api.twitch.tv/helix/streams?user_login={user}with Client-ID header; writeis_live: true/falseandviewer_countto JSON for a live indicator[^3_27]
๐ Miscellaneous / IndieWeb
- Webmention count โ
https://webmention.io/api/count?target={your_url}returns like, reply, repost, and mention counts; poll per-page in a nightly action[^3_18] - Pinboard tag cloud โ
https://api.pinboard.in/v1/tags/get?format=json&auth_token={user}:{token}returns all your tags with counts; build a weighted cloud and write todata/tags.json[^3_28] - GitHub sponsor count โ GitHub GraphQL
viewer { sponsorshipsAsMaintainer { totalCount } }returns your sponsor count; write to a data file for a support badge[^3_3] - Profile visitor counter (self-hosted) โ deploy a Cloudflare Worker with a KV counter that increments on each page load and returns JSON; fetch from your static site via
<script>tag for a โvisitorsโ count without third-party analytics[^3_11]
โ
[^3_1]: https://github.com/anmol098/waka-readme-stats
[^3_2]: https://github.com/marketplace/actions/wakatime-coding-statistics
[^3_3]: https://github.com/abhisheknaiidu/awesome-github-profile-readme
[^3_4]: https://github.com/dhyeythumar/awesome-readme-tools
[^3_5]: https://dev.to/davorg/updating-github-pages-using-github-actions-395a
[^3_6]: https://blog.jakelee.co.uk/showing-latest-posts-from-multiple-sources-on-github-profile/
[^3_7]: https://github.com/Balastrong/chess-stats-action
[^3_8]: https://github.com/marketplace/actions/chess-com-games-stats
[^3_9]: https://github.com/j4ckofalltrades/steam-current-game
[^3_10]: https://leonardomontini.dev/chess-stats-on-github-action
[^3_11]: https://github.com/gethomepage/homepage/discussions/5206
[^3_12]: https://github.com/rudrakabir/Trakt-Embed
[^3_13]: https://github.com/trakt/trakt-api
[^3_14]: https://github.com/LekoArts/annum
[^3_15]: https://valerionarcisi.me/en/blog/how-i-display-my-latest-watched-movies-using-letterboxd-rss-feed/
[^3_16]: https://github.com/marketplace/actions/any-feed-to-mastodon
[^3_17]: https://jakelazaroff.com/words/integrating-my-blog-with-mastodon/
[^3_18]: https://indieweb.org/webactions
[^3_19]: https://www.curtiscode.dev/post/displaying-strava-stats-using-webhooks
[^3_20]: https://www.reddit.com/r/Ultramarathon/comments/1j7oehd/i_made_a_strava_integration_that_pushes_github/
[^3_21]: https://github.com/KevzPeter/Duolingo-Stats-Card
[^3_22]: https://github.com/centrumek/duolingo-readme-stats
[^3_23]: https://github.com/trekawek/air-quality-info
[^3_24]: https://github.com/marketplace/actions/anilist-animes-action
[^3_25]: https://github.com/yuna0x0/anilist-mcp
[^3_26]: https://blog.jakelee.co.uk/fetching-youtube-metadata-in-github-actions-and-persisting/
[^3_27]: https://github.com/dhyeythumar/youtube-stats-card
[^3_28]: https://gist.github.com/philgruneich/b17732fe8eb828be8328
[^3_29]: https://github.com/marketplace/actions/wakatime-stats
[^3_30]: https://github.com/marketplace/actions/wakatime-stat-update-action
[^3_31]: https://github.com/marketplace/actions/wakatime-gist
[^3_32]: https://wakatime.com/github-time-tracking
[^3_33]: https://github.com/orgs/community/discussions/167549
[^3_34]: https://github.com/LauraAllObe/wakatimeReadmeStats
[^3_35]: https://github.com/suryakantamangaraj/AwesomeGithubProfileTemplates
[^3_36]: https://dev.to/raman_butta/adding-waka-time-stats-to-your-github-readme-59ng
[^3_37]: https://github.com/abusayed0206/trakt
[^3_38]: https://github.com/wwiens/trakt_mcpserver
[^3_39]: https://github.com/edemaine/followshows-to-trakt
[^3_40]: https://github.com/trakt/Trakt-for-Mediaportal/blob/master/TraktPlugin/TraktHandlers/MyVideos.cs
[^3_41]: https://github.com/Hiyori-API/checker_anilist
[^3_42]: https://github.com/HarshaAbeyvickrama/YouTube-Statistics
[^3_43]: https://github.com/devfaysal/YouTube_Channel_Statistics
[^3_44]: https://github.com/stephanedebove/youtube_stats
[^3_45]: https://github.com/flagship-io/flagship-vercel-edge-function-example
[^3_46]: https://github.com/dmadison/splitflap-youtube-stats/blob/master/src/splitflap_youtube_stats.py
[^3_47]: https://hoop.dev/blog/the-simplest-way-to-make-github-actions-vercel-edge-functions-work-like-it-should
[^3_48]: https://github.com/VerKoval/AirQualityModel
[^3_49]: https://github.com/JensBender/youtube-channel-analytics
[^3_50]: https://github.com/motdotla/integration-example-vercel-edge-function/blob/master/README.md
[^3_51]: https://github.com/thomaspich/MMM-duolingo-streak/actions