API & setup
$250.00demoN

Free-tier demoSample credits. No live fulfillment or automatic wallet credits.

From demo to production

A secure launch guide for Nexora. This app does not send live orders or maintain a real financial ledger.

Provider not connected

1. Connect a production data layer

Today Nexora saves account records in the built-in key-value store. A real managed relational database is a Pro feature. Upgrade to Pro, or connect your own Supabase project for free from the Database panel. Use row-level security and a server-only service credential for privileged operations.

2. Keep provider credentials in Secrets

Choose a provider and review its actual API documentation, service quality and platform compliance. Add its API key to backend Secrets, never to frontend code, customer input fields, browser storage or shared keys. No provider or credential is configured in this demo.

3. Implement a backend provider adapter

Create functions/providerOrder.ts and invoke it with window.genmb.fn.invoke. The function must authenticate ctx.user, validate a public link and quantity, load the server-owned service ID and rate, and contact the provider’s documented HTTPS endpoint with fetch. Use a fixed allowlisted host, not a URL supplied by the customer. Map the provider order ID back to an internal order record.

4. Make money and fulfillment authoritative

Verify Stripe sessions inside a function using billing.verifySession from the platform-generated genmb.ts helper. Match paid status, USD currency, intended amount, customer and payment-request metadata. A unique checkout session ID must prevent repeated wallet credits. Use transactional wallet debits and an idempotency key for orders; reconcile failed provider submissions and refunds on the server.

The live order pipeline

Signed-in customer
Server validation
Atomic wallet debit
Provider API
Verified status sync

Poll provider statuses from a scheduled backend job or validate signed provider webhooks. Never set “completed” from a browser timer. Enforce ownership for status reads, hide provider credentials, and keep an audit trail for every change.

What works in the free-tier demo?

Are demo orders real?

No. Every order is labeled demo. The catalog uses sample rates. New demo orders are saved privately after sign-in and remain queued until you cancel them; no live provider is contacted.

Does a payment request mean I have paid?

No. A saved request never charges a card. Optional Stripe checkout is a real payment, requires explicit consent and may be disabled by the owner’s plan. Paid receipts are verified against Stripe; no automatic wallet credits are granted.

Where is my account data saved?

Your signed-in account’s demo orders, tickets and payment requests are stored in GenMB’s built-in key-value store with server-enforced user scope. The current plan has no relational database. Pro managed database and free Supabase connection options are in the Database panel.

Who can use the admin area?

A server function checks the app owner or the owner-assigned admin role. Staff account mutations are separately enforced by the authentication service. Staff logins require a paid plan and can also be managed in the editor’s Users panel.

Are support tickets sent to a staff inbox?

Not in this demo. Tickets and follow-ups are private saved records, not messages sent to an operator. For live support, implement authorized customer and staff access with notifications before launch.

Back to your workspace
⚡Make an app like this, free