diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
new file mode 100644
index 0000000..27cde9d
--- /dev/null
+++ b/frontend/src/App.tsx
@@ -0,0 +1,15 @@
+import React from "react";
+import { Route, Routes } from "react-router-dom";
+import { Landing, Error, Bin } from "./pages";
+
+const App = () => {
+ return (
+
+ } />
+ } />
+ } />
+
+ );
+};
+
+export default App;
diff --git a/frontend/src/environment.d.ts b/frontend/src/environment.d.ts
new file mode 100644
index 0000000..b559147
--- /dev/null
+++ b/frontend/src/environment.d.ts
@@ -0,0 +1,9 @@
+declare global {
+ namespace NodeJS {
+ interface ProcessEnv {
+ REACT_APP_BASE_API_URL: string;
+ }
+ }
+}
+
+export {};
diff --git a/frontend/src/index.css b/frontend/src/index.css
new file mode 100644
index 0000000..119b879
--- /dev/null
+++ b/frontend/src/index.css
@@ -0,0 +1,14 @@
+@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap");
+@import "./assets/jetbrains-mono.css";
+
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+* {
+ font-family: "Inter", sans-serif;
+}
+
+code, code * {
+ font-family: "JetBrains Mono", monospace;
+}
diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx
new file mode 100644
index 0000000..5551917
--- /dev/null
+++ b/frontend/src/index.tsx
@@ -0,0 +1,18 @@
+import React from "react";
+import ReactDOM from "react-dom/client";
+import "./index.css";
+import "./assets/night-owl.css";
+import App from "./App";
+import { BrowserRouter } from "react-router-dom";
+
+const root = ReactDOM.createRoot(
+ document.getElementById("root") as HTMLElement
+);
+
+root.render(
+
+
+
+
+
+);
diff --git a/frontend/src/react-app-env.d.ts b/frontend/src/react-app-env.d.ts
new file mode 100644
index 0000000..6431bc5
--- /dev/null
+++ b/frontend/src/react-app-env.d.ts
@@ -0,0 +1 @@
+///