diff --git a/pages/clicksforms.js b/pages/clicksforms.js
index 35437b6..8da3441 100644
--- a/pages/clicksforms.js
+++ b/pages/clicksforms.js
@@ -2,7 +2,6 @@
 import Header from '../Components/Header'
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../Components/Panels';
 import { List, ListItem, Code } from '../Components/Texttools';
-import Link from 'next/link';
 import React from 'react';
 
 export default class Home extends React.Component {
@@ -53,14 +52,14 @@
           <Panel halfSize={true} id="services" style={this.state.toHighlight == "services" ? {border: "solid 10px red"} : {}}>
             <Title>Services</Title>
             <Divider toHighlight={this.state.toHighlight} highlightColour="6576CC" name="services"/>
-            <Text>ClicksForms supports services such as <Link href="https://docs.google.com/forms">Google Forms</Link> through our Add-on.</Text>
-            <Text>Our API is public. You can view it <Link href="/clicksforms/docs">here</Link>.</Text>
+            <Text>ClicksForms supports services such as <a href="https://docs.google.com/forms">Google Forms</a> through our Add-on.</Text>
+            <Text>Our API is public. You can view it <a href="/clicksforms/docs">here</a>.</Text>
           </Panel>
           <Panel halfSize={true} id="privacy">
             <Title>Privacy</Title>
             <Divider toHighlight={this.state.toHighlight} highlightColour="6576CC" name="privacy"/>
-            <Text>You should always know what we know and store about you, so <Link href="https://clicksminuteper.github.io/policies/clicksforms">here</Link> is the complete list.</Text>
-            <Text>We also have a list of terms for using ClicksForms, it can be viewed <Link href="https://clicksminuteper.github.io/policies/clicksformstos">here</Link>.</Text>
+            <Text>You should always know what we know and store about you, so <a href="https://clicksminuteper.github.io/policies/clicksforms">here</a> is the complete list.</Text>
+            <Text>We also have a list of terms for using ClicksForms, it can be viewed <a href="https://clicksminuteper.github.io/policies/clicksformstos">here</a>.</Text>
           </Panel>
           <Panel halfSize={true} id="invite">
             <Title>Invite</Title>
diff --git a/pages/nucleus.js b/pages/nucleus.js
index b0bd1f4..5155597 100644
--- a/pages/nucleus.js
+++ b/pages/nucleus.js
@@ -3,7 +3,6 @@
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../Components/Panels';
 import { List, ListItem, Code } from '../Components/Texttools';
 import { useColorMode } from 'theme-ui';
-import Link from 'next/link';
 
 export default function Home() {
   const [theme, setTheme] = useColorMode()
@@ -86,13 +85,13 @@
             <Title>Verification</Title>
             <Divider />
             <Text>Verification ensures all members in your server are human, and prevents automated accounts from joining.</Text>
-            <Text>For more information, see the <Link href="/nucleus/verify/about">about</Link> page.</Text>
+            <Text>For more information, see the <a href="/nucleus/verify/about">about</a> page.</Text>
         </Panel>
         <Panel halfSize={true} id="privacy">
           <Title>Privacy</Title>
           <Divider />
           <Text>You can run <Code colour="F27878">/privacy</Code> to view and manage all data stored about your server</Text>
-          <Text>You should always know what we know and store about you, so <Link href="https://clicksminuteper.github.io/policies/nucleus">here</Link> is the complete list.</Text>
+          <Text>You should always know what we know and store about you, so <a href="https://clicksminuteper.github.io/policies/nucleus">here</a> is the complete list.</Text>
         </Panel>
         <Panel halfSize={true} id="invite">
           <Title>Invite</Title>
diff --git a/pages/nucleus/verify/about.js b/pages/nucleus/verify/about.js
index 3144db4..08e7f00 100644
--- a/pages/nucleus/verify/about.js
+++ b/pages/nucleus/verify/about.js
@@ -4,8 +4,7 @@
 import { Code } from '../../../Components/Texttools'
 import { Card, CardRow } from '../../../Components/Card'
 import HCaptcha from 'react-hcaptcha';
-import { useReward } from 'react-rewards'
-import Link from 'next/link'
+import { useReward } from 'react-rewards';
 
 function About(props) {
     const { reward, isAnimating } = useReward('confetti', 'confetti', {
@@ -51,7 +50,7 @@
                     <Divider />
                     <Text>Verification stores the smallest amount of data required to function, and is deleted automatically.</Text>
                     <Text>This includes the user&apos;s ID, the server ID, role name and server icon.</Text>
-                    <Text>The full list of data stored by Nucleus can be found <Link href="https://clicksminuteper.github.io/policies/nucleus">here</Link>.</Text>
+                    <Text>The full list of data stored by Nucleus can be found <a href="https://clicksminuteper.github.io/policies/nucleus">here</a>.</Text>
                 </Panel>
                 <Panel halfSize={true} id="invite">
                     <Title>Invite</Title>
diff --git a/pages/nucleus/verify/failure.js b/pages/nucleus/verify/failure.js
index 75c2296..61b58d0 100644
--- a/pages/nucleus/verify/failure.js
+++ b/pages/nucleus/verify/failure.js
@@ -1,6 +1,5 @@
 import { Component } from 'react'
 import Header from '../../../Components/Header'
-import Link from 'next/link'
 
 class Failed extends Component {
     constructor(props) {
@@ -11,7 +10,7 @@
         return (
             <Header
                 name="Verification failed"
-                subtext={<p>Please try again, and if the error persists please contact us at <Link href="mailto:verification@clicks.codes" target="_blank" rel="noopener noreferrer">verification@clicks.codes</Link></p>}
+                subtext={<p>Please try again, and if the error persists please contact us at <a href="mailto:verification@clicks.codes" target="_blank" rel="noopener noreferrer">verification@clicks.codes</a></p>}
                 gradient={["F27878", "D96B6B"]}
                 wave="web/waves/header/nucleus"
                 buttons={[]}
diff --git a/pages/nucleus/verify/index.js b/pages/nucleus/verify/index.js
index 1f55dec..796298a 100644
--- a/pages/nucleus/verify/index.js
+++ b/pages/nucleus/verify/index.js
@@ -4,8 +4,7 @@
 import React from 'react';
 import Header from '../../../Components/Header'
 import { useReward } from 'react-rewards';
-import { Card, CardRow } from '../../../Components/Card'
-import Link from 'next/link'
+import { Card, CardRow } from '../../../Components/Card';
 
 import { AutoLayout, Panel, Title, Text, Divider } from '../../../Components/Panels';
 import { List, ListItem } from '../../../Components/Texttools';
@@ -72,7 +71,7 @@
                 <List colour="F27878">
                     <ListItem>This is an automatic check performed by Nucleus.</ListItem>
                     <ListItem>By clicking Proceed, you will be given the <code>{props.role_name}</code> role in <code>{props.guild_name}</code>.</ListItem>
-                    <ListItem>For the full list of data stored by Nucleus, please check <Link href="https://clicksminuteper.github.io/policies/nucleus#verification">here</Link></ListItem>
+                    <ListItem>For the full list of data stored by Nucleus, please check <a href="https://clicksminuteper.github.io/policies/nucleus#verification">here</a></ListItem>
                 </List>
                 <div id="confetti" />
             </Panel>
diff --git a/pages/nucleus/verify/testing.js b/pages/nucleus/verify/testing.js
index 036178d..42ac53d 100644
--- a/pages/nucleus/verify/testing.js
+++ b/pages/nucleus/verify/testing.js
@@ -9,7 +9,6 @@
 import { AutoLayout, Panel, Title, Text, Divider } from '../../../Components/Panels';
 import { List, ListItem } from '../../../Components/Texttools';
 import { useColorMode } from 'theme-ui';
-import Link from 'next/link'
 
 function Verify(props) {
     const [clicked, setClicked] = React.useState(false);
@@ -68,7 +67,7 @@
                 <List colour="F27878">
                     <ListItem>This is an automatic check performed by Nucleus.</ListItem>
                     <ListItem>By completing the CAPTCHA, you will be given the <code>MISSING</code> role in <code>ERROR</code>.</ListItem>
-                    <ListItem>For the full list of data stored by Nucleus, please check <Link href="https://clicksminuteper.github.io/policies/nucleus#verification">here</Link></ListItem>
+                    <ListItem>For the full list of data stored by Nucleus, please check <a href="https://clicksminuteper.github.io/policies/nucleus#verification">here</a></ListItem>
                 </List>
                 <div id="confetti" />
             </Panel>
diff --git a/pages/privacy.js b/pages/privacy.js
index c8a9b08..db621c5 100644
--- a/pages/privacy.js
+++ b/pages/privacy.js
@@ -1,7 +1,6 @@
 import Header from '../Components/Header'
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../Components/Panels';
 import { List, ListItem, Code } from '../Components/Texttools';
-import Link from 'next/link';
 
 
 export default function Home() {
@@ -19,15 +18,15 @@
                     <Title>Transparency</Title>
                     <Text>Everything we store about you and your Discord servers will be listed.</Text>
                     <List colour={"6576CC"}>
-                        <ListItem><Link href="https://clicksminuteper.github.io/policies/rsm">RSM</Link></ListItem>
-                        <ListItem><Link href="https://clicksminuteper.github.io/policies/clicksforms">ClicksForms</Link></ListItem>
+                        <ListItem><a href="https://clicksminuteper.github.io/policies/rsm">RSM</a></ListItem>
+                        <ListItem><a href="https://clicksminuteper.github.io/policies/clicksforms">ClicksForms</a></ListItem>
                         <ListItem>GPS does not store any information</ListItem>
                     </List>
-                    <Text>Have any questions or concerns? <Link href="/support">Let us know</Link> and we can investigate if you believe there are any mistakes</Text>
+                    <Text>Have any questions or concerns? <a href="/support">Let us know</a> and we can investigate if you believe there are any mistakes</Text>
                 </Panel>
                 <Panel halfSize={true}>
                     <Title>Security</Title>
-                    <Text>We will do everything we can to protect user data, including high security. You can <Link href="/support">message us</Link> if you would like to learn more about how we do this</Text>
+                    <Text>We will do everything we can to protect user data, including high security. You can <a href="/support">message us</a> if you would like to learn more about how we do this</Text>
                 </Panel>
             </AutoLayout>
         </>
diff --git a/pages/rsm.js b/pages/rsm.js
index b996197..b1e9233 100644
--- a/pages/rsm.js
+++ b/pages/rsm.js
@@ -2,7 +2,6 @@
 import Header from '../Components/Header'
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../Components/Panels';
 import { List, ListItem, Code } from '../Components/Texttools';
-import Link from 'next/link'
 
 // import FeatureImages from '../public/Features/RSM/Images.svg';
 // import FeatureAutomate from '../public/Features/RSM/Automate.svg';
@@ -90,7 +89,7 @@
         <Panel halfSize={true} id="privacy">
           <Title>Privacy</Title>
           <Divider />
-          <Text>You should always know what we know and store about you, so <Link href="https://clicksminuteper.github.io/policies/rsm">here</Link> is the complete list.</Text>
+          <Text>You should always know what we know and store about you, so <a href="https://clicksminuteper.github.io/policies/rsm">here</a> is the complete list.</Text>
         </Panel>
         <Panel halfSize={true} id="invite">
           <Title>Invite</Title>
diff --git a/pages/rsmv/failure.js b/pages/rsmv/failure.js
index b66bacd..f3b0feb 100644
--- a/pages/rsmv/failure.js
+++ b/pages/rsmv/failure.js
@@ -1,6 +1,5 @@
 import { Component } from 'react'
 import Header from '../../Components/Header'
-import Link from 'next/link'
 
 class Failed extends Component {
     constructor(props) {
@@ -11,7 +10,7 @@
         return (
             <Header
                 name="Verification failed"
-                subtext={<p>Please try again, and if the error persists please contact us at <Link href="mailto:verification@clicks.codes" target="_blank" rel="noopener noreferrer">verification@clicks.codes</Link></p>}
+                subtext={<p>Please try again, and if the error persists please contact us at <a href="mailto:verification@clicks.codes" target="_blank" rel="noopener noreferrer">verification@clicks.codes</a></p>}
                 gradient={["F27878", "D96B6B"]}
                 wave="web/waves/header/rsm"
                 buttons={[]}
diff --git a/pages/rsmv/index.js b/pages/rsmv/index.js
index 0bed09b..f46c46e 100644
--- a/pages/rsmv/index.js
+++ b/pages/rsmv/index.js
@@ -4,8 +4,7 @@
 import Axios from 'axios';
 import Router from 'next/router';
 import React from 'react';
-import Header from '../../Components/Header'
-import Link from 'next/link'
+import Header from '../../Components/Header';
 
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../../Components/Panels';
 import { List, ListItem, Code } from '../../Components/Texttools';
@@ -87,9 +86,9 @@
                     <List colour="F27878">
                         <ListItem>This is an automatic check performed by RSM.</ListItem>
                         <ListItem>By clicking Proceed, you will be given the <code>{this.props.role_name}</code> role in <code>{this.props.guild_name}</code>.</ListItem>
-                        <ListItem>For the full list of data stored by RSM, please check <Link href="https://clicksminuteper.github.io/policies/rsm#verification">Here</Link></ListItem>
+                        <ListItem>For the full list of data stored by RSM, please check <a href="https://clicksminuteper.github.io/policies/rsm#verification">Here</a></ListItem>
                     </List>
-                    <Text>You can add RSM to your server by inviting it <Link href="https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands">here</Link>.</Text>
+                    <Text>You can add RSM to your server by inviting it <a href="https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands">here</a>.</Text>
                 </Panel>
             </AutoLayout>
         </>
diff --git a/pages/rsmv/rsmvtesting.js b/pages/rsmv/rsmvtesting.js
index 7620324..8587221 100644
--- a/pages/rsmv/rsmvtesting.js
+++ b/pages/rsmv/rsmvtesting.js
@@ -5,7 +5,6 @@
 import Router from 'next/router';
 import React from 'react';
 import Header from '../../Components/Header'
-import Link from 'next/link'
 
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../../Components/Panels';
 import { List, ListItem, Code } from '../../Components/Texttools';
@@ -83,9 +82,9 @@
                     <List colour="F27878">
                         <ListItem>This is an automatic check performed by RSM.</ListItem>
                         <ListItem>By clicking Proceed, you will be given the <code>MISSING</code> role in <code>ERROR</code>.</ListItem>
-                        <ListItem>For the full list of data stored by RSM, please check <Link href="https://clicksminuteper.github.io/policies/rsm#verification">Here</Link></ListItem>
+                        <ListItem>For the full list of data stored by RSM, please check <a href="https://clicksminuteper.github.io/policies/rsm#verification">Here</a></ListItem>
                     </List>
-                    <Text>You can add RSM to your server by inviting it <Link href="https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands">here</Link>.</Text>
+                    <Text>You can add RSM to your server by inviting it <a href="https://discord.com/api/oauth2/authorize?client_id=715989276382462053&permissions=121295465718&scope=bot%20applications.commands">here</a>.</Text>
                 </Panel>
             </AutoLayout>
         </>
diff --git a/pages/support.js b/pages/support.js
index 61586d2..1c35a68 100644
--- a/pages/support.js
+++ b/pages/support.js
@@ -1,7 +1,6 @@
 import Header from '../Components/Header'
 import { AutoLayout, Panel, Title, Subtitle, Text, Divider } from '../Components/Panels';
 import { List, ListItem, Code } from '../Components/Texttools';
-import Link from 'next/link'
 
 export default function Home() {
   return (
@@ -17,12 +16,12 @@
         <Panel halfSize={true}>
           <Title>Email</Title>
           <Divider />
-          <Text>Send us an email at <Link href="mailto:support@clicks.codes">support@clicks.codes</Link> and we will get back to you as quick as possible.</Text>
+          <Text>Send us an email at <a href="mailto:support@clicks.codes">support@clicks.codes</a> and we will get back to you as quick as possible.</Text>
         </Panel>
         <Panel halfSize={true}>
           <Title>Discord</Title>
           <Divider />
-          <Text>For a faster response, you can join our <Link href="https://discord.gg/bPaNnxe">Discord server</Link> where our staff members can help you with any questions.</Text>
+          <Text>For a faster response, you can join our <a href="https://discord.gg/bPaNnxe">Discord server</a> where our staff members can help you with any questions.</Text>
           <Text>Type <Code colour="71AFE5">m!mail</Code> in <Code colour="71AFE5">#ticketmaster</Code> to create a support ticket.</Text>
         </Panel>
       </AutoLayout>
