diff --git a/pages/_app.js b/pages/_app.js
index 1e1cec9..6eede4d 100644
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -1,7 +1,11 @@
 import '../styles/globals.css'
+import NavBar from '../Components/NavBar'
 
-function MyApp({ Component, pageProps }) {
-  return <Component {...pageProps} />
+function App({ Component, pageProps }) {
+  return <>
+    <Component {...pageProps} />
+    <NavBar />
+  </>
 }
 
-export default MyApp
+export default App
diff --git a/pages/index.js b/pages/index.js
index 563f9fe..0e8abf0 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -2,9 +2,96 @@
 import Image from 'next/image'
 import styles from '../styles/Home.module.css'
 import Card from '../Components/Card'
+import CardRow from '../Components/CardRow'
+import Header from '../Components/Header'
+import AutoSpacing from '../Components/AutoSpacing'
+import SectionHeading from '../Components/SectionHeading'
 
 export default function Home() {
   return (
-    <Card wave="GS" title="GPS" subtext="Cards Against Humanity on Discord" buttons={[{color:"#6576CC",link:"/GPS",text:"About"},{color:"#6576CC",link:"/GPS",text:"Invite"}]}/>
+    <>
+      <Header
+        name="Clicks Minute Per"
+        subtext="We do cool stuff"
+        gradient={["6576CC", "4B5899"]}
+        wave="Main"
+        buttons={[]}
+      />
+      <AutoSpacing
+        elements={[
+          <SectionHeading title="Projects" />,
+          <CardRow tiles={[
+            <Card
+              wave="GS" title="GPS" subtext="Cards Against Humanity on Discord"
+              buttons={[
+                {color:"6576CC",link:"/gps",text:"About"},
+                {color:"6576CC",link:"https://discordapp.com/oauth2/authorize?client_id=679361555732627476&scope=bot&permissions=130048",text:"Invite"}
+            ]}
+              buttonText={"FFFFFF"} gradient={["78ECF2", "71AFE5"]}
+            />,
+            <Card
+              wave="RM" title="RSM" subtext="Moderation Redefined"
+              buttons={[
+                {color:"424242",link:"https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands",text:"Invite"},
+                {color:"424242",link:"/rsm",text:"About"}
+            ]}
+              buttonText={"FFFFFF"} gradient={["F27878", "D96B6B"]}
+            />,
+            <Card
+              wave="CF" title="ClicksForms" subtext="Create custom forms for Discord"
+              buttons={[
+                {color:"775EBF",link:"https://clicksminuteper.github.io/docs/clicksforms",text:"API"},
+                {color:"775EBF",link:"https://discord.com/api/oauth2/authorize?client_id=805392054678192169&permissions=2416307200&scope=bot%20applications.commands",text:"Invite"},
+                {color:"775EBF",link:"/clicksforms",text:"About"}
+              ]}
+              buttonText={"FFFFFF"} gradient={["71AFE5", "6576CC"]}
+            />,
+            <Card
+              wave="CA" title="Castaway" subtext="Stranded on Discord"
+              buttons={[{color:"F2D478",link:"/",text:"Invite"}, {color:"F2D478",link:"/castaway",text:"About"}]}
+              buttonText={"000000"} gradient={["71AFE5", "78ECF2"]}
+            />,
+            <Card
+              wave="HY" title="Hooky" subtext="Webhook protection for Discord"
+              buttons={[{color:"EDC575",link:"/",text:"Invite"}, {color:"EDC575",link:"/hooky",text:"About"}]}
+              buttonText={"000000"} gradient={["424242", "8D8D8D"]}
+            />,
+            <Card
+              wave="CL" title="Clcks" subtext="Clicks Minute Per web apps"
+              buttons={[{color:"78ECF2",link:"https://clcks.dev",text:"View Apps"}]}
+              buttonText={"000000"} gradient={["C4C4C4", "8D8D8D"]}
+            />
+          ]}
+        />,
+        <SectionHeading title="Code Bases" />,
+          <CardRow tiles={[
+            <Card
+              wave="GH" title="GitHub" subtext="View our open source projects"
+              buttons={[
+                {color: "424242", link: "https://github.com/clicksminuteper", text: "Visit"}
+            ]}
+              buttonText={"FFFFFF"} gradient={["FFFFFF", "C4C4C4"]}
+            />,
+            <Card
+              wave="PY" title="PyPi" subtext="View our modules for python"
+              buttons={[
+                {color: "FFC91E", link: "https://pypi.org/user/ClicksMinutePer/", text: "Visit"}
+            ]}
+              buttonText={"000000"} gradient={["2F6490", "3775A8"]}
+            />
+          ]}/>,
+          <SectionHeading title="Socials" />,
+          <CardRow tiles={[
+            <Card
+              wave="DS" title="Discord" subtext="Join our Discord server to talk with the community"
+              buttons={[
+                {color: "424242", link: "https://discord.gg/bPaNnxe", text: "Join"}
+            ]}
+              buttonText={"FFFFFF"} gradient={["404EED", "404EED"]}
+            />
+          ]}
+        />
+      ]}/>
+    </>
   )
 }
diff --git a/pages/rsm.js b/pages/rsm.js
new file mode 100644
index 0000000..3b83aca
--- /dev/null
+++ b/pages/rsm.js
@@ -0,0 +1,33 @@
+import Head from 'next/head'
+import Image from 'next/image'
+import styles from '../styles/Home.module.css'
+import Card from '../Components/Card'
+import CardRow from '../Components/CardRow'
+import Header from '../Components/Header'
+import AutoSpacing from '../Components/AutoSpacing'
+import SectionHeading from '../Components/SectionHeading'
+
+export default function Home() {
+  return (
+    <>
+      <Header
+        name="RSM"
+        subtext="Moderation Redefined"
+        gradient={["F27878", "D96B6B"]}
+        wave="RM"
+        buttons={[
+          {color: "424242", buttonText: "FFFFFF", link: "#features", text: "Features"},
+          {color: "424242", buttonText: "FFFFFF", link: "#commands", text: "Commands"},
+          {color: "F27878", buttonText: "FFFFFF", link: "#invite", text: "Invite"}
+        ]}
+        hideArrow={true}
+      />
+      <AutoSpacing
+        elements={[
+          <SectionHeading title="Features" id="features"/>,
+          <SectionHeading title="Commands" id="commands"/>,
+          <SectionHeading title="Invite" id="invite"/>
+      ]}/>
+    </>
+  )
+}
