Free for one product. Connect your demo deployment, publish a link, and see how far each visitor gets.
No card required.When a visitor likes what they built, one click carries their records into the account they open in your product. Sample data stays behind. No empty trial, no starting over.
Visitors decide what to keep. Your apps move it; Trylane only carries sealed records.
All of this works today. Where something is in beta, it says so.
Before keeping, visitors see what comes with them and what stays behind with the sample data.
Your demo app encrypts the records with a key shared by your demo and production apps. Trylane never sees it.
Your production app redeems a one-use code within 24 hours and writes the records into the new account.
Your export function chooses which rows count as the visitor's work. Your production code decides how they land.
In a scenario where you've allowed keeping.
Their own records, listed before anything happens.
Your demo app seals the records and hands over a one-use code.
Production redeems the code within 24 hours. Their work is waiting.
Your code does the work, in your demo deployment. Trylane coordinates sessions and never holds your database credentials.
// Demo deployment
const { identity, grant } = await cookies.verify(
req.headers.cookie,
"workspace.keep",
);
const bundle = await exportResource(sql, grant, recipes, 1, {
isolation: "tenant",
});
const { code } = await demo.keep(
identity, bundle, process.env.TRANSFER_KEY!,
);
// POST `code` to your production signup