Step-by-step guide to configuring a SaaS app with Vite for the frontend, Clerk + Convex for auth/database, and Stripe for payments.
Note: You’ll need accounts with each service before proceeding. If you haven’t created these accounts yet, you’ll do so in the following steps.
pk_test_
for development)=
sign, not including the variable name or quotesImportant: The JWT template you select NEEDs to be Convex, as this is what the integration expects.
Note: Environment variables in Convex are not immediately active. They will take effect when your application is deployed, which Tempo will handle automatically.
sk_test_
)
.site
(e.g., )/payments/webhook
to the end of the URL
(e.g., )customer.subscription.created
customer.subscription.updated
customer.subscription.deleted
invoice.payment_succeeded
invoice.payment_failed
Tip: Create multiple products with different price points to test tiered subscription functionality in your application.
CLERK_SIGNING_KEY
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
STRIPE_PUBLISHABLE_KEY
Note: The build process typically takes 3-5 minutes to complete. Be patient while Tempo integrates all the services.
4242 4242 4242 4242
Tip: This step is particularly important if your application uses redirect URLs for authentication or payment flows.
CLERK_SIGNING_KEY
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
FRONTEND_URL
(if needed)/payments/webhook
)CLERK_SIGNING_KEY
in Convex matches the Issuer URL from Clerk