diff --git a/thoughts-frontend/app/layout.tsx b/thoughts-frontend/app/layout.tsx
index c4994ba..d972f05 100644
--- a/thoughts-frontend/app/layout.tsx
+++ b/thoughts-frontend/app/layout.tsx
@@ -6,6 +6,7 @@ import { Header } from "@/components/header";
import localFont from "next/font/local";
import Image from "next/image";
import InstallPrompt from "@/components/install-prompt";
+import { Footer } from "@/components/footer";
export const metadata: Metadata = {
title: {
@@ -64,8 +65,11 @@ export default function RootLayout({
/>
-
- {children}
+
+
+ {children}
+
+
diff --git a/thoughts-frontend/components/footer.tsx b/thoughts-frontend/components/footer.tsx
new file mode 100644
index 0000000..9259489
--- /dev/null
+++ b/thoughts-frontend/components/footer.tsx
@@ -0,0 +1,80 @@
+import Link from "next/link";
+import {
+ BookOpen,
+ Code2,
+ Fingerprint,
+ Globe,
+ Info,
+} from "lucide-react";
+
+const API_URL = process.env.NEXT_PUBLIC_API_URL ?? "";
+
+const LINKS = [
+ {
+ href: `${API_URL}/docs`,
+ label: "API Reference",
+ icon: BookOpen,
+ external: true,
+ },
+ {
+ href: `${API_URL}/.well-known/nodeinfo`,
+ label: "NodeInfo",
+ icon: Info,
+ external: true,
+ },
+ {
+ href: `${API_URL}/.well-known/webfinger`,
+ label: "WebFinger",
+ icon: Fingerprint,
+ external: true,
+ },
+ {
+ href: "/about/fediverse",
+ label: "About the Fediverse",
+ icon: Globe,
+ external: false,
+ },
+ {
+ href: "https://git.gabrielkaszewski.dev/GKaszewski/thoughts",
+ label: "Source Code",
+ icon: Code2,
+ external: true,
+ },
+] as const;
+
+export function Footer() {
+ return (
+
+ );
+}