Skip to content

tools/guis: retire the curated third-party GUI list#2179

Open
dscho wants to merge 8 commits into
git:gh-pagesfrom
dscho:toomanyguis
Open

tools/guis: retire the curated third-party GUI list#2179
dscho wants to merge 8 commits into
git:gh-pagesfrom
dscho:toomanyguis

Conversation

@dscho

@dscho dscho commented Jul 3, 2026

Copy link
Copy Markdown
Member

The /tools/guis page has outlived its usefulness. When Git was young it genuinely helped newcomers escape the command line, but today every major IDE ships Git integration and the curated list has decayed into an unvetted grab-bag that a handful of vendors have started treating as free advertising. Commit 1 lays out the full argument; this series removes the list and all the machinery that fed it.

The whole series is deployed for review at https://dscho.github.io/git-scm.com/, so the new page and any of its historical URLs can be clicked through in place.

One invariant is worth flagging, given that the diff touches data/, static/, layouts/, assets/, and content/: every URL the retired list ever served still resolves. The per-platform stubs under content/tools/guis/ are kept (the ?os=<os> query string is a harmless no-op on the new page), and every aliases: entry survives. Hugo reports 362 aliases both before and after the series.

dscho added 8 commits July 3, 2026 13:11
In Git's early days, when the command line was a real barrier to
adoption and third-party clients were scarce, this page served a
genuine purpose: it was often the first stop for users looking for a
friendlier interface. That world is gone. Git integration is now
ubiquitous; virtually every major IDE ships with it, and one cannot
credibly release a developer tool without it.

The list, meanwhile, has grown well past what anyone is actually
curating. Entries are not vetted for quality or maintenance, and the
page has increasingly been treated as an advertising surface by GUI
authors angling for placement. Presenting an unfiltered wall of
options is arguably worse than presenting none at all: it implies a
quality bar that no one is enforcing.

The per-platform stubs under content/tools/guis/ are kept deliberately,
so that inbound links to /download/gui/<os> and /download/guis/<os>
continue to resolve; the ?os=<os> query string is now a harmless no-op
on the new description page.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Only the retired list on /tools/guis ever invoked this shortcode.
The page no longer does, and nothing else references it.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
data/guis/ held the metadata (name, project URL, platforms, license,
thumbnail path) for the entries the retired list used to render. With
the list gone and the shortcode that consumed it removed, these files
serve no purpose.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
static/images/guis/ held the 588x332 thumbnails referenced from the
per-client YAML files removed in the previous commit. Nothing else
references them.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The Downloads.filterGUIS / observeGUIOSFilter / observePopState paths
existed solely to power the Windows/Mac/Linux/Android/iOS filter bar on
the retired list. With that UI gone, filterGUIS and the helpers it
called (getOSFromQueryString, getOSFilter, capitalizeOS) have no
callers, and the observePopState indirection via onPopState (plus the
module-scoped popped/initialURL state it read) becomes dead too.

Downloads.init now only wires up postProcessDownloadPage, which
handles the /downloads pages proper and is unrelated to the GUI list.

DownloadBox.init keeps its per-OS #download-link rewrite (that button
still exists on the Install pages) and drops the parallel #gui-os-filter
attribute writes that targeted an element the new page does not render.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
ul.gui-thumbnails (in lists.scss) styled the thumbnail grid on the
retired list, and a#gui-os-filter (in typography.scss) styled the
"Only show GUIs for my OS" toggle that used to appear on the download
page for readers on a detected platform. Both selectors are dead now
that the list, its markup, and the JS that toggled the filter are
gone.

The shared img/margin block in lists.scss stays as it was, now on
ul.video-thumbnails alone.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The "Adding a new GUI" walk-through, the accompanying "To add new GUIs:
data/" pointer in the directory-purpose list, and the stale
/content/downloads/guis/ entry in the sparse-checkout example (the page
moved to content/tools/guis in 0f8c255, "tools: move GUIs to tools
section", 2025-09-29) no longer describe the repository. The list they
targeted is gone.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The homepage Tools tile now advertises what the section still curates.
The parallel masthead sentence ("Git ... has a huge ecosystem of GUIs,
hosting services, and command-line tools") is intentionally left alone;
it is a general statement about the ecosystem, not a claim about what
this site catalogs.

Assisted-by: Opus 4.7
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho self-assigned this Jul 3, 2026
@dscho dscho requested review from To1ne and jvns July 3, 2026 21:01
@dscho dscho marked this pull request as ready for review July 3, 2026 21:01
@jvns

jvns commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

what motivated this change? (it seems reasonable, but what made you think of doing it now?)

@dscho

dscho commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

what motivated this change? (it seems reasonable, but what made you think of doing it now?)

@jvns There was a recent flurry of PRs to add new GUI clients, most of which I never heard of...

image

So I took a look at the current list of GUIs:

image

I commend every person who can make any decision based on this long list. In other words: I find it quite useless, as there is no unbiased comparison, no guidance as to what tool might be the best-fitting for anyone's use case.

@jvns

jvns commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

I agree the list of current GUIs is a little hard to use. That said, this "let's try to curate a list of links to everything relevant" feels very early-2000s in a way that I find kind of nice. I appreciate a manually curated list even if in 2026 that list has become impossible to curate.

How about (for now) just replacing "If you want to add another GUI tool to this list, just follow the instructions." with "This list is closed to new submissions"? Then it wouldn't require ongoing maintenance, and we could decide later how to handle it. (optimistically, maybe the explosion of new LLM-generated tools will settle down in 5 years or something)

@dscho

dscho commented Jul 5, 2026

Copy link
Copy Markdown
Member Author

Then it wouldn't require ongoing maintenance

@jvns but I fear that it does, actually, already require maintenance. Have a look at giggle and Aurees, for example. They are no longer under active development, yet they are in the list. How is this useful? Vershd points to GitBreeze and therefore needs updating (or removing, given that GitBreeze has its own entry). https://gitviewer.com/ and http://gitdrive.com/ do not resolve anymore. The commandgit.com domain seems to be up for sale.

In other words, nobody takes care of this list. Such a list is worse than useless, it is actively advertising tools that should not be advertised.

Note: I am not volunteering to take care of this list, hence my proposal to simply remove it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants