diff --git a/server_apps.go b/server_apps.go
index fe20e0cf30fb11e2de9e8c4599203534e1ecd7d4..02214792c8cc9c18e6d9a8c414458ca5cc00b202 100644
--- a/server_apps.go
+++ b/server_apps.go
@@ -28,10 +28,21 @@ import (
 	"github.com/pelletier/go-toml/v2"
 )
 
+type appStyleFloatie struct {
+	Symbol  string  `json:"symbol"`
+	Color   string  `json:"color"`
+}
+
+type appStyle struct {
+	Background  string              `json:"background"`
+	Floaties    []appStyleFloatie   `json:"floaties"`
+}
+
 type appPatch struct{
-	repository string
-	zip       []byte
-	targz     []byte
+	version     int
+	repository  string
+	zip         []byte
+	targz       []byte
 }
 
 type appStatus struct{
@@ -73,6 +84,7 @@ type appInfo struct {
 	firstErr error
 	tags    []string
 	status *appStatus
+	style *appStyle
 }
 
 type GLProject struct {
@@ -296,6 +308,7 @@ func (s *server) parseAppToml(ctx context.Context, pathInRepo string, obj *objec
 			Description string
 			Version     int
 		}
+        Style map[string]interface{}
 	}
 	dec := toml.NewDecoder(reader)
 	err = dec.Decode(&data)
@@ -329,7 +342,7 @@ func (s *server) parseAppToml(ctx context.Context, pathInRepo string, obj *objec
 		return nil, fmt.Errorf("metadata description too long (must be <= 140 chars)")
 	}
 
-	return &appInfo{
+	ret := appInfo{
 		name:        data.App.Name,
 		author:      data.Metadata.Author,
 		menu:        data.App.Category,
@@ -337,7 +350,37 @@ func (s *server) parseAppToml(ctx context.Context, pathInRepo string, obj *objec
 		version:     data.Metadata.Version,
 		commit:      obj.Hash.String(),
 		commitObj:   obj,
-	}, nil
+		style:      nil,
+	}
+
+	if col, ok := data.Style["background"].(string); ok {
+		style := appStyle{
+			Background: col,
+		}
+		if floaties, ok := data.Style["floaties"].([]interface{}); ok {
+			for x:=0; x<len(floaties); x++ {
+				floatie, ok := floaties[x].(map[string]interface{})
+				if !ok {
+					continue
+				}
+				col, ok := floatie["color"].(string)
+				if !ok {
+					continue
+				}
+				symbol, ok := floatie["symbol"].(string)
+				if !ok {
+					symbol = "flow3r"
+				}
+				f := appStyleFloatie{
+					Symbol: symbol,
+					Color: col,
+				}
+				style.Floaties = append(style.Floaties, f)
+			}
+		}
+		ret.style = &style
+	}
+	return &ret, nil
 }
 
 func (s *server) getAppInfo(ctx context.Context, pathInRepo, repo string, slug *string) (*appInfo, error) {
@@ -617,6 +660,7 @@ func (s *server) getAppRegistry(ctx context.Context) (*appRegistry, error) {
 								repository: patch,
 								zip: patch_info.zip,
 								targz: patch_info.targz,
+								version: patch_info.version,
 							}
 						}
 					}
@@ -635,9 +679,10 @@ func (s *server) getAppRegistry(ctx context.Context) (*appRegistry, error) {
 }
 
 type jsonAppPatch struct{
-	RepoURL        string    `json:"repoUrl"`
-	DownloadURL    string    `json:"downloadUrl"`
-	TarDownloadURL string    `json:"tarDownloadUrl"`
+	Version        int      `json:"version"`
+	RepoURL        string   `json:"repoUrl"`
+	DownloadURL    string   `json:"downloadUrl"`
+	TarDownloadURL string   `json:"tarDownloadUrl"`
 }
 
 type jsonAppStatus struct{
@@ -660,7 +705,8 @@ type jsonApp struct {
 	Tags           []string  `json:"tags"`
 	Timestamp      time.Time `json:"timestamp"`
 	Flow3rSeed     string    `json:"flow3rSeed"`
-	Status          *jsonAppStatus  `json:"status"`
+	Status         *jsonAppStatus  `json:"status"`
+    Style          *appStyle       `json:"style"`
 }
 
 func makeJsonApp(a *appDescriptor) jsonApp {
@@ -678,6 +724,7 @@ func makeJsonApp(a *appDescriptor) jsonApp {
 		Stars:          a.appInfo.stars,
 		Flow3rSeed:     a.appInfo.flow3rSeed,
 		Tags:           a.appInfo.tags,
+		Style:        a.appInfo.style,
 	}
 	if a.appInfo.status != nil{
 		ret.Status = &jsonAppStatus{
@@ -690,6 +737,7 @@ func makeJsonApp(a *appDescriptor) jsonApp {
 				RepoURL:        "https://git.flow3r.garden/" + pa,
 				DownloadURL:    fmt.Sprintf("%sapps/zip/%s.zip", flagBaseURL, pa),
 				TarDownloadURL: fmt.Sprintf("%sapps/tar/%s.tar.gz", flagBaseURL, pa),
+				Version: a.appInfo.status.patch.version,
 			}
 		}
 	}