import type { BlitzPage } from "blitz"; import { Link, Routes } from "blitz"; import { HiCheck, HiX } from "react-icons/hi"; import clsx from "clsx"; import BaseLayout from "../components/base-layout"; const paidFeatures = [ "SMS", "MMS (coming soon)", "Calls", "SMS forwarding (coming soon)", "Call forwarding (coming soon)", "Voicemail (coming soon)", "Call recording (coming soon)", ]; const pricing = { tiers: [ { title: "Free", price: 0, frequency: "", description: "The essentials to let you try Shellphone.", features: ["SMS (send only)"], unavailableFeatures: paidFeatures.slice(1), cta: "Join waitlist", yearly: false, }, { title: "Yearly", price: 10, frequency: "/month", description: "Text and call anyone, anywhere in the world, all year long.", features: paidFeatures, unavailableFeatures: [], cta: "Join waitlist", yearly: true, }, { title: "Monthly", price: 15, frequency: "/month", description: "Text and call anyone, anywhere in the world.", features: paidFeatures, unavailableFeatures: [], cta: "Join waitlist", yearly: false, }, ], }; const Pricing: BlitzPage = () => { return ( Simple no-tricks pricing One affordable and transparent plan that includes everything you need. {pricing.tiers.map((tier) => ( {tier.title} {tier.yearly ? ( Get 2 months free! ) : null} {tier.price}€ {tier.frequency} {tier.yearly ? ( Billed yearly ({tier.price * 10}€) ) : null} {tier.description} {tier.features.map((feature) => ( {feature} ))} {tier.unavailableFeatures.map((feature) => ( {~feature.indexOf("(coming soon)") ? feature.slice(0, feature.indexOf("(coming soon)")) : feature} ))} {tier.cta} ))} ); }; Pricing.getLayout = (page) => {page}; Pricing.suppressFirstRenderFlicker = true; export default Pricing;
One affordable and transparent plan that includes everything you need.
Get 2 months free!
{tier.price}€ {tier.frequency}
Billed yearly ({tier.price * 10}€)
{tier.description}