Solve a problem

Start with the feature you need. Follow one workflow across the services it uses.

On this pageSource-backed Markdown

Add a private feature behind login

Start with the generated Notes app. Trace its cookie session, validate a request, query by the trusted owner and test foreign-account access. The API walkthrough uses the real generated route source and test; publication and the integrated starter trial are separate release checks.

Accept and serve a private file

Available as an installed-package lab. Use real Auth, Media and Storage through a small HTTP factory. Reject foreign reads, invalid uploads and oversized bodies, then delete both metadata and bytes. The matching test keeps all three services real.

Build a large export safely

Stream a CSV into a private staging path and replace the final export only after success. Trigger a source failure, preserve the previous file and recover. This bounded-memory lab is separate from an HTTP download/disconnect policy.

Inspect and replay a failed workflow

Save a two-block definition, inspect its durable result and repair invalid input. Compare replay against the saved definition snapshot with replay against the latest definition; a graph snapshot is not a snapshot of deployed block code.

Build a report and recover a failed job

Available as a pre-release package lab. Queue persists a report across App lifetimes, Storage supplies its input and output, and a SQL-backed worker retries, records failure and replays after repair. Repeated work replaces the same output. This is not exactly-once email delivery or a provider billing guarantee.

Keep workspace data separate

Available as a pre-release package lab. Create and edit notes without accepting ownership from request data. Covers App, ActiveRecord, field validation, scoped reads and transactions. It does not provide the authentication or membership layer.

Charge credits for AI usage

TODO. This recipe will combine a credit ledger, atomic allowance reservations, tracked AI requests and idempotent settlement. The important case is not just a successful charge: two concurrent requests must not spend the same balance, and a retry must not charge twice.

It will also cover failed provider attempts, partial/unknown costs, refunds and a provider success followed by a settlement failure. Provider cost and the customer’s credit charge are different values.

The starter has optional server-side text generation, but reusable accounting and allowance APIs are not available yet. You can use ActiveRecord and transactions today; this billing walkthrough will follow when those contracts are ready.

Upload a file and process it in the background

TODO: the integrated processing/progress recipe. Private uploads and durable queued reports already have separate working labs. The remaining recipe must connect them and explain what happens if upload, dispatch or processing fails independently, without inventing atomicity between files and SQL.

Send a scheduled report once

TODO. Combine Scheduler, Queue, Mail and ActiveRecord. Keep report history on an application model and use an explicit delivery identity. A queue retry does not by itself guarantee an email is sent once.