diff --git a/landing/app/docs/[[...slug]]/page.tsx b/landing/app/docs/[[...slug]]/page.tsx
index ee79e6aa00..c8a48c0fe6 100644
--- a/landing/app/docs/[[...slug]]/page.tsx
+++ b/landing/app/docs/[[...slug]]/page.tsx
@@ -13,12 +13,12 @@ import {
import Link from "next/link";
import { notFound } from "next/navigation";
import { APIMethod } from "@/components/api-method";
+import { Features } from "@/components/docs/features";
import {
AddToCursor,
DatabaseTable,
DividerText,
Endpoint,
- Features,
ForkButton,
GenerateAppleJwt,
GenerateSecret,
diff --git a/landing/components/docs/features.tsx b/landing/components/docs/features.tsx
new file mode 100644
index 0000000000..1f86b0611b
--- /dev/null
+++ b/landing/components/docs/features.tsx
@@ -0,0 +1,135 @@
+import { useId } from "react";
+
+export function Features() {
+ return (
+
+
+ {grid.map((feature, i) => (
+
+
+
+ {feature.title}
+
+
+ {feature.description}
+
+
+ ))}
+
+
+ );
+}
+
+const grid = [
+ {
+ title: "Framework Agnostic",
+ description: "Support for most popular frameworks",
+ },
+ {
+ title: "Email & Password",
+ description:
+ "Built-in support for secure email and password authentication",
+ },
+ {
+ title: "Account & Session Management",
+ description: "Manage user accounts and sessions with ease",
+ },
+ {
+ title: "Built-In Rate Limiter",
+ description: "Built-in rate limiter with custom rules",
+ },
+ {
+ title: "Automatic Database Management",
+ description: "Automatic database management and migrations",
+ },
+ {
+ title: "Social Sign-on",
+ description: "Multiple social sign-on providers",
+ },
+ {
+ title: "Organization & Access Control",
+ description: "Manage organizations and access control",
+ },
+ {
+ title: "Two Factor Authentication",
+ description: "Secure your users with two factor authentication",
+ },
+ {
+ title: "Plugin Ecosystem",
+ description: "Even more capabilities with plugins",
+ },
+];
+
+export const Grid = ({
+ pattern,
+ size,
+}: {
+ pattern?: number[][];
+ size?: number;
+}) => {
+ const p = pattern ?? [
+ [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
+ [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
+ [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
+ [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
+ [Math.floor(Math.random() * 4) + 7, Math.floor(Math.random() * 6) + 1],
+ ];
+ return (
+
+ );
+};
+
+export function GridPattern({ width, height, x, y, squares, ...props }: any) {
+ const patternId = useId();
+
+ return (
+
+ );
+}