diff --git a/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AppsStep.razor b/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AppsStep.razor
new file mode 100644
index 0000000..e2d7498
--- /dev/null
+++ b/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AppsStep.razor
@@ -0,0 +1,45 @@
+@using SilverOS.Welcome.Core.Apps
+@inject WizardState State
+
+
+
Choose your apps
+
We'll install these during setup. The SilverLABS Stack (browser, VPN, keys) is already included.
+
+ @foreach (var grp in _groups)
+ {
+
@GroupTitle(grp.Key)
+
+ @foreach (var app in grp)
+ {
+
+ }
+
+ }
+
+
+@code {
+ [Parameter] public IReadOnlyList Apps { get; set; } = Array.Empty();
+
+ private IEnumerable> _groups =>
+ Apps.GroupBy(a => a.Group).OrderByDescending(g => g.Key == "essentials");
+
+ private static string GroupTitle(string g) => g switch
+ {
+ "essentials" => "Essentials",
+ "developer" => "Developer tools",
+ "journalist" => "Journalist tools",
+ "daily-driver" => "Everyday apps",
+ "privacy-max" => "Privacy tools",
+ _ => g
+ };
+
+ void Toggle(string id, bool on)
+ {
+ if (on) State.SelectedApps.Add(id); else State.SelectedApps.Remove(id);
+ }
+}