Solve a problem
Start with the feature you need. Follow one workflow across the services it uses.
On this page
Source-backed MarkdownAdd 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.