diff --git a/apps/web/app/(marketing)/page.tsx b/apps/web/app/(marketing)/page.tsx
index 666bc5d..ce23811 100644
--- a/apps/web/app/(marketing)/page.tsx
+++ b/apps/web/app/(marketing)/page.tsx
@@ -1,28 +1,14 @@
-import { Button } from "@openstarter/ui";
-import { LuChevronRight } from "react-icons/lu";
+import Hero from "@/components/marketing/hero";
+import LogoCloud from "@/components/marketing/logo-cloud";
+import Pricing from "@/components/marketing/pricing";
const Home = () => {
return (
-
-
-
-
- Open Source Next.js 14 SaaS Starter Kit
-
-
- Never pay for Starter Kits anymore. Save time on your business with
- this scalable OpenSource and production-ready SaaS boilerplate.
-
-
-
-
-
-
-
-
+ <>
+
+
+
+ >
);
};
diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css
index 3640b06..c1b6e16 100644
--- a/apps/web/app/globals.css
+++ b/apps/web/app/globals.css
@@ -80,4 +80,7 @@
"rlig" 1,
"calt" 1;
}
+ html {
+ @apply scroll-smooth;
+ }
}
diff --git a/apps/web/components/layout/navigation.tsx b/apps/web/components/layout/navigation.tsx
index ac48625..285df7e 100644
--- a/apps/web/components/layout/navigation.tsx
+++ b/apps/web/components/layout/navigation.tsx
@@ -20,6 +20,10 @@ const navItems = [
name: "Features",
href: "/#features",
},
+ {
+ name: "Pricing",
+ href: "/#pricing",
+ },
{
name: "Documentation",
href: "/documentation",
diff --git a/apps/web/components/marketing/hero.tsx b/apps/web/components/marketing/hero.tsx
new file mode 100644
index 0000000..f49021d
--- /dev/null
+++ b/apps/web/components/marketing/hero.tsx
@@ -0,0 +1,29 @@
+import { Button } from "@openstarter/ui";
+import { LuChevronRight } from "react-icons/lu";
+
+const Hero = () => {
+ return (
+
+
+
+
+ Open Source Next.js 14 SaaS Starter Kit
+
+
+ Never pay for Starter Kits anymore. Save time on your business with
+ this scalable OpenSource and production-ready SaaS boilerplate.
+
+
+
+
+
+
+
+
+ );
+};
+
+export default Hero;
diff --git a/apps/web/components/marketing/logo-cloud.tsx b/apps/web/components/marketing/logo-cloud.tsx
new file mode 100644
index 0000000..2ae5898
--- /dev/null
+++ b/apps/web/components/marketing/logo-cloud.tsx
@@ -0,0 +1,52 @@
+import Image from "next/image";
+
+const LogoCloud = () => {
+ return (
+
+
+
+ Trusted by the world's most innovative teams
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default LogoCloud;
diff --git a/apps/web/components/marketing/pricing.tsx b/apps/web/components/marketing/pricing.tsx
new file mode 100644
index 0000000..42f1ec7
--- /dev/null
+++ b/apps/web/components/marketing/pricing.tsx
@@ -0,0 +1,159 @@
+import { buttonVariants, cn } from "@openstarter/ui";
+import Link from "next/link";
+import { LuCheckCircle } from "react-icons/lu";
+
+const tiers = [
+ {
+ name: "Hobby",
+ id: "tier-hobby",
+ href: "#",
+ priceMonthly: "$19",
+ description:
+ "The perfect plan if you're just getting started with our product.",
+ features: [
+ "25 products",
+ "Up to 10,000 subscribers",
+ "Advanced analytics",
+ "24-hour support response time",
+ ],
+ featured: false,
+ },
+ {
+ name: "Enterprise",
+ id: "tier-enterprise",
+ href: "#",
+ priceMonthly: "$49",
+ description: "Dedicated support and infrastructure for your company.",
+ features: [
+ "Unlimited products",
+ "Unlimited subscribers",
+ "Advanced analytics",
+ "Dedicated support representative",
+ "Marketing automations",
+ "Custom integrations",
+ ],
+ featured: true,
+ },
+];
+
+const Pricing = () => {
+ return (
+
+
+
+
+ Pricing
+
+
+ The right price for you, whoever you are
+
+
+
+ Qui iusto aut est earum eos quae. Eligendi est at nam aliquid ad quo
+ reprehenderit in aliquid fugiat dolorum voluptatibus.
+
+
+ {tiers.map((tier, tierIdx) => (
+
+
+ {tier.name}
+
+
+
+ {tier.priceMonthly}
+
+
+ /month
+
+
+
+ {tier.description}
+
+
+ {tier.features.map((feature) => (
+ -
+
+ {feature}
+
+ ))}
+
+
+ Get started today
+
+
+ ))}
+
+
+ );
+};
+
+export default Pricing;