diff --git a/server/HtmlOrphans.hs b/server/HtmlOrphans.hs
index c6f74d58096787303b99666f3d47dabd7033bb44..bf06d4c6c3447e3e2a204b7d6c4c28434b9f184d 100644
--- a/server/HtmlOrphans.hs
+++ b/server/HtmlOrphans.hs
@@ -131,6 +131,11 @@ badge level = span_ [class_ badgetype]
             Error      -> "badge badge-danger"
             Fatal      -> "badge badge-danger"
 
+-- | pseudo-level badge when we don't even have an info lint
+-- (rare, but it does happen!)
+badgeHurray :: Monad m => HtmlT m() -> HtmlT m ()
+badgeHurray = span_ [class_ "badge badge-success"]
+
 -- | Lint Levels directly render into badges
 instance ToHtml Level where
   toHtml level = do badge level (show level); " "
@@ -216,14 +221,17 @@ instance ToHtml (Org True, RemoteRef, DirResult a) where
       h2_ "Maps"
       flip M.foldMapWithKey dirresultMaps $ \name MapResult { .. } -> do
         h3_ (toHtml name)
-        ul_ $ forM_ mapresultGeneral $ \lint ->
-          li_ (toHtml lint)
-        unless (null mapresultLayer) $ do
-          h4_ "Layers"
-          ul_ (listMapWithKey mapresultLayer)
-        unless (null mapresultTileset) $ do
-          h4_ "Tilesets"
-          ul_ (listMapWithKey mapresultTileset)
+        if null mapresultGeneral && null mapresultLayer && null mapresultTileset
+        then ul_ $ li_ $ badgeHurray "All good!"
+        else do
+          ul_ $ forM_ mapresultGeneral $ \lint ->
+            li_ (toHtml lint)
+          unless (null mapresultLayer) $ do
+            h4_ "Layers"
+            ul_ (listMapWithKey mapresultLayer)
+          unless (null mapresultTileset) $ do
+            h4_ "Tilesets"
+            ul_ (listMapWithKey mapresultTileset)
 
     where
       maxlevel = maximumLintLevel res