diff --git a/modules/gui/src/components/SuggestedPackages/SuggestedPackages.svelte b/modules/gui/src/components/SuggestedPackages/SuggestedPackages.svelte
new file mode 100644
index 0000000..3e024ba
--- /dev/null
+++ b/modules/gui/src/components/SuggestedPackages/SuggestedPackages.svelte
@@ -0,0 +1,63 @@
+
+
+
+
+ {#if packages.length > 0}
+ {#each packages as pkg}
+
+
{
+ try {
+ pkg.state = PackageStates.INSTALLING;
+ await installPackage(pkg.full_name);
+ pkg.state = PackageStates.INSTALLED;
+ } catch (error) {
+ console.error(error);
+ }
+ }}
+ />
+
+ {/each}
+ {:else}
+ {#each Array(9) as _}
+
+ {/each}
+ {/if}
+
diff --git a/modules/gui/src/routes/packages/[slug]/+page.svelte b/modules/gui/src/routes/packages/[slug]/+page.svelte
index 5ed7afd..0e83113 100644
--- a/modules/gui/src/routes/packages/[slug]/+page.svelte
+++ b/modules/gui/src/routes/packages/[slug]/+page.svelte
@@ -5,7 +5,7 @@
import PackageBanner from '$components/PackageBanner/PackageBanner.svelte';
import PackageReviews from '$components/PackageReviews/PackageReviews.svelte';
import type { Review } from '@tea/ui/types';
-
+ import SuggestedPackages from '$components/SuggestedPackages/SuggestedPackages.svelte';
navStore.set('/packages');
/** @type {import('./$types').PageData} */
@@ -44,4 +44,9 @@
+ {#if pkg}
+
+ {/if}