import React, { useState, useEffect, Suspense } from "react";
import {
Flex,
Heading,
Text,
Box,
Image,
ListItem,
Button,
Link,
ListIcon,
List,
useBreakpointValue,
Center,
Fade,
} from "@chakra-ui/react";
import { Grid, GridItem } from "@chakra-ui/react";
import { useUser, useAnalytics, useModals, useRouter } from "../src/core/hooks";
import { openPopupWidget, InlineWidget } from "react-calendly";
import TrustedBadge from "../src/components/TrustedBadge"
import { getLayout } from "../src/layouts";
const TEXT_PROPS = {
fontSize: ["lg", null, "xl"],
fontWeight: "600",
};
const HEADING_PROPS = {
fontWeight: "700",
fontSize: ["4xl", "5xl", "4xl", "5xl", "6xl", "7xl"],
};
const TITLE_PROPS = {
fontWeight: "700",
fontSize: ["4xl", "5xl", "5xl", "5xl", "6xl", "120px"],
};
const TRIPLE_PICS_PROPS = {
fontSize: ["2xl", "3xl", "3xl", "3xl", "4xl", "4xl"],
textAlign: "center",
fontWeight: "500",
py: 4,
};
const TRIPLE_PICS_TEXT = {
fontSize: ["lg", "xl", "xl", "xl", "2xl", "3xl"],
textAlign: "center",
fontWeight: "400",
mb: ["2rem", "2rem", "0", null, "0"],
};
const CARD_CONTAINER = {
className: "CardContainer",
w: "100%",
mx: [0, 0, "2rem", null, "4rem"],
alignSelf: ["center", null, "flex-start"],
};
const IMAGE_CONTAINER = {
className: "ImageContainer",
h: ["10rem", "14rem", "14rem", "15rem", "18rem", "20rem"],
justifyContent: "center",
};
const AWS_PATH = "https://s3.amazonaws.com/static.simiotics.com/landing";
const assets = {
background: `${AWS_PATH}/landing-background-2.png`,
aviator: `${AWS_PATH}/aviator-2.svg`,
icon1: `${AWS_PATH}/v2/Icon+1.svg`,
icon2: `${AWS_PATH}/v2/Icon+2.svg`,
icon3: `${AWS_PATH}/v2/Icon+3.svg`,
icon4: `${AWS_PATH}/v2/Icon+4.svg`,
icon5: `${AWS_PATH}/v2/Icon+5.svg`,
icon6: `${AWS_PATH}/v2/Icon+6.svg`,
activeloopLogo: `${AWS_PATH}/activeloop.svg`,
aiIncubeLogo: `${AWS_PATH}/ai incube.svg`,
b612Logo: `${AWS_PATH}/b612.svg`,
harvardLogo: `${AWS_PATH}/harvard.svg`,
mattermarkLogo: `${AWS_PATH}/mattermark.svg`,
mixrankLogo: `${AWS_PATH}/mixrank.svg`,
toolchainLogo: `${AWS_PATH}/toolchain.svg`,
};
const Homepage = () => {
const router = useRouter();
const buttonSize = useBreakpointValue({
base: "md",
sm: "md",
md: "md",
lg: "lg",
xl: "xl",
"2xl": "xl",
});
const ButtonRadius = "2xl";
const buttonWidth = ["100%", "100%", "40%", "45%", "45%", "45%"];
const buttonMinWidth = "10rem";
const { isInit } = useUser();
const { withTracking, MIXPANEL_EVENTS } = useAnalytics();
const { toggleModal } = useModals();
const [scrollDepth, setScrollDepth] = useState(0);
const getScrollPrecent = ({ currentTarget }) => {
const scroll_level =
(100 * (currentTarget.scrollTop + currentTarget.clientHeight)) /
currentTarget.scrollHeight;
return scroll_level;
};
const handleScroll = (e) => {
const currentScroll = Math.ceil(getScrollPrecent(e) / 10);
if (currentScroll > scrollDepth) {
withTracking(
setScrollDepth(currentScroll),
MIXPANEL_EVENTS.HOMEPAGE_SCROLL_DEPTH,
scrollDepth
);
}
};
const DoubleCTAButton = () => (
);
useEffect(() => {
if (
router.nextRouter.asPath !== "/" &&
router.nextRouter.asPath.slice(0, 2) !== "/?"
) {
router.replace(router.nextRouter.asPath, undefined, {
shallow: true,
});
}
}, [isInit, router]);
return (
handleScroll(e)}
>
Measure the success of your dev tool
Get usage metrics and crash reports {" "}
{`Improve your
users' experience`}
See what your users are experiencing with your library, API, or
command line tool
Catch and fix bugs faster
Learn about errors as they occur, with full stack traces.
Understand your user engagement and retention
Learn how users are using your tool, and how frequently.
Inform your product roadmap
Understand which features people are actually using.
We currently support Python, Javascript and Go!
Want us to support other programming languages?{" "}
Engage with your users on a deeper level
Live dashboards
See your users’ journeys as they happen
GDPR compliance
Automatically handle GDPR-related user requests
Simple user consent flows
Define principled user consent flows in only a few lines of
code.
Loved by proactive teams{" "}
💙
Ready to learn more?
Book office hours with Neeraj Kashyap (
@zomglings
), CEO of Bugout
{`Let's talk about:`}
"- "} />
How to measure and improve the quality of your users’
experience
"- "} />
Ethical data collection
"- "} />
Developer tools best practices, pulling from our experience at
OpenAI and Google (TensorFlow, Kubeflow, Google Cloud)
Book now →