diff --git a/recipes/neverball/manifest-neverball b/recipes/neverball/manifest-neverball
new file mode 100644
index 0000000000000000000000000000000000000000..17458f44636e4e6a960a3cbbfa826d11bf678c5f
--- /dev/null
+++ b/recipes/neverball/manifest-neverball
@@ -0,0 +1,5 @@
+name=Neverball
+binary=/games/neverball/neverball
+icon=/ui/icons/apps/neverball.png
+author=The Neverball Developers
+description=Neverball
diff --git a/recipes/neverball/manifest-neverputt b/recipes/neverball/manifest-neverputt
new file mode 100644
index 0000000000000000000000000000000000000000..d33f7e6d4713d1ba0a015a982fc973a242c58cd5
--- /dev/null
+++ b/recipes/neverball/manifest-neverputt
@@ -0,0 +1,5 @@
+name=Neverputt
+binary=/games/neverball/neverputt
+icon=/ui/icons/apps/neverputt.png
+author=The Neverputt Developers
+description=Neverputt
diff --git a/recipes/neverball/recipe.sh b/recipes/neverball/recipe.sh
index 3edbb90eda491e68e12d260047a013c9bdb5a9a3..4ef177545a00f30ec7f16bbfee9b74c78d837ae1 100644
--- a/recipes/neverball/recipe.sh
+++ b/recipes/neverball/recipe.sh
@@ -25,11 +25,25 @@ function recipe_clean {
 
 function recipe_stage {
     dest="$(realpath $1)"
-    mkdir -p "${dest}/games/neverball"
+
+    # Create install directories
+    mkdir -pv "${dest}/games/neverball" "${dest}/ui/apps" "${dest}/ui/icons/apps"
+
+    # Copy assets
+    cp -rv data "${dest}/games/neverball"
+
+    # For each game
     for bin in neverball neverputt
     do
-        "${STRIP}" -v "$bin" -o "${dest}/games/neverball/$bin"
+        # Install binary
+        "${STRIP}" -v "${bin}" -o "${dest}/games/neverball/${bin}"
+
+        # Install manifest
+        cp -v "${COOKBOOK_RECIPE}/manifest-${bin}" "${dest}/ui/apps/${bin}"
+
+        # Install icon
+        cp -v "dist/${bin}_48.png" "${dest}/ui/icons/apps/${bin}.png"
     done
-    cp -rv data "${dest}/games/neverball"
+
     skip=1
 }