ignitionstack.pro v1.0 is out! Read the announcement →
Skip to Content

Pricing Strategy

The marketing site renders pricing from src/app/components/landing-page/pricing.tsx, which reads localized copy from src/i18n/messages/{locale}.json (Boilerplate.Pricing). This guide explains the baseline USD prices defined today and how to derive equivalent values in Brazilian Reais (BRL) and Mexican Pesos (MXN) for campaigns or localized landing pages.

Current USD Price Points

TierUSD (one-time)Value proposition
StarterUS$ 997Core Next.js + Supabase stack, auth, landing page components, dark/light mode.
ProUS$ 1,997Everything from Starter plus Stripe billing, admin dashboards, blog/store modules, analytics, email templates, 50+ premium components.
DiamondUS$ 2,997Full suite adding AI chat (OpenAI/Gemini/Ollama), Resend emails, realtime notifications, advanced analytics, recommendations, lifetime updates, setup call.

The values above are stored verbatim in the English locale file:

{ "Boilerplate": { "Pricing": { "tiers": { "starter": { "price": "$997" }, "pro": { "price": "$1,997" }, "diamond": { "price": "$2,997" } } } } }

Local Currency References

Assumptions: 1 USD ≈ R5.00(BrazilianReal)and1USDMX 5.00** (Brazilian Real) and 1 USD ≈ **MX 17.00 (Mexican Peso). Adjust the rates if the market changes.

TierUSDBRL (≈ ×5)MXN (≈ ×17)
Starter997**R4.990(roundtoR 4.990** (round to R 4.990,00)MX$ 16,950
Pro1,997**R9.985(roundtoR 9.985** (round to R 9.990,00)MX$ 33,950
Diamond2,997**R14.985(roundtoR 14.985** (round to R 14.990,00)MX$ 50,950

Recommendations

  1. Keep USD as the billing currency inside Stripe to avoid exchange-rate drift. Display BRL/MXN equivalents as informational text (e.g., “≈ R$ 14.990,00”).
  2. When localizing the site to pt or es, duplicate the tier entries in src/i18n/messages/pt.json and es.json, updating only the price/priceNote strings. The purchasing logic still references Stripe Price IDs (USD) through the admin interface.

Updating Pricing Copy

  1. Edit the locale file (e.g., src/i18n/messages/pt.json):
    "Boilerplate": { "Pricing": { "tiers": { "diamond": { "price": "R$ 14.990", "priceNote": "≈ US$ 2.997 (one-time)" } } } }
  2. Rebuild with npm run dev or npm run build to propagate translations.
  3. If you also sell in MXN via Stripe, create dedicated Prices and update the checkout route to select the correct priceId based on locale.

Mapping to Stripe

Stripe sessions are created in src/app/api/stripe/create-checkout/route.ts. For a multi-currency strategy:

  1. Define new Price IDs in Stripe (USD, BRL, MXN) per tier.
  2. Add locale-aware metadata when calling the API:
    const priceId = choosePriceId({ tier, currency: locale === 'pt' ? 'BRL' : locale === 'es' ? 'MXN' : 'USD' });
  3. Expose the mapping via PricingClient so the UI knows which tier/price combination was selected.

Communicating Value

Consider bundling services (e.g., “Implementation Sprint” or “Custom branding”) as add-ons priced in BRL/MXN to increase ARPU in LATAM markets.

Next Steps