diff --git a/client-solid/src/Login.tsx b/client-solid/src/Login.tsx
new file mode 100644
index 0000000..1af585c
--- /dev/null
+++ b/client-solid/src/Login.tsx
@@ -0,0 +1,92 @@
+import { createSignal, useContext } from "solid-js";
+import { LoginContext, ModalContext } from "./Root";
+
+export function LoginForm() {
+  const modal_ctx = useContext(ModalContext);
+  const login_ctx = useContext(LoginContext);
+  const [username, setUsername] = createSignal("");
+  const [password, setPassword] = createSignal("");
+  const [waiting, setWaiting] = createSignal(false);
+  const [error, setError] = createSignal(false);
+
+  async function loginFailed() {
+    setError(true);
+    setWaiting(false);
+    setTimeout(() => {
+      setError(false);
+    }, 1000);
+  }
+
+  return (
+    
+  );
+}
+
+// This function is responsible for sending the login request to the server
+// and storing the token in localstorage
+export async function submitLogin(
+  username: string,
+  password: string
+): Promise {
+  const response = await fetch("/api/login", {
+    method: "POST",
+    headers: { "Content-Type": "application/json" },
+    body: JSON.stringify({ username, password }),
+  });
+
+  if (response.ok) {
+    const data = await response.json();
+    if (data.token && data.username) {
+      localStorage.setItem("token", data.token);
+      localStorage.setItem("username", data.username);
+      return data.token;
+    }
+  }
+  return "";
+}
+
diff --git a/client-solid/src/Navbar.tsx b/client-solid/src/Navbar.tsx
new file mode 100644
index 0000000..9902fda
--- /dev/null
+++ b/client-solid/src/Navbar.tsx
@@ -0,0 +1,83 @@
+import { useContext } from "solid-js";
+import { A } from "@solidjs/router";
+import { LoginContext } from "./Root";
+import { ModalContext } from "./Root";
+import { LoginForm } from "./Login";
+
+function Menu() {
+  let login_ctx = useContext(LoginContext);
+  return (
+    
+  );
+}
+
+export function Navbar() {
+  let modal_ctx = useContext(ModalContext);
+  let login_ctx = useContext(LoginContext);
+
+  return (
+    
+  );
+}
+
+// This is a modal
+export function Login() {
+  const modal_ctx = useContext(ModalContext);
+  return (
+    
+  );
+}
diff --git a/client-solid/src/Posts.tsx b/client-solid/src/Posts.tsx
new file mode 100644
index 0000000..522ec69
--- /dev/null
+++ b/client-solid/src/Posts.tsx
@@ -0,0 +1,39 @@
+import { createSignal } from "solid-js";
+import { getPosts } from "./api";
+import { Post } from "./api";
+
+export function Posts() {
+  const [posts, setPosts] = createSignal([] as Post[]);
+  const [loading, setLoading] = createSignal(true);
+
+  getPosts().then((posts) => {
+    setPosts(posts as any);
+    setLoading(false);
+  });
+
+  return (
+    
+      {loading() ? (
+        
+      ) : (
+        <>>
+      )}
+      {posts().map((post) => {
+        if (post.content == "") return; // Filtering out empty posts, remove this later
+        return 
;
+      })}
+    
 
+  );
+}
+
+// This is the card container for a post
+export function PostSegment({ post }: { post: Post; }) {
+  return (
+    
+  );
+}
+
diff --git a/client-solid/src/Primary.tsx b/client-solid/src/Primary.tsx
new file mode 100644
index 0000000..87d4da4
--- /dev/null
+++ b/client-solid/src/Primary.tsx
@@ -0,0 +1,13 @@
+import { Route, Routes } from "@solidjs/router";
+import { Posts } from "./Posts";
+import { NewPostInputArea } from "./Root";
+
+// Primary is the section of the page that holds the main content
+export function Primary() {
+  return (
+    
+      } />
+      } />
+    
+  );
+}
diff --git a/client-solid/src/Root.tsx b/client-solid/src/Root.tsx
index a07f185..22e70ba 100644
--- a/client-solid/src/Root.tsx
+++ b/client-solid/src/Root.tsx
@@ -1,10 +1,12 @@
 import { Accessor, createSignal, useContext } from "solid-js";
 import { createContext } from "solid-js";
 
-import { Route, Routes, A } from "@solidjs/router";
 
-import { createPost, getPosts } from "./api";
-import { Post, NewPost } from "./api";
+import { createPost } from "./api";
+import { NewPost } from "./api";
+import { Navbar } from "./Navbar";
+import { Primary } from "./Primary";
+import { Login } from "./Navbar";
 
 // Representing the state of varoious modals.
 // So far we only have one modal, but we can add more later
@@ -55,45 +57,7 @@ function Root() {
   );
 }
 
-function Navbar() {
-  let modal_ctx = useContext(ModalContext);
-  let login_ctx = useContext(LoginContext);
-  return (
-    
-  );
-}
-
-function Menu() {
-  return (
-    
-  );
-}
-
-function NewPostInputArea() {
+export function NewPostInputArea() {
   const [content, setContent] = createSignal("");
   const login_ctx = useContext(LoginContext);
 
@@ -126,158 +90,4 @@ function NewPostInputArea() {
   );
 }
 
-function Posts() {
-  const [posts, setPosts] = createSignal([] as Post[]);
-  const [loading, setLoading] = createSignal(true);
-
-  getPosts().then((posts) => {
-    setPosts(posts as any);
-    setLoading(false);
-  });
-
-  return (
-    
-      {loading() ? (
-        
-      ) : (
-        <>>
-      )}
-      {posts().map((post) => {
-        if (post.content == "") return; // Filtering out empty posts, remove this later
-        return 
;
-      })}
-    
 
-  );
-}
-
-function PostSegment({ post }: { post: Post }) {
-  return (
-    
-  );
-}
-
-function Primary() {
-  return (
-    
-      } />
-      } />
-    
-  );
-}
-
-// This is a modal
-function Login() {
-  const modal_ctx = useContext(ModalContext);
-  return (
-    
-  );
-}
-
-// This function is responsible for sending the login request to the server
-// and storing the token in localstorage
-async function submitLogin(
-  username: string,
-  password: string
-): Promise {
-  const response = await fetch("/api/login", {
-    method: "POST",
-    headers: { "Content-Type": "application/json" },
-    body: JSON.stringify({ username, password }),
-  });
-
-  if (response.ok) {
-    const data = await response.json();
-    if (data.token && data.username) {
-      localStorage.setItem("token", data.token);
-      localStorage.setItem("username", data.username);
-      return data.token;
-    }
-  }
-  return "";
-}
-
-function LoginForm() {
-  const modal_ctx = useContext(ModalContext);
-  const [username, setUsername] = createSignal("");
-  const [password, setPassword] = createSignal("");
-  const [waiting, setWaiting] = createSignal(false);
-  const [error, setError] = createSignal(false);
-
-  async function loginFailed() {
-    setError(true);
-    setWaiting(false);
-    setTimeout(() => {
-      setError(false);
-    }, 1000);
-  }
-
-  return (
-    
-  );
-}
-
 export default Root;