From e16ae72b75f67fe45dc3477881d99408e5b74f61 Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 13 Jan 2026 17:43:21 +0100 Subject: [PATCH 1/3] OPS-832: Marketing Goverment Page --- assets/companies/light/forem.svg | 1 + assets/companies/light/llnl.svg | 1 + assets/companies/light/norfolk.svg | 1 + assets/companies/light/saccounty.svg | 1 + assets/companies/light/scc.svg | 1 + assets/companies/light/unglobalcompact.svg | 1 + pcweb/components/docpage/navbar/navbar.py | 6 +++ pcweb/pages/__init__.py | 1 + pcweb/pages/use_cases/government/__init__.py | 33 ++++++++++++ pcweb/pages/use_cases/government/views/faq.py | 30 +++++++++++ .../use_cases/government/views/features_1.py | 52 +++++++++++++++++++ .../use_cases/government/views/features_2.py | 33 ++++++++++++ .../government/views/final_section.py | 20 +++++++ .../pages/use_cases/government/views/hero.py | 44 ++++++++++++++++ .../use_cases/government/views/quotes.py | 33 ++++++++++++ .../government/views/social_proof.py | 37 +++++++++++++ .../pages/use_cases/government/views/stats.py | 39 ++++++++++++++ .../government/views/text_section_1.py | 11 ++++ .../government/views/text_section_2.py | 11 ++++ .../government/views/text_section_3.py | 11 ++++ 20 files changed, 367 insertions(+) create mode 100644 assets/companies/light/forem.svg create mode 100644 assets/companies/light/llnl.svg create mode 100644 assets/companies/light/norfolk.svg create mode 100644 assets/companies/light/saccounty.svg create mode 100644 assets/companies/light/scc.svg create mode 100644 assets/companies/light/unglobalcompact.svg create mode 100644 pcweb/pages/use_cases/government/__init__.py create mode 100644 pcweb/pages/use_cases/government/views/faq.py create mode 100644 pcweb/pages/use_cases/government/views/features_1.py create mode 100644 pcweb/pages/use_cases/government/views/features_2.py create mode 100644 pcweb/pages/use_cases/government/views/final_section.py create mode 100644 pcweb/pages/use_cases/government/views/hero.py create mode 100644 pcweb/pages/use_cases/government/views/quotes.py create mode 100644 pcweb/pages/use_cases/government/views/social_proof.py create mode 100644 pcweb/pages/use_cases/government/views/stats.py create mode 100644 pcweb/pages/use_cases/government/views/text_section_1.py create mode 100644 pcweb/pages/use_cases/government/views/text_section_2.py create mode 100644 pcweb/pages/use_cases/government/views/text_section_3.py diff --git a/assets/companies/light/forem.svg b/assets/companies/light/forem.svg new file mode 100644 index 000000000..91ff52238 --- /dev/null +++ b/assets/companies/light/forem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/companies/light/llnl.svg b/assets/companies/light/llnl.svg new file mode 100644 index 000000000..3364abd9d --- /dev/null +++ b/assets/companies/light/llnl.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/companies/light/norfolk.svg b/assets/companies/light/norfolk.svg new file mode 100644 index 000000000..dfc0ccced --- /dev/null +++ b/assets/companies/light/norfolk.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/companies/light/saccounty.svg b/assets/companies/light/saccounty.svg new file mode 100644 index 000000000..17442723a --- /dev/null +++ b/assets/companies/light/saccounty.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/companies/light/scc.svg b/assets/companies/light/scc.svg new file mode 100644 index 000000000..83e19e68e --- /dev/null +++ b/assets/companies/light/scc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/companies/light/unglobalcompact.svg b/assets/companies/light/unglobalcompact.svg new file mode 100644 index 000000000..77711fbba --- /dev/null +++ b/assets/companies/light/unglobalcompact.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pcweb/components/docpage/navbar/navbar.py b/pcweb/components/docpage/navbar/navbar.py index 6cda0da5e..b05b0f25a 100644 --- a/pcweb/components/docpage/navbar/navbar.py +++ b/pcweb/components/docpage/navbar/navbar.py @@ -12,6 +12,7 @@ from pcweb.pages.framework.framework import framework from pcweb.pages.hosting.hosting import hosting_landing from pcweb.pages.use_cases.finance import finance_use_case_page +from pcweb.pages.use_cases.government import government_use_case_page from pcweb.pages.use_cases.healthcare import healthcare_use_case_page from pcweb.pages.use_cases.use_cases import use_cases_page @@ -388,6 +389,11 @@ def solutions_section(): "url": healthcare_use_case_page.path, "icon": "HealthIcon", }, + { + "label": "Government", + "url": government_use_case_page.path, + "icon": "City01Icon", + }, { "label": "Consulting", "url": use_cases_page.path, diff --git a/pcweb/pages/__init__.py b/pcweb/pages/__init__.py index e0c8a4b11..7f7f828fc 100644 --- a/pcweb/pages/__init__.py +++ b/pcweb/pages/__init__.py @@ -24,6 +24,7 @@ from .security.security import security_page as security_page from .to_be_booked import to_be_booked as to_be_booked from .use_cases.finance import finance_use_case_page as finance_use_case_page +from .use_cases.government import government_use_case_page as government_use_case_page from .use_cases.healthcare import healthcare_use_case_page as healthcare_use_case_page from .use_cases.use_cases import use_cases_page as use_cases_page diff --git a/pcweb/pages/use_cases/government/__init__.py b/pcweb/pages/use_cases/government/__init__.py new file mode 100644 index 000000000..7377d12d3 --- /dev/null +++ b/pcweb/pages/use_cases/government/__init__.py @@ -0,0 +1,33 @@ +import reflex as rx + +from pcweb.meta.meta import meta_tags +from pcweb.pages.use_cases.government.views.faq import faq +from pcweb.pages.use_cases.government.views.features_1 import features_1 +from pcweb.pages.use_cases.government.views.features_2 import features_2 +from pcweb.pages.use_cases.government.views.final_section import final_section +from pcweb.pages.use_cases.government.views.hero import hero +from pcweb.pages.use_cases.government.views.social_proof import social_proof +from pcweb.pages.use_cases.government.views.stats import stats +from pcweb.pages.use_cases.government.views.text_section_1 import text_section_1 +from pcweb.pages.use_cases.government.views.text_section_2 import text_section_2 +from pcweb.pages.use_cases.government.views.text_section_3 import text_section_3 +from pcweb.templates.mainpage import mainpage + + +@mainpage( + path="/use-cases/government", title="Government Use Case - Reflex", meta=meta_tags +) +def government_use_case_page() -> rx.Component: + return rx.el.div( + hero(), + social_proof(), + text_section_1(), + features_1(), + text_section_2(), + features_2(), + text_section_3(), + stats(), + faq(), + final_section(), + class_name="flex flex-col size-full justify-center items-center max-w-[calc(100vw-2rem)] mx-auto", + ) diff --git a/pcweb/pages/use_cases/government/views/faq.py b/pcweb/pages/use_cases/government/views/faq.py new file mode 100644 index 000000000..c20212740 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/faq.py @@ -0,0 +1,30 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.faq import faq_section + + +def faq() -> rx.Component: + return faq_section( + [ + ( + "Is Reflex suitable for government use?", + "Yes. Reflex is already used by government agencies, public institutions, and national labs for real production systems.", + ), + ( + "Can Reflex run in restricted or air-gapped environments?", + "Yes. Reflex supports fully isolated deployments with no external internet access.", + ), + ( + "Do teams need frontend or cloud expertise?", + "No. Reflex abstracts frontend and deployment so teams can focus on Python and mission logic.", + ), + ( + "Can Reflex integrate with existing government systems?", + "Yes. Reflex runs in Python, making integration with internal databases, APIs, and legacy systems straightforward.", + ), + ( + "Can Reflex be used for AI and analytics?", + "Absolutely. Reflex supports AI assistants, analytics dashboards, and ML-powered tools — fully inside government infrastructure.", + ), + ] + ) diff --git a/pcweb/pages/use_cases/government/views/features_1.py b/pcweb/pages/use_cases/government/views/features_1.py new file mode 100644 index 000000000..e47d6147a --- /dev/null +++ b/pcweb/pages/use_cases/government/views/features_1.py @@ -0,0 +1,52 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.features_1 import feature_card + + +def features_1() -> rx.Component: + return rx.el.section( + feature_card( + "ArtificialIntelligence04Icon", + "AI App Builder for the Public Sector", + description="Build complete government applications from a prompt. Reflex AI generates Python logic, UIs, and secure data integrations — all fully editable and suitable for production use in public sector environments.", + items=[ + "Modernize legacy workflows without full rewrites", + "Turn policy ideas into real software fast", + "Support analysts, operators, and researchers with AI tools", + ], + ), + feature_card( + "ShieldEnergyIcon", + "Built for Secure, Controlled Environments", + description="Reflex is designed to run entirely inside government infrastructure, including VPCs, on-prem data centers, and air-gapped networks. Perfect for:", + items=[ + "Sensitive citizen data", + "Regulatory and compliance workflows", + "National security and research environments", + "Restricted or offline deployments", + ], + ), + feature_card( + "DashboardSpeed01Icon", + "10x Faster Than Traditional Government IT Projects", + description="Move from requirements → deployed app in weeks instead of years. Reflex removes frontend and infrastructure bottlenecks so small teams can ship meaningful systems quickly.", + items=[ + "No React", + "No fragile prototypes", + "No rebuilds after pilots", + ], + ), + feature_card( + "DatabaseIcon", + "Designed for Data-Heavy Government Work", + description="Reflex being in Pure Python makes it easy to integrate with existing public sector systems:", + items=[ + "Internal databases and data warehouses", + "Case management and registry systems", + "Geospatial and census datasets", + "Research, modeling, and simulation pipelines", + "Secure APIs and document repositories", + ], + ), + class_name="grid lg:grid-cols-2 grid-cols-1 mx-auto w-full max-w-[64.19rem] lg:border-l border-slate-3 relative overflow-hidden border-t", + ) diff --git a/pcweb/pages/use_cases/government/views/features_2.py b/pcweb/pages/use_cases/government/views/features_2.py new file mode 100644 index 000000000..2e4cf50d1 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/features_2.py @@ -0,0 +1,33 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.features_2 import feature_card + + +def features_2() -> rx.Component: + return rx.el.section( + feature_card( + "WebDesign01Icon", + "Internal Government Dashboards", + "Track & Monitor Programs", + "Build program performance dashboards, budgeting and spend oversight tools, policy impact analysis, and operations and service delivery tracking.", + ), + feature_card( + "ArtificialIntelligence04Icon", + "AI Assistants for Public Servants", + "Empower Your Teams", + "Create RAG chatbots over legislation and regulations, internal knowledge assistants, caseworker and analyst copilots, and research and document analysis tools.", + ), + feature_card( + "FlowConnectionIcon", + "Case, Permit & Workflow Systems", + "Streamline Operations", + "Develop case management tools, review and approval workflows, compliance and inspection apps, and grant and funding administration systems.", + ), + feature_card( + "TestTube02Icon", + "Research & National Lab Applications", + "Support Scientific Work", + "Build scientific data visualization, experiment tracking and analysis, secure model exploration tools, and internal research portals.", + ), + class_name="grid lg:grid-cols-4 grid-cols-1 mx-auto w-full max-w-[64.19rem] lg:border-x border-slate-3 relative overflow-hidden border-t lg:divide-x divide-slate-3 max-lg:divide-y lg:border-b", + ) diff --git a/pcweb/pages/use_cases/government/views/final_section.py b/pcweb/pages/use_cases/government/views/final_section.py new file mode 100644 index 000000000..ed0391969 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/final_section.py @@ -0,0 +1,20 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.final_section import left_content, right_content + + +def final_section() -> rx.Component: + return rx.el.section( + rx.el.div( + left_content( + "Modernize Government Software — Without Compromising Security", + "Turn policies, programs, and research into secure, AI-powered applications with Reflex.", + ), + right_content( + "Build Your First Government App", + "Connect your data source, and ship a secure internal tool in weeks — entirely within your infrastructure, no JavaScript required.", + ), + class_name="flex xl:flex-row flex-col w-full rounded-2xl border border-m-slate-4 dark:border-m-slate-12 bg-white-1 dark:bg-m-slate-14 z-5 xl:divide-x divide-slate-3 max-xl:divide-y", + ), + class_name="mx-auto w-full max-w-[71.125rem] relative rounded-4xl border border-slate-4 backdrop-blur-[6px] bg-slate-2/48 p-4 flex z-1 max-lg:mb-6 -mb-px", + ) diff --git a/pcweb/pages/use_cases/government/views/hero.py b/pcweb/pages/use_cases/government/views/hero.py new file mode 100644 index 000000000..c0513e026 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/hero.py @@ -0,0 +1,44 @@ +import reflex as rx + +from pcweb.components.numbers_pattern import numbers_pattern +from pcweb.pages.use_cases.common.hero import left_content, right_content + + +def hero() -> rx.Component: + return rx.el.section( + numbers_pattern( + side="right", + class_name="lg:top-[65px] top-[45px] lg:h-[calc(100%-65px)] h-[calc(100%-45px)] max-lg:hidden", + ), + rx.el.div( + left_content( + "Build Secure Government Apps —", + " 10x Faster with Reflex AI", + "The fastest way for government teams to build secure internal tools, dashboards, and AI-powered workflows using only Python. Designed for public sector constraints: security-first, auditable, and deployable entirely within government-controlled infrastructure.", + "Book a Demo", + "Get Started Free", + ), + right_content( + [ + ( + "ShieldEnergyIcon", + "Deploy entirely on-premises, in your VPC, or in air-gapped networks", + ), + ( + "DashboardSpeed01Icon", + "Build production-grade apps 10x faster using only Python", + ), + ( + "LockIcon", + "Maintain full security, compliance, and audit control at all times", + ), + ( + "DatabaseIcon", + "Keep all data within government-controlled infrastructure—nothing leaves your environment", + ), + ], + ), + class_name="flex lg:flex-row flex-col lg:gap-20 gap-10 max-lg:items-center max-lg:justify-center max-lg:text-center", + ), + class_name="flex flex-col justify-center items-center gap-4 mx-auto w-full max-w-[64.19rem] lg:border-x border-slate-3 pb-[3rem] pt-32 lg:pt-[11.5rem] lg:pb-[7.5rem] relative lg:overflow-hidden overflow-hidden z-[1] lg:px-10", + ) diff --git a/pcweb/pages/use_cases/government/views/quotes.py b/pcweb/pages/use_cases/government/views/quotes.py new file mode 100644 index 000000000..219ff1654 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/quotes.py @@ -0,0 +1,33 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.quote import quote_card + + +def quotes() -> rx.Component: + return rx.el.section( + quote_card( + "Replace brittle Tableau/Streamlit prototypes with production apps.", + "Go straight from idea to production, without the “prototype then rebuild” cycle", + "At the World Bank, teams were stuck jumping between Tableau dashboards, Streamlit prototypes, and custom JavaScript apps. With Reflex, they’re building production-grade data platforms from day one, including a chat-driven data app with AG Grid tables and an AI-powered legal assistant that lets 100+ lawyers and investigators query internal documents securely within the Bank's Azure environment.", + '"You wouldn’t want to use Dash or Streamlit to build a real production-grade app… We have them go straight into Reflex."', + "Data Developer, World Bank", + ), + quote_card( + "Ship fintech-grade SaaS without a front-end team.", + "From YC prototype to fintech SaaS—with no React, Dash, or front-end hires", + "Bayesline’s founders built a full fintech risk analytics platform on Reflex—wrapping AG Grid, handling hundreds of thousands of instruments, and delivering a UI indistinguishable from a hand-coded React app. Reflex gave them ~4x faster development vs learning React and about 50% less code than their previous Dash implementation, while keeping everything in Python and avoiding the need to hire a dedicated front-end engineer.", + '"Using Reflex instead of Plotly Dash was like the difference between organized Legos and a plate of spaghetti."', + "Sebastian, Founder, Bayesline", + ), + rx.el.div( + quote_card( + "Automate Analytics for Internal AI Tools.", + "Deploy Bank-Grade Internal Dashboards in Days, Not Months", + "At Crédit Agricole CIB, Léo's R&D team turned a rough prototype into a production-grade dashboard tracking usage of a GPT-powered internal chatbot. What used to require weeks of front-end work now ships in a couple of days, inside their internal AWS environment.", + '"It\'s like comparing a bike to a supercar. (Comparing Dash to Reflex)"', + "Léo, Tech Lead, R&D, Crédit Agricole CIB", + ), + class_name="lg:col-span-2 lg:justify-self-center w-full lg:max-w-[42rem]", + ), + class_name="grid lg:grid-cols-2 grid-cols-1 gap-4 mx-auto w-full max-w-[84.5rem] relative overflow-hidden", + ) diff --git a/pcweb/pages/use_cases/government/views/social_proof.py b/pcweb/pages/use_cases/government/views/social_proof.py new file mode 100644 index 000000000..9f6598767 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/social_proof.py @@ -0,0 +1,37 @@ +import reflex as rx +import reflex_ui as ui + +from pcweb.pages.use_cases.common.logos_carousel import logos_carousel + +LOGOS = [ + "scc", + "forem", + "saccounty", + "unglobalcompact", + "llnl", + "norfolk", +] + + +def first_card(title: str) -> rx.Component: + return rx.el.div( + ui.icon( + "CheckmarkBadge02Icon", + class_name="text-m-slate-11 dark:text-m-slate-9 shrink-0", + ), + rx.el.span( + title, + class_name="text-m-slate-11 dark:text-m-slate-9 text-sm font-medium text-wrap", + ), + class_name="flex flex-row gap-2.5 items-center max-lg:justify-center lg:col-span-2 px-10 h-full max-lg:h-[10.75rem] max-lg:w-full w-full lg:border-r", + ) + + +def social_proof() -> rx.Component: + return rx.el.div( + first_card( + "Government agencies use Reflex to modernize mission-critical systems faster—without compromising security or control." + ), + logos_carousel(LOGOS), + class_name="flex lg:flex-row flex-col justify-center items-center mx-auto w-full max-w-[64.19rem] lg:border border-slate-3 h-[10.75rem] z-1", + ) diff --git a/pcweb/pages/use_cases/government/views/stats.py b/pcweb/pages/use_cases/government/views/stats.py new file mode 100644 index 000000000..0ea9e8fd5 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/stats.py @@ -0,0 +1,39 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.stats import stat_card + + +def stats() -> rx.Component: + return rx.el.section( + stat_card( + "Deploy on-prem, VPC, or air-gapped", + "Run Reflex entirely within your controlled infrastructure with complete offline operation capabilities.", + accent=True, + ), + stat_card( + "No data leaves government infrastructure", + "All application data, user information, and processing remain within your secure environment at all times.", + accent=True, + ), + stat_card( + "Role-based access control & identity integration", + "Integrate with existing identity providers and enforce granular permissions with SSO and SAML support.", + accent=True, + ), + stat_card( + "Full auditability and observability", + "Complete audit logging of all user actions, data access, and system events for compliance and security reviews.", + accent=True, + ), + stat_card( + "FedRAMP and SOC 2-aligned", + "Architecture designed to meet federal security requirements and enterprise compliance standards.", + accent=True, + ), + stat_card( + "Compatible with public sector security models", + "Works with government-specific security and compliance requirements.", + accent=True, + ), + class_name="grid lg:grid-cols-3 grid-cols-1 mx-auto w-full max-w-[64.19rem] lg:border-x border-slate-3 relative overflow-hidden border-t lg:divide-x divide-slate-3 max-lg:divide-y", + ) diff --git a/pcweb/pages/use_cases/government/views/text_section_1.py b/pcweb/pages/use_cases/government/views/text_section_1.py new file mode 100644 index 000000000..32a9d0eb5 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/text_section_1.py @@ -0,0 +1,11 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.text_section import text_section + + +def text_section_1() -> rx.Component: + return text_section( + header="Why Government Teams Choose Reflex", + description="Reflex powers mission-critical internal applications used by public servants, analysts, and researchers. Government organizations choose Reflex to modernize systems faster — without compromising security or control.", + class_name="border-t-0", + ) diff --git a/pcweb/pages/use_cases/government/views/text_section_2.py b/pcweb/pages/use_cases/government/views/text_section_2.py new file mode 100644 index 000000000..0459d811f --- /dev/null +++ b/pcweb/pages/use_cases/government/views/text_section_2.py @@ -0,0 +1,11 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.text_section import text_section + + +def text_section_2() -> rx.Component: + return text_section( + header="What Governments Build with Reflex", + description="Public sector organizations use Reflex to create secure, purpose-built applications with AI.", + class_name="border-t-0", + ) diff --git a/pcweb/pages/use_cases/government/views/text_section_3.py b/pcweb/pages/use_cases/government/views/text_section_3.py new file mode 100644 index 000000000..e8225edd8 --- /dev/null +++ b/pcweb/pages/use_cases/government/views/text_section_3.py @@ -0,0 +1,11 @@ +import reflex as rx + +from pcweb.pages.use_cases.common.text_section import text_section + + +def text_section_3() -> rx.Component: + return text_section( + header="Built for Government Security & Compliance", + description="Reflex is purpose-built for regulated, high-assurance environments. Reflex does not access, transmit, or store government data. Agencies maintain full ownership and control at all times.", + class_name="border-t-0", + ) From 0894d5014cfa9ee671878d98e848d2b2097ef66c Mon Sep 17 00:00:00 2001 From: Carlos Date: Tue, 13 Jan 2026 18:16:55 +0100 Subject: [PATCH 2/3] remove --- .../use_cases/government/views/quotes.py | 33 ------------------- 1 file changed, 33 deletions(-) delete mode 100644 pcweb/pages/use_cases/government/views/quotes.py diff --git a/pcweb/pages/use_cases/government/views/quotes.py b/pcweb/pages/use_cases/government/views/quotes.py deleted file mode 100644 index 219ff1654..000000000 --- a/pcweb/pages/use_cases/government/views/quotes.py +++ /dev/null @@ -1,33 +0,0 @@ -import reflex as rx - -from pcweb.pages.use_cases.common.quote import quote_card - - -def quotes() -> rx.Component: - return rx.el.section( - quote_card( - "Replace brittle Tableau/Streamlit prototypes with production apps.", - "Go straight from idea to production, without the “prototype then rebuild” cycle", - "At the World Bank, teams were stuck jumping between Tableau dashboards, Streamlit prototypes, and custom JavaScript apps. With Reflex, they’re building production-grade data platforms from day one, including a chat-driven data app with AG Grid tables and an AI-powered legal assistant that lets 100+ lawyers and investigators query internal documents securely within the Bank's Azure environment.", - '"You wouldn’t want to use Dash or Streamlit to build a real production-grade app… We have them go straight into Reflex."', - "Data Developer, World Bank", - ), - quote_card( - "Ship fintech-grade SaaS without a front-end team.", - "From YC prototype to fintech SaaS—with no React, Dash, or front-end hires", - "Bayesline’s founders built a full fintech risk analytics platform on Reflex—wrapping AG Grid, handling hundreds of thousands of instruments, and delivering a UI indistinguishable from a hand-coded React app. Reflex gave them ~4x faster development vs learning React and about 50% less code than their previous Dash implementation, while keeping everything in Python and avoiding the need to hire a dedicated front-end engineer.", - '"Using Reflex instead of Plotly Dash was like the difference between organized Legos and a plate of spaghetti."', - "Sebastian, Founder, Bayesline", - ), - rx.el.div( - quote_card( - "Automate Analytics for Internal AI Tools.", - "Deploy Bank-Grade Internal Dashboards in Days, Not Months", - "At Crédit Agricole CIB, Léo's R&D team turned a rough prototype into a production-grade dashboard tracking usage of a GPT-powered internal chatbot. What used to require weeks of front-end work now ships in a couple of days, inside their internal AWS environment.", - '"It\'s like comparing a bike to a supercar. (Comparing Dash to Reflex)"', - "Léo, Tech Lead, R&D, Crédit Agricole CIB", - ), - class_name="lg:col-span-2 lg:justify-self-center w-full lg:max-w-[42rem]", - ), - class_name="grid lg:grid-cols-2 grid-cols-1 gap-4 mx-auto w-full max-w-[84.5rem] relative overflow-hidden", - ) From eec6e7459ae9ca9c39efdc7ee0cfa48561958814 Mon Sep 17 00:00:00 2001 From: Carlos Date: Wed, 14 Jan 2026 12:07:38 +0100 Subject: [PATCH 3/3] bullet points --- pcweb/pages/use_cases/common/features_2.py | 23 ++++++++++-- .../use_cases/government/views/features_2.py | 36 ++++++++++++++++--- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/pcweb/pages/use_cases/common/features_2.py b/pcweb/pages/use_cases/common/features_2.py index 8e4295b82..eec7fb72d 100644 --- a/pcweb/pages/use_cases/common/features_2.py +++ b/pcweb/pages/use_cases/common/features_2.py @@ -2,7 +2,14 @@ import reflex_ui as ui -def feature_card(icon: str, stat: str, title: str, description: str) -> rx.Component: +def feature_card( + icon: str, + stat: str, + title: str, + description: str, + items: list[str] | None = None, + class_name: str = "", +) -> rx.Component: return rx.el.div( ui.icon( icon, class_name="text-m-violet-9 dark:text-m-violet-10 shrink-0 size-5" @@ -16,5 +23,17 @@ def feature_card(icon: str, stat: str, title: str, description: str) -> rx.Compo description, class_name="text-m-slate-11 dark:text-m-slate-9 text-sm font-medium mt-2", ), - class_name="flex flex-col items-start p-10", + rx.el.ul( + *[ + rx.el.li( + item, + class_name="text-m-slate-11 dark:text-m-slate-9 text-sm font-medium mt-1", + ) + for item in items + ], + class_name="text-m-slate-11 dark:text-m-slate-9 text-sm font-medium list-disc list-inside mt-2", + ) + if items + else None, + class_name=ui.cn("flex flex-col items-start p-10", class_name), ) diff --git a/pcweb/pages/use_cases/government/views/features_2.py b/pcweb/pages/use_cases/government/views/features_2.py index 2e4cf50d1..c6f674731 100644 --- a/pcweb/pages/use_cases/government/views/features_2.py +++ b/pcweb/pages/use_cases/government/views/features_2.py @@ -9,25 +9,51 @@ def features_2() -> rx.Component: "WebDesign01Icon", "Internal Government Dashboards", "Track & Monitor Programs", - "Build program performance dashboards, budgeting and spend oversight tools, policy impact analysis, and operations and service delivery tracking.", + "Gain real-time visibility into program effectiveness, resource allocation, and service delivery with customizable dashboards.", + items=[ + "Program performance dashboards", + "Budgeting and spend oversight tools", + "Policy impact analysis", + "Operations and service delivery tracking", + ], + class_name="lg:border-b", ), feature_card( "ArtificialIntelligence04Icon", "AI Assistants for Public Servants", "Empower Your Teams", - "Create RAG chatbots over legislation and regulations, internal knowledge assistants, caseworker and analyst copilots, and research and document analysis tools.", + "Equip your workforce with AI-powered tools to navigate complex regulations and enhance decision-making.", + items=[ + "RAG chatbots over legislation and regulations", + "Internal knowledge assistants", + "Caseworker and analyst copilots", + "Research and document analysis tools", + ], + class_name="lg:border-b", ), feature_card( "FlowConnectionIcon", "Case, Permit & Workflow Systems", "Streamline Operations", - "Develop case management tools, review and approval workflows, compliance and inspection apps, and grant and funding administration systems.", + "Modernize administrative processes with tailored applications that reduce bottlenecks and improve transparency.", + items=[ + "Case management tools", + "Review and approval workflows", + "Compliance and inspection apps", + "Grant and funding administration systems", + ], ), feature_card( "TestTube02Icon", "Research & National Lab Applications", "Support Scientific Work", - "Build scientific data visualization, experiment tracking and analysis, secure model exploration tools, and internal research portals.", + "Accelerate scientific discovery with purpose-built tools for data analysis, collaboration, and secure research environments.", + items=[ + "Scientific data visualization", + "Experiment tracking and analysis", + "Secure model exploration tools", + "Internal research portals", + ], ), - class_name="grid lg:grid-cols-4 grid-cols-1 mx-auto w-full max-w-[64.19rem] lg:border-x border-slate-3 relative overflow-hidden border-t lg:divide-x divide-slate-3 max-lg:divide-y lg:border-b", + class_name="grid lg:grid-cols-2 grid-cols-1 mx-auto w-full max-w-[64.19rem] lg:border-x border-slate-3 relative overflow-hidden border-t lg:divide-x divide-slate-3 max-lg:divide-y lg:border-b", )