diff --git a/opentech/public/projects/models.py b/opentech/public/projects/models.py
index 3f4c6e998123a0d53ddf7085dc4d09c97f6e339a..38e8828d7994c281928663f6032bda8183524f7e 100644
--- a/opentech/public/projects/models.py
+++ b/opentech/public/projects/models.py
@@ -165,7 +165,7 @@ class ProjectIndexPage(BasePage):
 
     def get_context(self, request, *args, **kwargs):
         context = super().get_context(request, *args, **kwargs)
-        subpages = ProjectPage.objects.descendant_of(self).live().public().select_related('icon')
+        subpages = ProjectPage.objects.descendant_of(self).live().public().select_related('icon').order_by('-first_published_at')
         per_page = settings.DEFAULT_PER_PAGE
         page_number = request.GET.get('page')
         paginator = Paginator(subpages, per_page)