diff --git a/godoc/dl/dl.go b/godoc/dl/dl.go
index e50b0c2..977ba98 100644
--- a/godoc/dl/dl.go
+++ b/godoc/dl/dl.go
@@ -48,15 +48,15 @@
 }
 
 type File struct {
-	Filename       string    `json:"filename"`
-	OS             string    `json:"os"`
-	Arch           string    `json:"arch"`
-	Version        string    `json:"-"`
-	Checksum       string    `json:"-" datastore:",noindex"` // SHA1; deprecated
-	ChecksumSHA256 string    `json:"sha256" datastore:",noindex"`
-	Size           int64     `json:"size" datastore:",noindex"`
-	Kind           string    `json:"kind"` // "archive", "installer", "source"
-	Uploaded       time.Time `json:"-"`
+	Filename       string
+	OS             string
+	Arch           string
+	Version        string
+	Checksum       string `datastore:",noindex"` // SHA1; deprecated
+	ChecksumSHA256 string `datastore:",noindex"`
+	Size           int64  `datastore:",noindex"`
+	Kind           string // "archive", "installer", "source"
+	Uploaded       time.Time
 }
 
 func (f File) ChecksumType() string {
@@ -137,11 +137,11 @@
 }
 
 type Release struct {
-	Version        string `json:"version"`
-	Stable         bool   `json:"stable"`
-	Files          []File `json:"files"`
-	Visible        bool   `json:"-"` // show files on page load
-	SplitPortTable bool   `json:"-"` // whether files should be split by primary/other ports.
+	Version        string
+	Stable         bool
+	Files          []File
+	Visible        bool // show files on page load
+	SplitPortTable bool // whether files should be split by primary/other ports.
 }
 
 type Feature struct {
@@ -221,18 +221,6 @@
 			log.Errorf(c, "cache set error: %v", err)
 		}
 	}
-
-	if r.URL.Query().Get("mode") == "json" {
-		w.Header.Set("Content-Type", "application/json")
-
-		e := json.NewEncoder(w).SetIndent("", " ")
-		if err := e.Encode(d.Stable); err != nil {
-			log.Errorf(c, "failed rendering JSON for releases: %v", err)
-		}
-
-		return
-	}
-
 	if err := listTemplate.ExecuteTemplate(w, "root", d); err != nil {
 		log.Errorf(c, "error executing template: %v", err)
 	}
