About pkgs.win
pkgs.win is a fast, static website for browsing the
Windows Package Manager
package repository. It's a love letter to winget, disguised as a website.
Inspiration
Don't get me wrong — the winget CLI is fantastic. I just needed a way to browse 12,245 packages without developing a terminal-induced migraine. So I turned the entire winget repository into a proper website. With search that works. And colors. Revolutionary.
Now try explaining to a product manager that Microsoft publishes a public GitHub repo with 12,245 YAML manifests and that's how Windows package management works now. At least now you can just send them a link.
The unhinged details
- Pure Astro, static output, zero JS frameworks. React developers in shambles.
- 12,245+ pages generated in ~30 seconds. Astro didn't even break a sweat.
- Data source: a git submodule pointing at microsoft/winget-pkgs. No API, no database. Just
git pulland 12,245 YAML files staring back at me. - Deployed on Cloudflare Pages. Microsoft hosts the packages, Cloudflare serves the pages, GitHub runs the builds. Peak cloud architecture.
- Styled after Windows 11 because if you can't beat the aesthetic, join it.
Things I learned
- YAML at scale is a lifestyle choice. One wrong indentation and your entire build silently produces nonsense.
- Git submodules are fine until they aren't. Debugging them feels like solo-queuing Apex Legends ranked — pain, chaos, and no teammates in sight.
- Static site generation with 12,245+ pages teaches you patience — especially on a Raspberry Pi without a fan. You can smell the commitment.
- Parsing the winget manifest schema felt harder than deep-sea fishing in Ultima Online — except here the sea is YAML and the fish are edge cases.
- Cloudflare's free tier is unreasonably generous. I keep waiting for the catch.
- If you give engineers a package manager, they will publish everything. Including packages to install other package managers.
Special thanks
This project would have shipped sooner if it weren't for these YouTube channels. Then again, half the ideas came from procrastinating on their videos — so it evens out.
How it works
Every hour, the site ingests the latest data from the upstream microsoft/winget-pkgs repository and rebuilds all pages as static HTML. No server, no API calls at runtime — just pre-rendered pages served from the edge via Cloudflare Pages.
Search is powered by MiniSearch, running entirely client-side against a pre-built search index.
Tech stack
- Framework
- Astro
- Hosting
- Cloudflare Pages
- Data source
- microsoft/winget-pkgs (Git submodule)
- Search
- MiniSearch (client-side)
- Build stats
- SQLite via better-sqlite3