Skip to content

Commit

Permalink
update pricing with latest AI changes (#1225)
Browse files Browse the repository at this point in the history
* update pricing with latest AI changes

* updates for aleks comments

---------

Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
  • Loading branch information
2 people authored and Kastier1 committed Feb 28, 2025
1 parent 23c0f5a commit 17a2218
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 85 deletions.
14 changes: 11 additions & 3 deletions pcweb/pages/pricing/header.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ def header() -> rx.Component:
"Pricing that scales with you",
class_name="gradient-heading font-semibold text-4xl xl:text-5xl text-center",
),
rx.el.h2(
"Start for free using the open-source and scale as you grow.",
class_name="font-medium text-slate-9 text-lg text-center text-wrap",
rx.hstack(
rx.el.a(
rx.badge("Build with AI", class_name="text-lg text-center text-wrap rounded-md bg-[--violet-9] flex items-center justify-center text-[#FCFCFD]"),
href="https://reflex.build",
),
rx.el.a(
rx.badge("Deploy with Cloud", class_name="text-lg text-center text-wrap rounded-md bg-[--violet-9] flex items-center justify-center text-[#FCFCFD]"),
href="https://cloud.reflex.dev",
),
rx.badge("Scale with Enterprise", class_name="text-lg text-center text-wrap rounded-md bg-[--violet-9] flex items-center justify-center text-[#FCFCFD]"),
gap="2rem",
),
class_name="flex flex-col gap-4 justify-center items-center max-w-[64.19rem] 2xl:border-x border-slate-4 w-full pb-16 "
+ rx.cond(HostingBannerState.show_banner, "pt-[13rem]", "pt-[10rem]"),
Expand Down
74 changes: 44 additions & 30 deletions pcweb/pages/pricing/plan_cards.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@ def grid() -> rx.Component:


def card(
title: str, description: str, features: list[tuple[str, str]], button_text: str, price: str = None
title: str,
description: str,
features: list[tuple[str, str]],
button_text: str,
price: str = None,
) -> rx.Component:
return rx.box(
rx.el.div(
Expand All @@ -151,9 +155,11 @@ def card(
rx.icon(feature[0], class_name="!text-slate-9", size=16),
feature[1],
rx.tooltip(
rx.icon("info", class_name="!text-slate-9", size=12),
rx.icon("info", class_name="!text-slate-9", size=12),
content=feature[2],
) if len(feature) == 3 else "",
)
if len(feature) == 3
else "",
class_name="text-sm font-medium text-slate-11 flex items-center gap-3",
)
for feature in features
Expand All @@ -177,7 +183,11 @@ def card(


def popular_card(
title: str, description: str, features: list[tuple[str, str]], button_text: str, price: str = None
title: str,
description: str,
features: list[tuple[str, str]],
button_text: str,
price: str = None,
) -> rx.Component:
return rx.box(
rx.box(
Expand All @@ -189,7 +199,9 @@ def popular_card(
grid(),
rx.hstack(
rx.el.h3(title, class_name="font-semibold text-slate-12 text-2xl"),
rx.badge(price, color_scheme="violet", size="3") if price else rx.fragment(),
rx.badge(price, color_scheme="violet", size="3")
if price
else rx.fragment(),
class_name="flex items-center mb-2 gap-2",
),
rx.el.p(description, class_name="text-sm font-medium text-slate-9 mb-8"),
Expand All @@ -201,7 +213,9 @@ def popular_card(
rx.tooltip(
rx.icon("info", class_name="!text-slate-9", size=12),
content=feature[2],
) if len(feature) == 3 else "",
)
if len(feature) == 3
else "",
class_name="text-sm font-medium text-slate-11 flex items-center gap-3",
)
for feature in features
Expand Down Expand Up @@ -232,27 +246,25 @@ def plan_cards() -> rx.Component:
"Hobby",
"Everything you need to get started.",
[
("heart-handshake", "Community support"),
("app-window", "Unlimited apps", "Free users are limited to 20 hours of 1 vCPU, 1 GB RAM machines per month."),
("clock", "1 day log retention"),
("code", "Open Source Framework"),
("file-code", "Starter Templates"),
("brain", "AI App Builder (Limited Access)"),
(
"app-window",
"Cloud Unlimited Apps",
"Free users are limited to 20 hours of 1 vCPU, 1 GB RAM machines per month.",
),
("code", "Reflex Open Source"),
("heart-handshake", "Discord/Github Support"),
],
"Start building for free",
price="Free",
),
popular_card(
"Pro",
"For professional projects and startups.",
[
("heart-handshake", "Priority Community support"),
("users", "1 seat incl. (additional seats at $20/mo)"),
("credit-card", "$10 / month free compute credits"),
("server", "Customize machine sizes"),
("clock", "30 days log retention"),
("globe", "Multi-region"),
[
("brain", "AI App Builder (Free $20 credits / month)"),
("credit-card", "Cloud (Free $10 credits / month)"),
("brush", "Custom domains"),
("file-badge", "Remove Branding", "Check out the Reflex Branding doc page to learn how to remove the 'Built with Reflex' badge from your app."),
("circle-plus", "Everything in Hobby"),
],
"Start with Pro plan",
Expand All @@ -262,29 +274,31 @@ def plan_cards() -> rx.Component:
"Team",
"For teams looking to scale their applications.",
[
("mail", "Email/Slack support"),
("users", "5 seat incl. (additional seats available)"),
("credit-card", "Monthly free compute credits"),
("git-branch", "Create multiple projects"),
("signal", "Full Website Analytics"),
("users", "Invite your team mates"),
(
"cable",
"Connect AI Builder to your Data",
"Integrations include Databricks, Snowflake, etc.",
),
("lock-keyhole", "One Click Auth"),
("file-badge", "Remove Branding Everywhere", "Check out the Remove Reflex Branding section in the Self Hosting doc page to learn how to remove the 'Built with Reflex' badge from your app."),
("file-badge", "AG Grid with no Reflex Branding"),
("mail", "Email support"),
("circle-plus", "Everything in Pro"),
],
"Contact sales",
price="$49/user/mo + compute",
redirect_url=REFLEX_DEV_WEB_LANDING_FORM_URL_GET_DEMO,
),
card(
"Enterprise",
"Get a plan tailored to your business needs.",
[
("headset", "Dedicated Support"),
("users", "Customized seat amount"),
("hand-helping", "White Glove Onboarding"),
("user-round-plus", "Personalized integration help"),
("hard-drive", "On Premise Deployment"),
("clock", "Unlimited log retention"),
("activity", "Error Monitoring and Observability"),
("key", "Bring your own AI API keys"),
("headset", "Dedicated Support Channel"),
("git-pull-request", "Influence Reflex Roadmap"),
("shield-check", "Audit logs, SSO, SOC2 Reports"),
("circle-plus", "Everything in Team"),
],
"Contact sales",
Expand Down
12 changes: 8 additions & 4 deletions pcweb/pages/pricing/pricing.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,17 @@
from pcweb.pages.index.views.footer_index import footer_index
from pcweb.pages.pricing.header import header
from pcweb.pages.pricing.plan_cards import plan_cards
from pcweb.pages.pricing.table import comparison_table_hosting, comparison_table_oss
from pcweb.views.bottom_section.get_started import get_started
from pcweb.pages.pricing.table import (
comparison_table_hosting,
comparison_table_ai_and_oss,
)
from pcweb.pages.pricing.faq import faq
from pcweb.pages.pricing.calculator import calculator_section
from pcweb.meta.meta import hosting_meta_tags

pricing_path = "/pricing"


@rx.page(route=pricing_path, title="Reflex · Pricing", meta=hosting_meta_tags)
def pricing() -> rx.Component:
"""Get the Pricing landing page."""
Expand All @@ -23,9 +27,9 @@ def pricing() -> rx.Component:
rx.box(
header(),
plan_cards(),
calculator_section(),
comparison_table_ai_and_oss(),
comparison_table_hosting(),
comparison_table_oss(),
calculator_section(),
faq(),
class_name="flex flex-col relative justify-center items-center w-full",
),
Expand Down
Loading

0 comments on commit 17a2218

Please sign in to comment.