kopia lustrzana https://github.com/bugout-dev/moonstream
250 wiersze
7.3 KiB
JavaScript
250 wiersze
7.3 KiB
JavaScript
import React from "react";
|
|
import {
|
|
Box,
|
|
Stack,
|
|
HStack,
|
|
Heading,
|
|
Text,
|
|
VStack,
|
|
useColorModeValue,
|
|
List,
|
|
ListItem,
|
|
ListIcon,
|
|
Button,
|
|
} from "@chakra-ui/react";
|
|
import { FaCheckCircle } from "react-icons/fa";
|
|
import { getLayout } from "../src/layouts";
|
|
|
|
function PriceWrapper({ children }) {
|
|
return (
|
|
<Box
|
|
mb={4}
|
|
shadow="base"
|
|
borderWidth="1px"
|
|
alignSelf={{ base: "center", lg: "flex-start" }}
|
|
borderColor={useColorModeValue("gray.200", "gray.500")}
|
|
borderRadius={"xl"}
|
|
>
|
|
{children}
|
|
</Box>
|
|
);
|
|
}
|
|
|
|
const Pricing = (props) => {
|
|
return (
|
|
<Box py={12} minH="100vh">
|
|
<VStack spacing={2} textAlign="center">
|
|
<Heading as="h1" fontSize="4xl">
|
|
Plans that fit your need
|
|
</Heading>
|
|
<Text fontSize="lg" color={"gray.500"}>
|
|
Start with 14-day free trial. No credit card needed. Cancel at
|
|
anytime.
|
|
</Text>
|
|
</VStack>
|
|
<Stack
|
|
direction={{ base: "column", md: "row" }}
|
|
textAlign="center"
|
|
justify="center"
|
|
spacing={{ base: 4, lg: 10 }}
|
|
py={10}
|
|
>
|
|
<PriceWrapper>
|
|
<Box py={4} px={12}>
|
|
<Text fontWeight="500" fontSize="2xl">
|
|
Hobby
|
|
</Text>
|
|
<HStack justifyContent="center">
|
|
<Text fontSize="3xl" fontWeight="600">
|
|
$
|
|
</Text>
|
|
<Text fontSize="5xl" fontWeight="900">
|
|
79
|
|
</Text>
|
|
<Text fontSize="3xl" color="gray.500">
|
|
/month
|
|
</Text>
|
|
</HStack>
|
|
</Box>
|
|
<VStack
|
|
bg={useColorModeValue("gray.50", "gray.700")}
|
|
py={4}
|
|
borderBottomRadius={"xl"}
|
|
>
|
|
<List spacing={3} textAlign="start" px={12}>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
unlimited build minutes
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
Lorem, ipsum dolor.
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
5TB Lorem, ipsum dolor.
|
|
</ListItem>
|
|
</List>
|
|
<Box w="80%" pt={7}>
|
|
<Button w="full" colorScheme="primary" variant="outline">
|
|
Start trial
|
|
</Button>
|
|
</Box>
|
|
</VStack>
|
|
</PriceWrapper>
|
|
|
|
<PriceWrapper>
|
|
<Box position="relative">
|
|
<Box
|
|
position="absolute"
|
|
top="-16px"
|
|
left="50%"
|
|
style={{ transform: "translate(-50%)" }}
|
|
>
|
|
<Text
|
|
textTransform="uppercase"
|
|
bg={useColorModeValue("secondary.300", "secondary.700")}
|
|
px={3}
|
|
py={1}
|
|
color={useColorModeValue("white.900", "white.300")}
|
|
fontSize="sm"
|
|
fontWeight="600"
|
|
rounded="xl"
|
|
>
|
|
Most Popular
|
|
</Text>
|
|
</Box>
|
|
<Box py={4} px={12}>
|
|
<Text fontWeight="500" fontSize="2xl">
|
|
Growth
|
|
</Text>
|
|
<HStack justifyContent="center">
|
|
<Text fontSize="3xl" fontWeight="600">
|
|
$
|
|
</Text>
|
|
<Text fontSize="5xl" fontWeight="900">
|
|
149
|
|
</Text>
|
|
<Text fontSize="3xl" color="gray.500">
|
|
/month
|
|
</Text>
|
|
</HStack>
|
|
</Box>
|
|
<VStack
|
|
bg={useColorModeValue("gray.50", "gray.700")}
|
|
py={4}
|
|
borderBottomRadius={"xl"}
|
|
>
|
|
<List spacing={3} textAlign="start" px={12}>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
unlimited build minutes
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
Lorem, ipsum dolor.
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
5TB Lorem, ipsum dolor.
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
5TB Lorem, ipsum dolor.
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
5TB Lorem, ipsum dolor.
|
|
</ListItem>
|
|
</List>
|
|
<Box w="80%" pt={7}>
|
|
<Button w="full" colorScheme="suggested">
|
|
Start trial
|
|
</Button>
|
|
</Box>
|
|
</VStack>
|
|
</Box>
|
|
</PriceWrapper>
|
|
<PriceWrapper>
|
|
<Box py={4} px={12}>
|
|
<Text fontWeight="500" fontSize="2xl">
|
|
Scale
|
|
</Text>
|
|
<HStack justifyContent="center">
|
|
<Text fontSize="3xl" fontWeight="600">
|
|
$
|
|
</Text>
|
|
<Text fontSize="5xl" fontWeight="900">
|
|
349
|
|
</Text>
|
|
<Text fontSize="3xl" color="gray.500">
|
|
/month
|
|
</Text>
|
|
</HStack>
|
|
</Box>
|
|
<VStack
|
|
bg={useColorModeValue("gray.50", "gray.700")}
|
|
py={4}
|
|
borderBottomRadius={"xl"}
|
|
>
|
|
<List spacing={3} textAlign="start" px={12}>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
unlimited build minutes
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
Lorem, ipsum dolor.
|
|
</ListItem>
|
|
<ListItem>
|
|
<ListIcon as={FaCheckCircle} color="suggested.900" />
|
|
5TB Lorem, ipsum dolor.
|
|
</ListItem>
|
|
</List>
|
|
<Box w="80%" pt={7}>
|
|
<Button w="full" colorScheme="primary" variant="outline">
|
|
Start trial
|
|
</Button>
|
|
</Box>
|
|
</VStack>
|
|
</PriceWrapper>
|
|
</Stack>
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export async function getStaticProps() {
|
|
const metaTags = {
|
|
title: "Bugout: Measure the success of your dev tool",
|
|
description:
|
|
"Get usage metrics and crash reports. Improve your users' experience",
|
|
keywords:
|
|
"bugout, bugout-dev, bugout.dev, usage-metrics, analytics, dev-tool ,knowledge, docs, journal, entry, find-anything",
|
|
url: "https://bugout.dev",
|
|
image:
|
|
"https://s3.amazonaws.com/static.simiotics.com/landing/aviator-2.svg",
|
|
};
|
|
|
|
// const assetPreload = Object.keys(assets).map((key) => {
|
|
// return {
|
|
// rel: "preload",
|
|
// href: assets[key],
|
|
// as: "image",
|
|
// };
|
|
// });
|
|
// const preconnects = [
|
|
// { rel: "preconnect", href: "https://s3.amazonaws.com" },
|
|
// { rel: "preconnect", href: "https://assets.calendly.com/" },
|
|
// ];
|
|
|
|
// const preloads = assetPreload.concat(preconnects);
|
|
|
|
return {
|
|
props: { metaTags },
|
|
};
|
|
}
|
|
|
|
Pricing.getLayout = getLayout;
|
|
|
|
export default Pricing;
|