Platform
Hosting & deploysPush to a branch, get a live linkDatabaseReal Postgres, one per appSign-inEmail and Google, users includedFile storageUploads, photos and documentsPaymentsCheckout and plans, same projectAI gatewayEvery model, with a hard spend cap
Solutions
Moving an app overFrom Lovable, Bolt, Replit or v0Your first real appNever shipped anything beforeSide project → businessWhen people start paying youPricing$20/month plus prepaid credits
Resources
DocsGuides written for people who are newFor AI agentsClaude Code, Cursor, MCP, JSON CLIChangelogWhat shipped, most recent firstComponentsPaste-ready UI for sign-in and moreSupportA person answers, not a queue botRefer a friendBoth of you get credits Start for $20
Open in ChatGPT Open in Claude Last updated 2026-09-24

Payments

Connect your Stripe account and take checkout payments from the same project as your users.

The moment someone offers you money is where most side projects stall — payments usually means a new dashboard, new keys and new webhooks. On Camplax it is part of the project: you connect your own Stripe account, and checkout sessions are created against it.

Connect your account

In the console, open Payments and choose Connect. Camplax hands you to Stripe's onboarding, where you tell Stripe who you are and where payouts go. The account is yours — charges, payouts and your customers' cards are on your Stripe account, not Camplax's.

You can refresh the connection state or disconnect entirely from the same page. Under the hood that is POST /v1/projects/<slug>/payments/connect (which returns a single-use onboarding URL), /refresh and /disconnect — all console-session calls.

Create a checkout

From your app's server, ask the project API to create a hosted checkout session:

POST /v1/projects/<slug>/payments/checkout
Authorization: Bearer <project key with payments:write>

{
  "currency": "usd",
  "lineItems": [{ "name": "Pro plan", "amountMinor": 900, "quantity": 1 }],
  "successUrl": "https://<slug>.camplax.app/welcome",
  "cancelUrl": "https://<slug>.camplax.app/pricing"
}

Amounts are in minor units — cents, not dollars. Line items take a name, amountMinor and optional quantity, up to 50 per checkout. successUrl and cancelUrl must be http(s) URLs Stripe can send the buyer back to, and clientReferenceId is an optional pointer back to your own user id.

The response is { "id", "url" } — a Stripe Checkout URL: hosted, PCI-handled, with cards, wallets and local methods. You link to it; you do not build the page.

GET /v1/projects/<slug>/payments/config with a payments:read key returns the publishable key and the connected account id — exactly what Stripe.js needs on your frontend, and deliberately non-secret.

Same project, same people

A paying customer is a signed-in user, so "is this person subscribed?" is a column you can query, not an API call to somewhere else. Pass the user's id as clientReferenceId on the checkout session and the payment lands attached to the right account.

What your app hears back

When a checkout completes, Camplax enqueues an order.paid event on your project webhooks with the session id, amount, currency and your clientReferenceId. A refund fires order.refunded. Stripe's own account events keep the connection state fresh in the console — including marking the account disconnected if it is ever deauthorized on Stripe's side.

Test and live

A project's test-mode flag decides whether Stripe runs live or test. It is read from the project row on every call — never from the request — which is what keeps preview and branch deploys off real money.

What it costs you

Your prices are yours, and Stripe's processing fees are between you and Stripe on your own account. Camplax takes a flat 2% platform fee on payments your app takes through checkout — it appears on your Stripe balance transactions as the application fee, not as a separate invoice.

Under the hood: Stripe Connect — onboarding, account status and Checkout Sessions on your connected account.

© 2026 Camplax $20 / month · credits stop at zero
Ask about Camplax