diff --git a/frontend/src/routes/(app)/(nns)/portfolio/+layout.svelte b/frontend/src/routes/(app)/(nns)/portfolio/+layout.svelte
new file mode 100644
index 00000000000..b9015b3b6e6
--- /dev/null
+++ b/frontend/src/routes/(app)/(nns)/portfolio/+layout.svelte
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/routes/(app)/(nns)/portfolio/+page.svelte b/frontend/src/routes/(app)/(nns)/portfolio/+page.svelte
new file mode 100644
index 00000000000..0fbba997890
--- /dev/null
+++ b/frontend/src/routes/(app)/(nns)/portfolio/+page.svelte
@@ -0,0 +1,2 @@
+
diff --git a/frontend/src/tests/routes/app/portfolio/layout.spec.ts b/frontend/src/tests/routes/app/portfolio/layout.spec.ts
new file mode 100644
index 00000000000..e21717e8892
--- /dev/null
+++ b/frontend/src/tests/routes/app/portfolio/layout.spec.ts
@@ -0,0 +1,19 @@
+import { layoutTitleStore } from "$lib/stores/layout.store";
+import PortfolioLayout from "$routes/(app)/(nns)/portfolio/+layout.svelte";
+import { render } from "@testing-library/svelte";
+import { get } from "svelte/store";
+
+describe("Portfolio layout", () => {
+ beforeEach(() => {
+ layoutTitleStore.set({ title: "" });
+ });
+
+ it("should set title and header layout to 'Portfolio'", () => {
+ render(PortfolioLayout);
+
+ expect(get(layoutTitleStore)).toEqual({
+ title: "Portfolio",
+ header: "Portfolio",
+ });
+ });
+});