Skip to content

tulior/wingetdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wingetdb

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.

Site

https://winget.tulio.org/

The repository remains wingetdb; the custom domain provides the clean public URL.

Features

  • Static HTML pages
  • Copy-ready winget install, winget upgrade, and winget uninstall commands
  • 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

Local development

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=10

Open:

site/index.html

Generated output includes static package pages plus sitemap.xml, robots.txt, llms.txt, CNAME, and assets/search-index.json.

Generate all packages

go run ./cmd/generator --source=winget-pkgs --out=site --limit=0

--limit=0 means no package limit.

Deploy

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:

  1. Resolves the latest microsoft/winget-pkgs commit.
  2. Skips the build if the deployed site already matches the current upstream and repo commit.
  3. Fetches only locale manifest data.
  4. Builds the Go generator.
  5. Generates the static site.
  6. Deploys to GitHub Pages.

Push to main or trigger the workflow manually to deploy.

Tech stack

  • 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.

Project goals

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.

About

Faster winget package directory with version history — open-source alternative to winstall.app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors