+ @for (edit of edits | editFilter : showRejectedEdits : showPublishedEdits; track edit) {
+
+}
+ @if (edits.length === 0) {
+
No edits
+}
+
diff --git a/src/app/app-details-screen/app-details-screen.component.scss b/src/app/app-details-screen/app-details-screen.component.scss
new file mode 100644
index 0000000..d65fc1e
--- /dev/null
+++ b/src/app/app-details-screen/app-details-screen.component.scss
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2023-2025 Logan Magee
+ *
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+mat-divider {
+ margin-top: 2rem;
+}
+
+mat-form-field {
+ width: 50em;
+}
+
+textarea {
+ resize: none;
+}
+
+.grid-base {
+ display: grid;
+ column-gap: 1rem;
+ row-gap: 1rem;
+ padding-top: 1rem;
+}
+
+.grid-forms {
+ @extend .grid-base;
+ grid-template-columns: min-content min-content;
+}
+
+.grid-cards {
+ @extend .grid-base;
+ grid-template-columns: repeat(3, 1fr);
+}
+
+.section-header {
+ padding-top: 2rem;
+}
diff --git a/src/app/app-details-screen/app-details-screen.component.spec.ts b/src/app/app-details-screen/app-details-screen.component.spec.ts
new file mode 100644
index 0000000..e072544
--- /dev/null
+++ b/src/app/app-details-screen/app-details-screen.component.spec.ts
@@ -0,0 +1,25 @@
+// Copyright 2023-2025 Logan Magee
+//
+// SPDX-License-Identifier: AGPL-3.0-only
+
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { AppDetailsScreenComponent } from './app-details-screen.component';
+
+describe('AppDetailsScreenComponent', () => {
+ let component: AppDetailsScreenComponent;
+ let fixture: ComponentFixture