Email, payments, uploads & jobs

Beyond reading and writing data, the apps you build can do the things a real product needs — send email, take payments, accept file uploads, and run scheduled jobs. Each is a backend operation the agent wires for you; you just supply the provider key as an environment variable at deploy. Ask in plain language ("email me when someone submits the form", "add a Buy button for this plan", "let users upload a photo", "send a daily summary") and the builder sets it up.

All of these run on your app's own backend with your own provider accounts — secrets are environment variables, never baked into the export or shown in chat.

Email

Send transactional email (confirmations, welcome notes, notifications) via Resend. The agent defines a send operation with your verified sender; a Form or button triggers it with the recipient + content. Set LIKEABLE_RESEND_KEY at deploy. Works on Node, Cloudflare, Harper, and Vercel.

Payments

Charge your customers with Stripe Checkout. The agent defines a checkout operation (your success/cancel URLs + a Stripe Price) and places a Buy button; clicking it redirects the customer to Stripe's hosted card form — no card data touches your app. Set LIKEABLE_STRIPE_KEY at deploy.

Confirm payments server-side (webhooks). Add a webhook operation and point your Stripe webhook at /api/op/<name>. Each event's signature is verified (set LIKEABLE_STRIPE_WEBHOOK_SECRET) and recorded to a stripe_events table, so a forged request can't fake a payment. React to it with a dashboard or a scheduled job that processes new paid sessions. Verified on Cloudflare, Harper, and Node hosts that expose the raw request body (on Vercel, disable the route's body parser).

File uploads

Let users upload files (images, PDFs, …) straight to your S3 / Cloudflare R2 bucket via a presigned URL — the file never passes through your server, so there's no size limit. Drop in a FileUpload brick; the uploaded file's public URL is written to a key you can bind an Image or Link to. Set the bucket env vars (LIKEABLE_S3_ENDPOINT, …_REGION, …_BUCKET, …_KEY_ID, …_SECRET, and optionally …_PUBLIC_BASE) at deploy. The object key is generated server-side, so users can't choose paths or overwrite each other.

Scheduled jobs

Run a backend operation on a schedule — a daily digest, a nightly cleanup, a periodic sync. The agent attaches a cron expression to an operation. On a Cloudflare deploy these become Cron Triggers that fire the operation server-side (no user needed). 5-field cron (min hour day-of-month month day-of-week).

Next steps