All Docs
FeaturesSaaS FactoryUpdated March 11, 2026

Self-Serve Pricing Page and Plan Upgrade Flow

Self-Serve Pricing Page and Plan Upgrade Flow

As of v1.0.124, the platform ships a fully self-serve pricing page and plan upgrade flow. Visitors can evaluate plan tiers, select a plan at sign-up, and existing users can upgrade without any human sales involvement.


Pricing Page

The pricing page is accessible from the main landing page and displays all available plan tiers.

Plan Tiers

PlanTarget UserBilling
FreeIndividuals exploring the platformNo charge
ProTeams shipping production productsMonthly / Annual via Stripe
EnterpriseOrganisations requiring advanced controlsMonthly / Annual via Stripe

Each plan card shows:

  • Monthly and/or annual price
  • Included credit allocation (sourced from the creditTransactions schema)
  • Feature entitlements specific to the plan tier
  • A primary CTA button to sign up or upgrade

Plan Selection at Sign-Up

When a new user visits src/app/sign-up, they are now presented with plan choices before completing account creation.

Flow:

  1. User arrives at the sign-up page.
  2. Plan options are displayed with pricing and entitlement summaries.
  3. User selects a plan.
  4. If a paid plan is selected, Stripe Checkout is initiated.
  5. On successful payment (or for Free plan, immediately), the user account is created with users.plan set to the chosen value.

In-App Upgrade Flow

Signed-in users on the Free or Pro tier can upgrade at any time from within the product.

Flow:

  1. User navigates to the billing or account settings section.
  2. Current plan and available upgrades are displayed.
  3. User selects a higher tier and confirms.
  4. Stripe handles payment; users.plan is updated on successful charge.
  5. New credit entitlements are applied immediately via the creditTransactions table.

Schema Reference

users.plan

Stores the active plan for each user account.

enum: 'free' | 'pro' | 'enterprise'

This value gates feature access throughout the application and is the source of truth for what the pricing UI displays as the user's current plan.

creditTransactions

Records credit allocations and consumption. The pricing page reads plan-level credit entitlements from this schema to display accurate limits on each plan card.

Stripe Integration

Stripe is used for all paid plan billing. Plan selection in both the sign-up flow and the in-app upgrade flow triggers Stripe Checkout or Stripe Billing Portal respectively. No manual invoicing or sales handoff occurs at any point.


Design Rationale

Prior to this release:

  • The landing page had no pricing section — visitors saw features and infrastructure detail but no plan tiers or costs.
  • The sign-up flow created user accounts without presenting plan options, defaulting every new account to free.
  • Conversion from visitor to paying customer required manual outreach.

This release aligns the main platform with the self-serve conversion model already present in the product template (template/src/app/pricing/page.tsx) and removes the human bottleneck from the sales path entirely.