diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java
index 3545b1ff42..fc516512d4 100644
--- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java
+++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformReleases.java
@@ -44,12 +44,14 @@ public class ContributedPlatformReleases {
   public final List<ContributedPlatform> releases;
   public final List<String> versions;
   public ContributedPlatform selected = null;
+  public boolean deprecated;
 
   public ContributedPlatformReleases(ContributedPlatform platform) {
     packager = platform.getParentPackage();
     arch = platform.getArchitecture();
     releases = new LinkedList<>();
     versions = new LinkedList<>();
+    deprecated = platform.isDeprecated();
     add(platform);
   }
 
@@ -65,7 +67,9 @@ public void add(ContributedPlatform platform) {
     if (version != null) {
       versions.add(version);
     }
-    selected = getLatest();
+    ContributedPlatform latest = getLatest();
+    selected = latest;
+    deprecated = latest.isDeprecated();
   }
 
   public ContributedPlatform getInstalled() {
@@ -89,6 +93,10 @@ public ContributedPlatform getSelected() {
     return selected;
   }
 
+  public boolean isDeprecated() {
+    return deprecated;
+  }
+
   public void select(ContributedPlatform value) {
     for (ContributedPlatform plat : releases) {
       if (plat == value) {
diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java
index 75e26783df..19961c1c97 100644
--- a/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java
+++ b/app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java
@@ -232,6 +232,9 @@ void update(JTable parentTable, Object value, boolean hasBuiltInRelease) {
               + format(tr("version <b>{0}</b>"), installed.getParsedVersion())
               + " <strong><font color=\"#00979D\">INSTALLED</font></strong>";
     }
+    if (releases.isDeprecated()) {
+      desc += " <strong><font color=\"#C03030\">DEPRECATED</font></strong>";
+    }
     desc += "<br />";
 
     desc += tr("Boards included in this package:") + "<br />";
diff --git a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java
index 7472c62479..f7dbd95d75 100644
--- a/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java
+++ b/app/src/cc/arduino/contributions/packages/ui/ContributionIndexTableModel.java
@@ -36,6 +36,7 @@
 import processing.app.BaseNoGui;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
@@ -73,6 +74,18 @@ private void updateContributions() {
         addContribution(platform);
       }
     }
+    Collections.sort(contributions, (x,y)-> {
+      if (x.isDeprecated() != y.isDeprecated()) {
+        return x.isDeprecated() ? 1 : -1;
+      }
+      ContributedPlatform x1 = x.getLatest();
+      ContributedPlatform y1 = y.getLatest();
+      int category = (x1.getCategory().equals("Arduino") ? -1 : 0) + (y1.getCategory().equals("Arduino") ? 1 : 0);
+      if (category != 0) {
+        return category;
+      }
+      return x1.getName().compareToIgnoreCase(y1.getName());
+    });
     fireTableDataChanged();
   }
 
diff --git a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java
index 5fea546c10..6c11a4cc26 100644
--- a/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java
+++ b/arduino-core/src/cc/arduino/contributions/packages/ContributedPlatform.java
@@ -29,11 +29,18 @@
 
 package cc.arduino.contributions.packages;
 
-import cc.arduino.contributions.DownloadableContribution;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
-import java.io.File;
-import java.util.*;
+import cc.arduino.contributions.DownloadableContribution;
 
 public class ContributedPlatform extends DownloadableContribution {
 
@@ -45,21 +52,26 @@ public class ContributedPlatform extends DownloadableContribution {
   private String category;
   private String architecture;
   private String checksum;
-  private ArrayList<ContributedToolReference> toolsDependencies = new ArrayList<ContributedToolReference>();
-  private ArrayList<ContributedBoard> boards = new ArrayList<ContributedBoard>();
+  private ArrayList<ContributedToolReference> toolsDependencies = new ArrayList<>();
+  private ArrayList<ContributedBoard> boards = new ArrayList<>();
   private ContributedHelp help;
   private boolean installed;
   private File installedFolder;
   private boolean builtIn;
   private Map<ContributedToolReference, ContributedTool> resolvedToolReferences;
   private ContributedPackage parentPackage;
+  private boolean deprecated;
 
+  @Override
   public String getUrl() { return url; }
 
+  @Override
   public String getVersion() { return version; }
 
+  @Override
   public long getSize() { return size; }
 
+  @Override
   public String getArchiveFileName() { return archiveFileName; }
 
   public String getName() { return name; }
@@ -146,6 +158,14 @@ public void setParentPackage(ContributedPackage parentPackage) {
     this.parentPackage = parentPackage;
   }
 
+  public boolean isDeprecated() {
+    return deprecated;
+  }
+
+  public void setDeprecated(boolean deprecated) {
+    this.deprecated = deprecated;
+  }
+
   @Override
   public String toString() {
     return getParsedVersion();