diff --git a/lib/all-badge-examples.js b/lib/all-badge-examples.js
index ce2bdb71406c3bcc20bc0cd93ee65eda3c4b7963..93a14149184315b27484c085561a65ae7a209306 100644
--- a/lib/all-badge-examples.js
+++ b/lib/all-badge-examples.js
@@ -94,6 +94,13 @@ const allBadgeExamples = [
     },
     examples: [],
   },
+  {
+    category: {
+      id: 'activity',
+      name: 'Activity',
+    },
+    examples: [],
+  },
   {
     category: {
       id: 'other',
diff --git a/services/categories.js b/services/categories.js
index dcfd96a8fbac12fd20289ffc6aea1e9dda603f56..b543939f5716843a99f7aee32da98d8df90d8ba0 100644
--- a/services/categories.js
+++ b/services/categories.js
@@ -16,6 +16,7 @@ const categories = [
   { id: 'version', name: 'Version' },
   { id: 'platform-support', name: 'Platform & Version Support' },
   { id: 'monitoring', name: 'Monitoring' },
+  { id: 'activity', name: 'Activity' },
   { id: 'other', name: 'Other' },
 ]
 
diff --git a/services/eclipse-marketplace/eclipse-marketplace-update.service.js b/services/eclipse-marketplace/eclipse-marketplace-update.service.js
index cf2a80fbdfb69f920c6eec1669b5adfcfed85652..90c91ea20c8d98800d86fa59d0578285053f1bc7 100644
--- a/services/eclipse-marketplace/eclipse-marketplace-update.service.js
+++ b/services/eclipse-marketplace/eclipse-marketplace-update.service.js
@@ -16,7 +16,7 @@ const updateResponseSchema = Joi.object({
 
 module.exports = class EclipseMarketplaceUpdate extends EclipseMarketplaceBase {
   static get category() {
-    return 'other'
+    return 'activity'
   }
 
   static get defaultBadgeData() {
diff --git a/services/github/github-commit-activity.service.js b/services/github/github-commit-activity.service.js
index 7bc93cd87b9411c5ba8f9a9af97bcfb67451244f..40f0dcb2dffa4d753902b94acea0f4e6636f8109 100644
--- a/services/github/github-commit-activity.service.js
+++ b/services/github/github-commit-activity.service.js
@@ -13,7 +13,7 @@ const {
 
 module.exports = class GithubCommitActivity extends LegacyService {
   static get category() {
-    return 'version'
+    return 'activity'
   }
 
   static get route() {
diff --git a/services/github/github-commit-status.service.js b/services/github/github-commit-status.service.js
index be8767a4bd1400ce21116d5aa4839ae585ff7b8f..8f55840cb4a818253dcd82be7e8f826da3455603 100644
--- a/services/github/github-commit-status.service.js
+++ b/services/github/github-commit-status.service.js
@@ -9,7 +9,7 @@ const {
 
 module.exports = class GithubCommitStatus extends LegacyService {
   static get category() {
-    return 'other'
+    return 'issue-tracking'
   }
 
   static get route() {
diff --git a/services/github/github-commits-since.service.js b/services/github/github-commits-since.service.js
index 2d7954ee1b963538cee4401fc0a91706ee4ceeda..d6e782c4de190c23435bf41811e3f58f779ea2f4 100644
--- a/services/github/github-commits-since.service.js
+++ b/services/github/github-commits-since.service.js
@@ -10,7 +10,7 @@ const { documentation } = require('./github-helpers')
 
 module.exports = class GithubCommitsSince extends LegacyService {
   static get category() {
-    return 'version'
+    return 'activity'
   }
 
   static get route() {
diff --git a/services/github/github-contributors.service.js b/services/github/github-contributors.service.js
index ff7367ae59943e61f82ad41caa644a1ad9ff135a..20b5d5755dec4972d5fcaa6bf707399849d36c66 100644
--- a/services/github/github-contributors.service.js
+++ b/services/github/github-contributors.service.js
@@ -13,7 +13,7 @@ const {
 
 module.exports = class GithubContributors extends LegacyService {
   static get category() {
-    return 'other'
+    return 'activity'
   }
 
   static get route() {
diff --git a/services/github/github-last-commit.service.js b/services/github/github-last-commit.service.js
index f8ec4a9150b1488d7db4c4ee2cbf0ab70b2cf7ca..a245aa4b1ecf2d9b7c3d04954e5e3a7a58aee722 100644
--- a/services/github/github-last-commit.service.js
+++ b/services/github/github-last-commit.service.js
@@ -14,7 +14,7 @@ const {
 
 module.exports = class GithubLastCommit extends LegacyService {
   static get category() {
-    return 'other'
+    return 'activity'
   }
 
   static get route() {
diff --git a/services/github/github-release-date.service.js b/services/github/github-release-date.service.js
index bb56433bf76d02a3baf0bd7e90229ea69f802429..79b9c0f956f3e12a3b859acdbabf861a77e44216 100644
--- a/services/github/github-release-date.service.js
+++ b/services/github/github-release-date.service.js
@@ -12,7 +12,7 @@ const { documentation } = require('./github-helpers')
 
 module.exports = class GithubReleaseDate extends LegacyService {
   static get category() {
-    return 'other'
+    return 'activity'
   }
 
   static get route() {
diff --git a/services/npm/npm-type-definitions.service.js b/services/npm/npm-type-definitions.service.js
index c7b9bde72a80182e021c66b60289b0e743e3c440..353dc67e72f173585ea724d8d4dfeaf6108fbbb9 100644
--- a/services/npm/npm-type-definitions.service.js
+++ b/services/npm/npm-type-definitions.service.js
@@ -7,7 +7,7 @@ const NpmBase = require('./npm-base')
 // package.json.
 module.exports = class NpmTypeDefinitions extends NpmBase {
   static get category() {
-    return 'other'
+    return 'platform-support'
   }
 
   static get defaultBadgeData() {
diff --git a/services/php-eye/php-eye-hhvm.service.js b/services/php-eye/php-eye-hhvm.service.js
index 5ec23795e70bdb73bf49df2f3392816bb5bb56ad..b15f00eacbcdc2d6615c45ee2f25cd8c73e6eadd 100644
--- a/services/php-eye/php-eye-hhvm.service.js
+++ b/services/php-eye/php-eye-hhvm.service.js
@@ -7,7 +7,7 @@ const { omitv } = require('../../lib/text-formatters')
 
 module.exports = class PhpeyeHhvm extends LegacyService {
   static get category() {
-    return 'version'
+    return 'platform-support'
   }
 
   static get route() {
diff --git a/services/php-eye/php-eye-php-version.service.js b/services/php-eye/php-eye-php-version.service.js
index df8cf0c05862b3e74bf95a7b749cde2583376bd1..11d50b531920143b46d7da92dbf843f2d1584c84 100644
--- a/services/php-eye/php-eye-php-version.service.js
+++ b/services/php-eye/php-eye-php-version.service.js
@@ -10,7 +10,7 @@ const log = require('../../lib/log')
 
 module.exports = class PhpEyePhpVersion extends LegacyService {
   static get category() {
-    return 'version'
+    return 'platform-support'
   }
 
   static get route() {
diff --git a/services/puppetforge/puppetforge-modules.service.js b/services/puppetforge/puppetforge-modules.service.js
index 2020848051c548bb754ffdba91cbcedeb748e67a..3b60333fc3a3e4a63d89e5810938d11047aa0fc3 100644
--- a/services/puppetforge/puppetforge-modules.service.js
+++ b/services/puppetforge/puppetforge-modules.service.js
@@ -83,7 +83,7 @@ class PuppetforgeModuleEndorsement extends LegacyService {
 
 class PuppetforgeModuleFeedback extends LegacyService {
   static get category() {
-    return 'other'
+    return 'rating'
   }
 
   static get route() {
diff --git a/services/pypi/pypi-implementation.service.js b/services/pypi/pypi-implementation.service.js
index 1a49484bde8e7167454bd16f671693fbb136169b..96adfa2eb8c3263a0170a101d62263af33d90db4 100644
--- a/services/pypi/pypi-implementation.service.js
+++ b/services/pypi/pypi-implementation.service.js
@@ -5,7 +5,7 @@ const { parseClassifiers } = require('./pypi-helpers')
 
 module.exports = class PypiImplementation extends PypiBase {
   static get category() {
-    return 'other'
+    return 'platform-support'
   }
 
   static get route() {
diff --git a/services/pypi/pypi-wheel.service.js b/services/pypi/pypi-wheel.service.js
index 1f1f9514042e5b26503c5ec771645cc6062fe0d5..bdbbd9788508e6f329be9cd789455f3807338c6b 100644
--- a/services/pypi/pypi-wheel.service.js
+++ b/services/pypi/pypi-wheel.service.js
@@ -5,7 +5,7 @@ const { getPackageFormats } = require('./pypi-helpers')
 
 module.exports = class PypiWheel extends PypiBase {
   static get category() {
-    return 'other'
+    return 'platform-support'
   }
 
   static get route() {
diff --git a/services/stackexchange/stackexchange-monthlyquestions.service.js b/services/stackexchange/stackexchange-monthlyquestions.service.js
index 92a4106fccb8b3c29e75613a70ade271ab52810f..bb71f744dfefb184179da66297439320786e36de 100644
--- a/services/stackexchange/stackexchange-monthlyquestions.service.js
+++ b/services/stackexchange/stackexchange-monthlyquestions.service.js
@@ -13,7 +13,7 @@ const tagSchema = Joi.object({
 
 module.exports = class StackExchangeMonthlyQuestions extends BaseJsonService {
   static get category() {
-    return 'other'
+    return 'chat'
   }
 
   static get defaultBadgeData() {
diff --git a/services/stackexchange/stackexchange-reputation.service.js b/services/stackexchange/stackexchange-reputation.service.js
index 7b7ce7cbb38df0c067e391b3c1eb7e63fcfd216f..3ab35ccb6f74c32188a5e2aa5b63d878f5a27d01 100644
--- a/services/stackexchange/stackexchange-reputation.service.js
+++ b/services/stackexchange/stackexchange-reputation.service.js
@@ -20,7 +20,7 @@ const reputationSchema = Joi.object({
 
 module.exports = class StackExchangeReputation extends BaseJsonService {
   static get category() {
-    return 'rating'
+    return 'chat'
   }
 
   static get route() {
diff --git a/services/stackexchange/stackexchange-taginfo.service.js b/services/stackexchange/stackexchange-taginfo.service.js
index 2baf8b3626e88c069c6a1133ad62433337289269..803abaac582b4ffd0ef9d1b9f985a182169ba574 100644
--- a/services/stackexchange/stackexchange-taginfo.service.js
+++ b/services/stackexchange/stackexchange-taginfo.service.js
@@ -19,7 +19,7 @@ const tagSchema = Joi.object({
 
 module.exports = class StackExchangeQuestions extends BaseJsonService {
   static get category() {
-    return 'other'
+    return 'chat'
   }
 
   static get defaultBadgeData() {
diff --git a/services/steam/steam-workshop.service.js b/services/steam/steam-workshop.service.js
index cdb0e190ac983a5247df6bc887ca62d3db79c55d..f6e60396147345db219cf9fc02d704f03ba44daf 100644
--- a/services/steam/steam-workshop.service.js
+++ b/services/steam/steam-workshop.service.js
@@ -221,14 +221,6 @@ class SteamFileService extends BaseSteamAPI {
   async onRequest({ response }) {
     throw new Error(`onRequest() wasn't implemented for ${this.name}`)
   }
-
-  static get defaultBadgeData() {
-    return { label: 'steam' }
-  }
-
-  static get category() {
-    return 'other'
-  }
 }
 
 class SteamFileSize extends SteamFileService {
@@ -300,6 +292,10 @@ class SteamFileReleaseDate extends SteamFileService {
       },
     ]
   }
+
+  static get category() {
+    return 'activity'
+  }
 }
 
 class SteamFileSubscriptions extends SteamFileService {
@@ -442,6 +438,10 @@ class SteamFileViews extends SteamFileService {
       },
     ]
   }
+
+  static get category() {
+    return 'other'
+  }
 }
 
 module.exports = {
diff --git a/services/travis/travis-php-version.service.js b/services/travis/travis-php-version.service.js
index 8c39ea09144712b6d1bc2312f27bdf7b13d0e1c8..4c23fa47fd0b3c38d58c2c0944ca49d51c41ab91 100644
--- a/services/travis/travis-php-version.service.js
+++ b/services/travis/travis-php-version.service.js
@@ -11,7 +11,7 @@ const {
 
 module.exports = class TravisPhpVersion extends LegacyService {
   static get category() {
-    return 'version'
+    return 'platform-support'
   }
 
   static get route() {
diff --git a/services/vaadin-directory/vaadin-directory.service.js b/services/vaadin-directory/vaadin-directory.service.js
index 1a122b0579a83ad9b6a41f10bd8256f9a470c5f4..3c47841cba6263cb96bf8f80a9c411bc1c91bd47 100644
--- a/services/vaadin-directory/vaadin-directory.service.js
+++ b/services/vaadin-directory/vaadin-directory.service.js
@@ -136,7 +136,7 @@ class VaadinDirectoryStatus extends LegacyService {
 
 class VaadinDirectoryReleaseDate extends LegacyService {
   static get category() {
-    return 'other'
+    return 'activity'
   }
 
   static get route() {