diff --git a/package-lock.json b/package-lock.json
index 56312b2..80c419a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,7 +9,8 @@
"version": "0.0.0",
"dependencies": {
"react": "^18.2.0",
- "react-dom": "^18.2.0"
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.26.2"
},
"devDependencies": {
"@types/react": "^18.2.66",
@@ -1051,6 +1052,14 @@
"node": ">=14"
}
},
+ "node_modules/@remix-run/router": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz",
+ "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz",
@@ -3421,6 +3430,36 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-router": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz",
+ "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==",
+ "dependencies": {
+ "@remix-run/router": "1.19.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz",
+ "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==",
+ "dependencies": {
+ "@remix-run/router": "1.19.2",
+ "react-router": "6.26.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
diff --git a/package.json b/package.json
index 33e7504..c40f213 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,8 @@
},
"dependencies": {
"react": "^18.2.0",
- "react-dom": "^18.2.0"
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.26.2"
},
"devDependencies": {
"@types/react": "^18.2.66",
diff --git a/src/main.tsx b/src/main.tsx
index 9861904..6b9f9e7 100644
--- a/src/main.tsx
+++ b/src/main.tsx
@@ -1,9 +1,25 @@
import ReactDOM from 'react-dom/client'
+import {
+ createBrowserRouter,
+ RouterProvider
+} from "react-router-dom"
import './assets/main.css'
// pages
-import MainPage from './index';
+import MainPage from './pages/index';
+import PrivacyPage from './pages/privacy';
+
+const router = createBrowserRouter([
+ {
+ path: '/',
+ element:
+ },
+ {
+ path: '/privacy',
+ element:
+ }
+])
ReactDOM.createRoot(document.getElementById('root')!).render(
-
+
)
diff --git a/src/index.tsx b/src/pages/index.tsx
similarity index 89%
rename from src/index.tsx
rename to src/pages/index.tsx
index c3ab5f7..723fc78 100644
--- a/src/index.tsx
+++ b/src/pages/index.tsx
@@ -1,15 +1,15 @@
-import ListBox from "./components/ListBox";
-import Project from "./components/ProjectCard";
-import ContactForm from "./components/ContactForm";
+import ListBox from "../components/ListBox";
+import Project from "../components/ProjectCard";
+import ContactForm from "../components/ContactForm";
// project components
-import RecentWatch from "./components/ProjectComponents/RecentWatch";
-import RecentPhoto from "./components/ProjectComponents/RecentPhoto";
-import RecentListens from "./components/ProjectComponents/RecentListens";
-import RecentClip from './components/ProjectComponents/RecentClip';
-import RecentGame from "./components/ProjectComponents/RecentGame";
-import RecentBook from "./components/ProjectComponents/RecentBook";
-import Layout from "./components/Layout";
+import RecentWatch from "../components/ProjectComponents/RecentWatch";
+import RecentPhoto from "../components/ProjectComponents/RecentPhoto";
+import RecentListens from "../components/ProjectComponents/RecentListens";
+import RecentClip from '../components/ProjectComponents/RecentClip';
+import RecentGame from "../components/ProjectComponents/RecentGame";
+import RecentBook from "../components/ProjectComponents/RecentBook";
+import Layout from "../components/Layout";
export default function Home() {
return (
diff --git a/src/pages/privacy.tsx b/src/pages/privacy.tsx
new file mode 100644
index 0000000..4722636
--- /dev/null
+++ b/src/pages/privacy.tsx
@@ -0,0 +1,30 @@
+import Layout from "../components/Layout";
+
+export default function PrivacyPage() {
+ return (
+
+
+
Privacy
+
This site doesn't collect anything on you. No cookies (although tasty), no ominous advertisements, nothing.
+
+
Plausible
+
I use Plausible analytics to track traffic anonymously. Plausible;
+
+ - does not collect personal identifying information
+ - is dedicated to privacy
+ - compliant with the GDPR, CCPA and PECR data protection laws
+
+
I use a self-hosted instance in the US that doesn't use cookies.
+
+
Cloudflare
+
I use Cloudflare for DNS. Most of my sites
+ are proxied through Cloudflare. You can view their privacy policy here.
+
+
Email
+
When you submit a contact request on my page, it is sent to Discord via a webhook & my own API.
+
This will be shown to me in an embed. I will never receive or process anything but what you provide.
+
You can learn more about Discord's dedication to privacy here.
+
+
+ )
+}
\ No newline at end of file