From e7a037651946c561a3daf40797450a98cbc29618 Mon Sep 17 00:00:00 2001 From: KMKoushik Date: Sun, 21 Apr 2024 20:50:24 +1000 Subject: [PATCH] Add some marketing content --- .../marketing/{.eslintrc.js => .eslintrc.cjs} | 0 apps/marketing/package.json | 1 + apps/marketing/src/app/page.tsx | 160 +++++++++++++++--- apps/web/src/app/(dashboard)/layout.tsx | 2 +- packages/ui/src/code.tsx | 1 - pnpm-lock.yaml | 13 +- 6 files changed, 149 insertions(+), 28 deletions(-) rename apps/marketing/{.eslintrc.js => .eslintrc.cjs} (100%) diff --git a/apps/marketing/.eslintrc.js b/apps/marketing/.eslintrc.cjs similarity index 100% rename from apps/marketing/.eslintrc.js rename to apps/marketing/.eslintrc.cjs diff --git a/apps/marketing/package.json b/apps/marketing/package.json index 08f4aa6..8568e9f 100644 --- a/apps/marketing/package.json +++ b/apps/marketing/package.json @@ -9,6 +9,7 @@ "lint": "next lint" }, "dependencies": { + "@heroicons/react": "^2.1.3", "framer-motion": "^11.0.24", "lucide-react": "^0.359.0", "next": "14.1.4", diff --git a/apps/marketing/src/app/page.tsx b/apps/marketing/src/app/page.tsx index dd72e64..8e07964 100644 --- a/apps/marketing/src/app/page.tsx +++ b/apps/marketing/src/app/page.tsx @@ -1,45 +1,155 @@ -import { ArrowRight, MoveRight, SendHorizonal } from "lucide-react"; -import Image from "next/image"; -import { BackgroundBeams } from "~/components/ui/background-beams"; -import { StyledInput } from "~/components/ui/styled-input"; +"use client"; + +import { motion } from "framer-motion"; +import { Mail, Rocket } from "lucide-react"; +import { + RocketLaunchIcon, + EnvelopeIcon, + MegaphoneIcon, + ChatBubbleOvalLeftEllipsisIcon, + BellAlertIcon, +} from "@heroicons/react/24/solid"; +import { Code } from "@unsend/ui/src/code"; export default function Home() { return ( -
-
+
+
-

+

Open source sending infrastructure for{" "} developers

-

+

Send transactional, marketing emails, SMSes and push notifications effortlessly.

-

- Join the waitlist! -

-
- - +
+ {}} + onHoverEnd={(e) => {}} + transition={{ type: "spring", stiffness: 400, damping: 10 }} + href="https://app.youform.io/forms/caja89vr" + target="_blank" + > + + Join the waitlist +
- + + {/* */}
-
-
-

+
+
+

Reach your users

+
+
+
+
+ +

Transactional Mail

+
+
    +
  • Simple to use! No wasted time on configuration.
  • +
  • Send emails that reach the inbox, not spam.
  • +
  • Get notified of email bounces and complaints.
  • +
+
+
+ {/* */} +
+
+
+
+
+ +

Marketing Mail

+
+
    +
  • Manage newsletters, changelogs, and broadcasts easily.
  • +
  • Use our no-code email builder and templates.
  • +
  • Measure engagement using click and open tracking.
  • +
  • We will manage subscriptions for you.
  • +
+
+
+
+
+
+
+ +
+

SMS

+
+ Coming soon +
+
+
+
    +
  • Manage newsletters, changelogs, and broadcasts easily.
  • +
  • Use our no-code email builder and templates.
  • +
  • Measure engagement using click and open tracking.
  • +
  • We will manage subscriptions for you.
  • +
+
+
+
+
+
+
+ +
+

Push notification

+
+ Coming soon +
+
+
+
    +
  • Manage newsletters, changelogs, and broadcasts easily.
  • +
  • Use our no-code email builder and templates.
  • +
  • Measure engagement using click and open tracking.
  • +
  • We will manage subscriptions for you.
  • +
+
+
+
+
+
+
+ {}} + onHoverEnd={(e) => {}} + transition={{ type: "spring", stiffness: 400, damping: 10 }} + href="https://app.youform.io/forms/caja89vr" + target="_blank" + > + Join the waitlist -

+
diff --git a/apps/web/src/app/(dashboard)/layout.tsx b/apps/web/src/app/(dashboard)/layout.tsx index 9124407..a4a84c0 100644 --- a/apps/web/src/app/(dashboard)/layout.tsx +++ b/apps/web/src/app/(dashboard)/layout.tsx @@ -64,7 +64,7 @@ export default async function AuthenticatedDashboardLayout({
- Unsend + Unsend Unsend diff --git a/packages/ui/src/code.tsx b/packages/ui/src/code.tsx index 5c282f4..3eae0f4 100644 --- a/packages/ui/src/code.tsx +++ b/packages/ui/src/code.tsx @@ -16,7 +16,6 @@ type CodeProps = { codeBlocks: { language: Language; code: string; - display?: string; }[]; }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c201ecf..259f2f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,6 +27,9 @@ importers: apps/marketing: dependencies: + '@heroicons/react': + specifier: ^2.1.3 + version: 2.1.3(react@18.2.0) framer-motion: specifier: ^11.0.24 version: 11.0.24(react-dom@18.2.0)(react@18.2.0) @@ -1498,6 +1501,14 @@ packages: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} dev: false + /@heroicons/react@2.1.3(react@18.2.0): + resolution: {integrity: sha512-fEcPfo4oN345SoqdlCDdSa4ivjaKbk0jTd+oubcgNxnNgAfzysfwWfQUr+51wigiWHQQRiZNd1Ao0M5Y3M2EGg==} + peerDependencies: + react: '>= 16' + dependencies: + react: 18.2.0 + dev: false + /@hono/node-server@1.9.1: resolution: {integrity: sha512-XBru0xbtRlTZJyAiFJLn7XDKbCVXBaRhVQAQhB9TwND2gwj8jf9SDWIj/7VxVtNAjURJf7Ofcz58DRA6DPYiWA==} engines: {node: '>=18.14.1'} @@ -4459,7 +4470,7 @@ packages: enhanced-resolve: 5.16.0 eslint: 8.57.0 eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.3 is-core-module: 2.13.1