Repo of the Day
gian-gg/icon-marquee
Published: Oct 4, 2026
Open repository ↗Dynamic SVG icon marquees for READMEs, portfolios, and web pages
Summary
icon-marquee is a hosted service that turns a list of tech icon names into a scrolling or static SVG, returned as an image you can drop into any page with a plain <img> tag. The output is SVG with CSS animation, so it stays sharp at any size, ships no JavaScript, and renders correctly inside GitHub READMEs. Icons come from the skills-icons set, with short aliases such as js or ts, and themed icons switch with the viewer's system light/dark setting.
What it is useful for
The service is useful for showing a stack or skill list in a README header, portfolio page, or any static site that needs a self-contained, no-build, lightweight image. The marquee endpoint suits banners that scroll a moving row of technologies, while the icons endpoint suits a clean static row. Because the result is an embeddable SVG, it works on GitHub, static sites, and any context that supports a standard image tag, without bundlers or a runtime library.
How engineers can use it
Three endpoints are documented in the README:
GET /v1/marquee?i=...— animated SVG that scrolls left at 30px/s, stops for viewers withprefers-reduced-motion: reduce, and loops eight icons roughly every 15 seconds.GET /v1/icons?i=...— the same icons in a static row, in the order listed.GET /v1— health check returning{"status":"ok"}.
A Markdown usage example from the README:

The i parameter takes comma-separated names or short aliases, and the width parameter (1–3840) sets the window for the marquee, with the row repeated to fill it. Documented constraints: at most 100 icons per request, the default visible window is at most 400px wide, unknown names are skipped and reported in the X-Unknown-Icons response header, and a request where every name is unknown returns HTTP 400. The icon set contains 1041 names, 767 of them themed.
For self-hosting, the README requires Bun and documents:
bun install
cp .env.example .env # then set APP_NAME
bun dev # http://localhost:3000/v1/marquee?i=js,ts
APP_NAME is required and the server refuses to start without it. The README also documents bun test, bun run typecheck, and bun run check (Biome lint/format/imports sort). The project is MIT licensed, and the underlying icons are credited to skills-icons by Syvixor.