diff --git a/README.md b/README.md
index bf383cb..d68667b 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,16 @@ To apply the same base UI in a project, run the following command:
npx shadcn@latest add "https://v0.dev/chat/b/b_fFQhsfElqQi"
```
+#### 🏠 Homepage
+
+The homepage layout was also crafted using v0. The generation prompt for it was:
+
+```text
+A minimal homepage for a Google Drive clone named T4S Drive. It should be just a
+marketing page with a "get started" button. A gradient would be nice, please use
+black and dark neutral grays.
+```
+
### 🧰 Learn More about the T3 Stack
To explore more about the [T3 Stack](https://create.t3.gg/), refer to the
@@ -108,7 +118,7 @@ The database and UI are now connected, some improvements to make:
- [x] Change folders to link components, remove all client state
- [x] Clean up the database and data fetching patterns
-- [ ] Real homepage
+- [x] Real homepage
### 📝 Note from 7-4-2025
@@ -124,7 +134,13 @@ can be approved:
## 🎯 Fun Follow Ups
-### Folder deletion
-
-Make sure to fetch all of the folders that have it as a parent, and their
-children too.
+- [ ] **Folder creation** Make a server action that takes a name and
+ parentId, and creates a folder with that name and parentId (don't forget
+ to set the ownerId).
+- [ ] **Folder deletion** Make sure to fetch all of the folders that have
+ it as a parent, and their children too.
+- [ ] **Access Control** Check if user is owner before showing the folder
+ page.
+- [ ] **Make a "file view" page**
+- [ ] **Access control**
+- [ ] **Toasts notifications**
diff --git a/src/app/(home)/drive/page.tsx b/src/app/(home)/drive/page.tsx
new file mode 100644
index 0000000..98b4e3f
--- /dev/null
+++ b/src/app/(home)/drive/page.tsx
@@ -0,0 +1,35 @@
+import { auth } from "@clerk/nextjs/server";
+import { redirect } from "next/navigation";
+
+import { Button } from "~/components/ui/button";
+import * as mutations from "~/server/db/mutations";
+import * as queries from "~/server/db/queries";
+
+export default async function DrivePage() {
+ const session = await auth();
+ if (!session.userId) return redirect("/sign-in");
+
+ const rootFolder = await queries.getRootFolderForUser(session.userId);
+
+ if (!rootFolder) {
+ return (
+
+ );
+ }
+
+ return redirect(`/f/${rootFolder.id}`);
+}
diff --git a/src/app/(home)/layout.tsx b/src/app/(home)/layout.tsx
new file mode 100644
index 0000000..58e3313
--- /dev/null
+++ b/src/app/(home)/layout.tsx
@@ -0,0 +1,129 @@
+import { Cloud, Shield, Users, Zap } from "lucide-react";
+import Link from "next/link";
+
+export default function HomePage({ children }: { children: React.ReactNode }) {
+ return (
+