diff --git a/apps/web/src/app/opengraph-image.svg b/apps/web/src/app/opengraph-image.svg
new file mode 100644
index 0000000..fdb721f
--- /dev/null
+++ b/apps/web/src/app/opengraph-image.svg
@@ -0,0 +1,74 @@
+
diff --git a/apps/web/src/app/timetoleave_app_icon.svg b/apps/web/src/app/timetoleave_app_icon.svg
new file mode 100644
index 0000000..02e3a31
--- /dev/null
+++ b/apps/web/src/app/timetoleave_app_icon.svg
@@ -0,0 +1,58 @@
+
diff --git a/apps/web/src/app/timetoleave_dark_logo.svg b/apps/web/src/app/timetoleave_dark_logo.svg
new file mode 100644
index 0000000..10acede
--- /dev/null
+++ b/apps/web/src/app/timetoleave_dark_logo.svg
@@ -0,0 +1,69 @@
+
diff --git a/apps/web/src/app/ui/LogoHorizontal.tsx b/apps/web/src/app/ui/LogoHorizontal.tsx
new file mode 100644
index 0000000..7e1c52f
--- /dev/null
+++ b/apps/web/src/app/ui/LogoHorizontal.tsx
@@ -0,0 +1,111 @@
+export default function LogoHorizontal({
+ height = 40,
+ className = "",
+}: {
+ height?: number;
+ className?: string;
+}) {
+ const width = height * 4.5;
+ return (
+
+ );
+}
diff --git a/apps/web/src/app/ui/LogoIcon.tsx b/apps/web/src/app/ui/LogoIcon.tsx
new file mode 100644
index 0000000..894ac70
--- /dev/null
+++ b/apps/web/src/app/ui/LogoIcon.tsx
@@ -0,0 +1,123 @@
+export default function LogoIcon({
+ size = 48,
+ className = "",
+}: {
+ size?: number;
+ className?: string;
+}) {
+ return (
+
+ );
+}
diff --git a/apps/web/src/app/ui/logos.ts b/apps/web/src/app/ui/logos.ts
new file mode 100644
index 0000000..3e9ab80
--- /dev/null
+++ b/apps/web/src/app/ui/logos.ts
@@ -0,0 +1,2 @@
+export { default as LogoIcon } from "./LogoIcon";
+export { default as LogoHorizontal } from "./LogoHorizontal";