Merge pull request #442 from formbricks/lp/concierge

Add Concierge Page to Landing Page
This commit is contained in:
Johannes
2023-06-28 05:36:12 -05:00
committed by GitHub
8 changed files with 169 additions and 42 deletions

View File

@@ -23,10 +23,10 @@ export const GitHubSponsorship: React.FC = () => {
/>
</div>
<h2 className="mt-4 text-2xl font-bold tracking-tight text-slate-800 dark:text-slate-200 lg:text-2xl">
Sponsored by GitHub
Proudly Open-Source 🤍
</h2>
<p className="lg:text-md mt-4 max-w-3xl text-slate-500 dark:text-slate-400">
We&apos;re proud to join the first accelerator program by GitHub!{" "}
We&apos;re proud to to be supported by GitHubs Open-Source Program!{" "}
<span>
<Link
href="/blog/inaugural-batch-github-accelerator"

View File

@@ -21,20 +21,15 @@ export const Hero: React.FC = ({}) => {
<div className="relative">
<div className="px-4 py-20 text-center sm:px-6 lg:px-8 lg:py-28">
<h1 className="text-3xl font-bold tracking-tight text-slate-800 dark:text-slate-200 sm:text-4xl md:text-5xl">
<span className="xl:inline">Survey any segment.</span>{" "}
<span
className="font-extralight" /* className="from-brand-light to-brand-dark bg-gradient-to-b bg-clip-text text-transparent xl:inline" */
>
No coding required.
</span>
<span className="xl:inline">Create Products People Remember</span>
</h1>
<p className="xs:max-w-none mx-auto mt-3 max-w-xs text-base text-slate-500 dark:text-slate-400 sm:text-lg md:mt-5 md:text-xl">
Survey granular user segments at any point in the user journey.
Understand what customers think & feel about your product.
<br />
<span className="hidden md:block">
Gather up to 6x more insights with targeted micro-surveys.{" "}
<span className="decoration-brand-dark underline underline-offset-4">All open-source.</span>
Continuously gather deep user insights,{" "}
<span className="decoration-brand-dark underline underline-offset-4">all privacy-first.</span>
</span>
</p>

View File

@@ -48,9 +48,7 @@ export default function Footer() {
<span className="sr-only">Formbricks</span>
<FooterLogo className="mx-auto h-8 w-auto sm:h-10" />
</Link>
<p className="text-base text-slate-500 dark:text-slate-400">
Make customer-centric decisions based on data.
</p>
<p className="text-base text-slate-500 dark:text-slate-400">Privacy-first Experience Management</p>
<div className="border-slate-500">
<p className="text-sm text-slate-400 dark:text-slate-500">
&copy; 2022. All rights reserved.

View File

@@ -269,9 +269,9 @@ export default function Header() {
</Link> */}
<Link
href="/community"
href="/concierge"
className="text-base font-medium text-slate-400 hover:text-slate-700 dark:hover:text-slate-300">
Community
Concierge
</Link>
</Popover.Group>
<div className="hidden flex-1 items-center justify-end md:flex">
@@ -363,7 +363,7 @@ export default function Header() {
<hr className="mx-20 my-6 opacity-25" />
</div>
)}
<Link href="/community">Community</Link>
<Link href="/concierge">Concierge</Link>
<Link href="#pricing">Pricing</Link>
<Link href="/docs">Docs</Link>
<Link href="/blog">Blog</Link>

View File

@@ -11,10 +11,11 @@
"lint": "next lint"
},
"dependencies": {
"@calcom/embed-react": "^1.1.1",
"@docsearch/react": "^3.3.3",
"@formbricks/ui": "workspace:*",
"@formbricks/types": "workspace:*",
"@formbricks/lib": "workspace:*",
"@formbricks/types": "workspace:*",
"@formbricks/ui": "workspace:*",
"@headlessui/react": "^1.7.14",
"@heroicons/react": "^2.0.17",
"@mapbox/rehype-prism": "^0.8.0",

View File

@@ -0,0 +1,108 @@
import HeroTitle from "@/components/shared/HeroTitle";
import Layout from "@/components/shared/Layout";
import Cal, { getCalApi } from "@calcom/embed-react";
import { useEffect } from "react";
import { CheckBadgeIcon } from "@heroicons/react/24/solid";
const XMOffer = [
{
step: "1",
header: "Kick-off call",
description: "You share with our seasoned PMs which areas of your customer experience need improvement.",
},
{
step: "2",
header: "In-depth analysis",
description: "With a fresh pair of eyes, we analyze your customer experience to uncover potential.",
},
{
step: "3",
header: "Research design",
description: "We set up systems for continuous discovery. Benefit from an ongoing stream of insights.",
},
{
step: "4",
header: "Setup assistance",
description: "Our core developers help you get Formbricks up and running in no more than 60 minutes.",
},
{
step: "5",
header: "Actionable insights",
description:
"Once the results are in, we perform a thorough analysis and derive concrete Next Action Steps to retain your customers better.",
},
];
const ConciergePage = () => {
useEffect(() => {
(async function () {
const cal = await getCalApi();
cal("ui", {
theme: "light",
styles: { branding: { brandColor: "#000000" } },
hideEventTypeDetails: false,
});
})();
}, []);
return (
<Layout
title="Community | Formbricks Open Source Forms & Surveys"
description="You're building open source forms and surveys? So are we! Get support for anything your building - or just say hi!">
<HeroTitle
headingPt1="XM"
headingTeal="Concierge"
headingPt2="Service"
subheading="Let's set up your system for continuous user discovery together."
/>
<div className="-mt-16 grid grid-cols-1 space-y-4 px-4 md:grid-cols-2 md:gap-8 md:px-16">
<div className="rounded-xl bg-slate-100 p-12">
{XMOffer.map((offer) => (
<div key={offer.step} className="mb-8 flex items-center gap-x-4">
<div className=" flex items-center justify-center rounded-full bg-emerald-50 p-4 text-2xl font-bold text-emerald-700">
{offer.step}
</div>
<div>
<h4 className="font-semibold text-slate-700">{offer.header}</h4>
<p className="text-sm text-slate-800">{offer.description}</p>
</div>
</div>
))}
<div className="border-b border-t border-slate-300 p-6 text-4xl font-semibold text-slate-800">
<p className="mr-2 font-light line-through">$2.990</p>
<div className="xs:flex items-center gap-x-2">
<p>$990</p>
<p className="whitespace-nowrap rounded-full bg-indigo-200 px-4 text-base font-normal text-indigo-800">
24h GitHub Demo Offer 🔥
</p>
</div>
</div>
<div className="p-6 text-sm text-slate-800">
<p>
<CheckBadgeIcon className="mr-1 inline h-5 w-5 text-slate-800" />
100% Risk-free: Pay after the kick-off call.
</p>
<p>
<CheckBadgeIcon className="mr-1 inline h-5 w-5 text-slate-800" />
Money-back: If you&apos;re not happy, get a full refund.
</p>
</div>
</div>
<div className="rounded-xl">
<Cal
calLink="johannes/concierge-kick-off"
style={{
width: "100%",
height: "100%",
overflow: "scroll",
borderRadius: "0.5rem",
}}
config={{ layout: "month_view" }}
/>
</div>
</div>
</Layout>
);
};
export default ConciergePage;

View File

@@ -10,7 +10,7 @@ import BestPractices from "@/components/shared/BestPractices";
const IndexPage = () => (
<Layout
title="Formbricks | Embedded User Research"
title="Formbricks | Privacy-first user research"
description="Build qualitative user research into your product. Leverage Best practices to increase Product-Market Fit.">
<Hero />
<div className="hidden lg:block">

69
pnpm-lock.yaml generated
View File

@@ -18,7 +18,7 @@ importers:
version: 3.12.6
turbo:
specifier: latest
version: 1.10.3
version: 1.10.6
apps/demo:
dependencies:
@@ -77,6 +77,9 @@ importers:
apps/formbricks-com:
dependencies:
'@calcom/embed-react':
specifier: ^1.1.1
version: 1.1.1(react-dom@18.2.0)(react@18.2.0)
'@docsearch/react':
specifier: ^3.3.3
version: 3.3.3(@algolia/client-search@4.14.2)(@types/react@18.0.35)(react-dom@18.2.0)(react@18.2.0)
@@ -2256,6 +2259,28 @@ packages:
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
dev: true
/@calcom/embed-core@1.2.1:
resolution: {integrity: sha512-KDL1gjWiixDmaLRT/Ps7Y2MgXfe1NPkVr9UG/VkkJnIVxBz8M0tLBdGTRZpLzwVpsN7VsK/Wb1p9dZ8SYTKitw==}
dev: false
/@calcom/embed-react@1.1.1(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-K27CYyrHKzkc7kWNhLnrZPh0+uJy2VAab9Z8e6jKylYNWBraiAb9zyx8hOFcAMpHHOHXb1XBN76HLm3Ug7Js3A==}
peerDependencies:
react: ^18.2.0
react-dom: ^18.2.0
dependencies:
'@calcom/embed-core': 1.2.1
'@calcom/embed-snippet': 1.0.9
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
/@calcom/embed-snippet@1.0.9:
resolution: {integrity: sha512-x8/RZxYUQ3uPZButjHWiZ5Kz00+Y9v+NK2XEklnKC2JslDEzRU+KV/g8Lk5aF/xweHSioKwVLa5xBmrfR9deKg==}
dependencies:
'@calcom/embed-core': 1.2.1
dev: false
/@changesets/apply-release-plan@6.1.3:
resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==}
dependencies:
@@ -5776,7 +5801,7 @@ packages:
tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
dependencies:
mini-svg-data-uri: 1.4.4
tailwindcss: 3.3.1(postcss@8.4.21)
tailwindcss: 3.3.1(postcss@8.4.22)
dev: true
/@tailwindcss/forms@0.5.3(tailwindcss@3.3.2):
@@ -20614,65 +20639,65 @@ packages:
dependencies:
safe-buffer: 5.2.1
/turbo-darwin-64@1.10.3:
resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==}
/turbo-darwin-64@1.10.6:
resolution: {integrity: sha512-s2Gc7i9Ud+H9GDcrGJjPIyscJfzDGQ6il4Sl2snfvwngJs4/TaqKuBoX3HNt/7F4NiFRs7ZhlLV1/Yu9zGBRhw==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-darwin-arm64@1.10.3:
resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==}
/turbo-darwin-arm64@1.10.6:
resolution: {integrity: sha512-tgl70t5PBLyRcNTdP9N6NjvdvQ5LUk8Z60JGUhBhnc+oCOdA4pltrDJNPyel3tQAXXt1dDpl8pp9vUrbwoVyGg==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/turbo-linux-64@1.10.3:
resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==}
/turbo-linux-64@1.10.6:
resolution: {integrity: sha512-h7eyAA3xtAVpamcYJYUwe0xm0LWdbv7/I7QiM09AZ67TTNpyUgqW8giFN3h793BHEQ2Rcnk9FNkpIbjWBbyamg==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-linux-arm64@1.10.3:
resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==}
/turbo-linux-arm64@1.10.6:
resolution: {integrity: sha512-8cZhOeLqu3QZ27yLd6bw4FNaB8y5pLdWeRLJeiWHkIb/cptKnRKJFP+keBJzJi8ovaMqdBpabrxiBRN2lhau5Q==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/turbo-windows-64@1.10.3:
resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==}
/turbo-windows-64@1.10.6:
resolution: {integrity: sha512-qx5jcfCJodN1Mh0KtSVQau7pK8CxDvtif7+joPHI2HbQPAADgdUl0LHfA5tFHh6aWgfvhxbvIXqJd6v7Mqkj9g==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo-windows-arm64@1.10.3:
resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==}
/turbo-windows-arm64@1.10.6:
resolution: {integrity: sha512-vTQaRG3/s2XTreOBr6J9HKFtjzusvwGQg0GtuW2+9Z7fizdzP8MuhaDbN6FhKHcWC81PQPD61TBIKTVTsYOEZg==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/turbo@1.10.3:
resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==}
/turbo@1.10.6:
resolution: {integrity: sha512-0/wbjw4HvmPP1abVWHTdeFRfCA9cn5oxCPP5bDixagLzvDgGWE3xfdlsyGmq779Ekr9vjtDPgC2Y4JlXEhyryw==}
hasBin: true
requiresBuild: true
optionalDependencies:
turbo-darwin-64: 1.10.3
turbo-darwin-arm64: 1.10.3
turbo-linux-64: 1.10.3
turbo-linux-arm64: 1.10.3
turbo-windows-64: 1.10.3
turbo-windows-arm64: 1.10.3
turbo-darwin-64: 1.10.6
turbo-darwin-arm64: 1.10.6
turbo-linux-64: 1.10.6
turbo-linux-arm64: 1.10.6
turbo-windows-64: 1.10.6
turbo-windows-arm64: 1.10.6
dev: true
/tween-functions@1.2.0: