A fast, static winget package directory.
wingetdb turns data from microsoft/winget-pkgs into lightweight package pages with copy-ready install commands, package metadata, and version history.
It is built to be faster, simpler, and less bloated than winstall-style app directories.
The repository remains wingetdb; the custom domain provides the clean public URL.
- Static HTML pages
- Copy-ready
winget install,winget upgrade, andwinget uninstallcommands - Package metadata from winget manifests
- Version history from winget locale manifests
- SEO-friendly package pages
- No frontend framework
- No app shell
- No runtime backend
- No analytics or tracking scripts by default
- Generated by a small Go binary
Clone or prepare microsoft/winget-pkgs:
git clone --depth=500 --filter=blob:none --sparse https://github.com/microsoft/winget-pkgs.git winget-pkgs
cd winget-pkgs
git sparse-checkout init --no-cone
printf '/manifests/**/*.locale.*.yaml\n' | git sparse-checkout set --stdin
cd ..Generate a small sample site:
go run ./cmd/generator --source=winget-pkgs --out=site --limit=10Open:
site/index.html
Generated output includes static package pages plus sitemap.xml, robots.txt, llms.txt, CNAME, and assets/search-index.json.
go run ./cmd/generator --source=winget-pkgs --out=site --limit=0--limit=0 means no package limit.
Deployment is handled by GitHub Actions.
Custom domain setup:
winget.tulio.org CNAME tulior.github.io
Set the GitHub Pages custom domain to:
winget.tulio.org
DNS and Pages settings are configured outside this generator; the generated CNAME file documents the intended domain.
The workflow:
- Resolves the latest
microsoft/winget-pkgscommit. - Skips the build if the deployed site already matches the current upstream and repo commit.
- Fetches only locale manifest data.
- Builds the Go generator.
- Generates the static site.
- Deploys to GitHub Pages.
Push to main or trigger the workflow manually to deploy.
- Go
- Embedded HTML templates
- Custom CSS
- Vanilla JavaScript for copy/search interactions
- GitHub Actions
- GitHub Pages
No React. No Next.js. No client-side package database. No runtime backend.
wingetdb should be:
- fast to load
- cheap to deploy
- easy to crawl
- easy to inspect
- boring to operate
The command is the product. Everything else exists to make that command trustworthy.