From KDE Community Wiki

The kde.org/applications site is the main way of advertising our Applications, a primary output from KDE.

The frontend is kde-org-applications some PHP (which works with KDE.org) to read that metadata. The .htaccess does clever things to make the URLs look nice while just passing them to the PHP files that make the index and app pages.

The backend is kde-applications-appstream-extractor a set of Ruby scripts to generate the metadata.

The main Ruby script in turn uses projects.kde.org which is a JSON API to list KDE projects. You update this by editing repo-metadata json files.

The script then uses KDE's CI Tooling Python scripts to download the output for each project from KDE CI. See KDE CI docs for how to add projects here.

If it does not find anything in KDE CI (and whyever not?) then it downloads the project source from Git.

Using the CI output or Git for each project the script then looks for Appstream metadata (org.kde.foo.appstream.xml) files and Desktop metadata (org.kde.foo.desktop) files to feed it with meta data. This is where you need to edit your app meta data to keep it up to date. You can add screenshots into product-screenshots (beware this site only updates after an hour or so).

To add AppStream metadata to your projects see our AppStream Guide. As well as being used for kde.org/applications it will also be used in Discover and every other app installer by distros and container packages such as Snaps Flatpaks and Appimage.

kde-applications-appstream also has a list of unmaintained apps it needs to list, this needs manually updated as most unmaintained apps never got on kde.org so never should be listed but those which have been there should have their links not disappear.

Any questions ask Jonathan Riddell


If your favourite app does not appear on the page it could be because:

  • There is no appdata.xml file in the repo
  • appdata.xml is not valid (use appstreamcli validate to check)
  • There is no icon for it in breeze-icons theme
  • It is marked as unmaintained in unmaintained.json
  • It is marked as unmaintained in repo-metadata
  • It is in playground or kdereview in repo-metadata

See the binary-factory job for build logs you can grep.

Version Numbers

Still to be added is into on the version numbers and dates but it needs running appstream-metainfo-release-update by the release manager before doing the release to add it to the appstream file.

App Foo is Unmaintained

If an app is unmaintained then it should be moved to unmaintained in repo-metadata. But do check with all possible contributors before moving it as it makes the translations disappear and they can't be recovered. You can also just mark it unmaintained in unmaintained.json and if it has no git repo in KDE any more then also add it to unmaintained-no-repo.json