diff --git a/apps/main/src/app/(landing)/page.tsx b/apps/main/src/app/(landing)/page.tsx
index 238c37f1..aa6960f5 100644
--- a/apps/main/src/app/(landing)/page.tsx
+++ b/apps/main/src/app/(landing)/page.tsx
@@ -1,39 +1,134 @@
-import {
- Stats,
- Values,
- FAQSection,
- Landing,
- Keynote,
- Calendar,
- Testimonials,
- Apply,
- About,
- Volunteering,
-} from "./Sections";
-import { Footer } from "../lib/Components";
-import { NavBar } from "../lib/Components";
-import Head from "next/head";
import React from "react";
+import Image from "next/image";
+import Link from "next/link";
+import PlaceBackground from "../placeholder/placeBackground";
+import Rollercoaster from "../placeholder/rollercoaster";
+import HackBeanpotLogo from "../placeholder/HackBeanpotLogo";
+import NewsletterSignup from "../placeholder/NewsletterSignup";
-export default function Page(): JSX.Element {
+export default function Page() {
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ {/* Cover the green html background (incl. mobile overscroll), scoped to this page */}
+
+ {/* Sunburst rays - back layer */}
+
+
+ {/* Rollercoaster scene - front layer */}
+
+
+ {/* Content Container */}
+
+ {/* Header - Logo and Social Icons */}
+
+ {/* Logo */}
+
+
+
+
+ {/* Social Icons */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Main Content - Upper center */}
+
+ {/* Title */}
+
+ We hope you enjoyed the ride!
+
+
+ {/* Subtitle */}
+
+ Thank you for coming to HackBeanpot 2026! Sign up for our newsletter
+ for more information and any upcoming events!
+
+
+ {/* Newsletter Signup */}
+
+
+ {/* Last Year's Site Link */}
+
+ Visit our last year's site
+
+
+
+
+
);
}
diff --git a/apps/main/src/app/layout.tsx b/apps/main/src/app/layout.tsx
index 4c741abc..2b0def18 100644
--- a/apps/main/src/app/layout.tsx
+++ b/apps/main/src/app/layout.tsx
@@ -1,6 +1,6 @@
-import "./globals.css";
-import "../../../../packages/util/src/fonts/fonts.css";
import "@repo/ui/styles.css";
+import "../../../../packages/util/src/fonts/fonts.css";
+import "./globals.css";
import type { Metadata } from "next";
import { Inter } from "next/font/google";
import React from "react";
diff --git a/apps/main/src/app/placeholder/HackBeanpotLogo.tsx b/apps/main/src/app/placeholder/HackBeanpotLogo.tsx
new file mode 100644
index 00000000..2a1d92bd
--- /dev/null
+++ b/apps/main/src/app/placeholder/HackBeanpotLogo.tsx
@@ -0,0 +1,102 @@
+import * as React from "react";
+
+const HackBeanpotLogo = (props: React.SVGProps) => (
+
+);
+export default HackBeanpotLogo;
diff --git a/apps/main/src/app/placeholder/NewsletterSignup.tsx b/apps/main/src/app/placeholder/NewsletterSignup.tsx
new file mode 100644
index 00000000..2489a915
--- /dev/null
+++ b/apps/main/src/app/placeholder/NewsletterSignup.tsx
@@ -0,0 +1,88 @@
+"use client";
+
+import React from "react";
+
+type Status = "idle" | "loading" | "success" | "error";
+
+const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
+
+const NewsletterSignup = () => {
+ const [email, setEmail] = React.useState("");
+ const [status, setStatus] = React.useState("idle");
+ const [message, setMessage] = React.useState("");
+
+ const handleSubmit = async () => {
+ if (status === "loading") return;
+
+ if (!EMAIL_REGEX.test(email.trim())) {
+ setStatus("error");
+ setMessage("Please enter a valid email.");
+ return;
+ }
+
+ setStatus("loading");
+ setMessage("");
+ try {
+ const res = await fetch("/api/joinMailingList", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({
+ email: email.trim(),
+ reactivate_existing: false,
+ }),
+ });
+
+ if (res.ok) {
+ setStatus("success");
+ setMessage("You're on the list! 🎉");
+ setEmail("");
+ } else {
+ setStatus("error");
+ setMessage("Something went wrong. Please try again.");
+ }
+ } catch {
+ setStatus("error");
+ setMessage("Something went wrong. Please try again.");
+ }
+ };
+
+ const handleKeyDown = (e: React.KeyboardEvent) => {
+ if (e.key === "Enter") handleSubmit();
+ };
+
+ const buttonText = status === "loading" ? "Submitting…" : "Submit";
+
+ return (
+
+ {message && (
+
+ {message}
+
+ )}
+
setEmail(e.target.value)}
+ onKeyDown={handleKeyDown}
+ disabled={status === "loading"}
+ className="w-96 tablet:w-80 mobile-xl:w-auto mobile-xl:flex-1 mobile-xl:min-w-0 mobile:w-auto mobile:flex-1 mobile:min-w-0 px-6 mobile:px-4 py-4 tablet:py-3.5 mobile:py-3 rounded-full bg-carouselCreamLight text-charcoalFog placeholder-charcoalFog placeholder-opacity-60 focus:outline-none focus:ring-2 focus:ring-firecrackerRed text-lg tablet:text-base mobile:text-sm font-DMSans-Regular"
+ />
+
+
+ );
+};
+
+export default NewsletterSignup;
diff --git a/apps/main/src/app/placeholder/page.tsx b/apps/main/src/app/placeholder/page.tsx
new file mode 100644
index 00000000..c07258de
--- /dev/null
+++ b/apps/main/src/app/placeholder/page.tsx
@@ -0,0 +1,134 @@
+import React from "react";
+import Image from "next/image";
+import Link from "next/link";
+import PlaceBackground from "./placeBackground";
+import Rollercoaster from "./rollercoaster";
+import HackBeanpotLogo from "./HackBeanpotLogo";
+import NewsletterSignup from "./NewsletterSignup";
+
+export default function PlaceholderPage() {
+ return (
+
+ {/* Cover the green html background (incl. mobile overscroll), scoped to this page */}
+
+ {/* Sunburst rays - back layer */}
+
+
+ {/* Rollercoaster scene - front layer */}
+
+
+ {/* Content Container */}
+
+ {/* Header - Logo and Social Icons */}
+
+ {/* Logo */}
+
+
+
+
+ {/* Social Icons */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Main Content - Upper center */}
+
+ {/* Title */}
+
+ We hope you enjoyed the ride!
+
+
+ {/* Subtitle */}
+
+ Thank you for coming to HackBeanpot 2026! Sign up for our newsletter
+ for more information and any upcoming events!
+
+
+ {/* Newsletter Signup */}
+
+
+ {/* Last Year's Site Link */}
+
+ Visit our last year's site
+
+
+
+
+
+ );
+}
diff --git a/apps/main/src/app/placeholder/placeBackground.tsx b/apps/main/src/app/placeholder/placeBackground.tsx
new file mode 100644
index 00000000..198921b2
--- /dev/null
+++ b/apps/main/src/app/placeholder/placeBackground.tsx
@@ -0,0 +1,223 @@
+"use client";
+
+import React from "react";
+
+const PlaceBackground = () => {
+ return (
+
+ );
+};
+
+export default PlaceBackground;
diff --git a/apps/main/src/app/placeholder/rollercoaster.tsx b/apps/main/src/app/placeholder/rollercoaster.tsx
new file mode 100644
index 00000000..51f66eb6
--- /dev/null
+++ b/apps/main/src/app/placeholder/rollercoaster.tsx
@@ -0,0 +1,2207 @@
+"use client";
+
+import React from "react";
+
+const Rollercoaster = () => {
+ return (
+
+ );
+};
+
+export default Rollercoaster;