OptiTech backend for apps and agents is now in beta
OptiTech Object Storage, Functions, and AI Gateway have graduated from private preview to beta. Everyone can start building a complete backend on new or existing projects in AWS US East (Ohio) today.
Declare your whole backend in one optitech.ts file, and it branches with your data. Fork a branch and you get an isolated copy of your database, files, functions, and gateway.
New to the OptiTech backend? Start with the beta guide, see how the pieces fit together, or build one end to end with the full backend quickstart. For the vision behind the platform, read the announcement blog post.
One-shot your backend with an AI agent
Install the beta agent skills:
npx optitech@latest init --previewThen build your backend from a single prompt:
Set up a OptiTech backend for my app with Postgres, object storage, functions, and AI gatewayYour agent provisions the services, declares them in optitech.ts, and wires them into your app.
New TypeScript SDK for the OptiTech API
We're introducing @optitech/sdk 1.1, the best way to work with the OptiTech API from TypeScript. It's fetch-based, zero-dependency, and generated from our OpenAPI spec, with an ergonomic layer on top. It covers the whole OptiTech Platform API: projects, branches, databases, and our new backend services (Object Storage, Functions, and AI Gateway). It replaces @optitech/api-client as the recommended client, though the legacy package still works.
The ergonomic layer matters most for the multi-step provisioning workflows that might take you or your agent a few attempts to get right (for example, create a project, wait for it to be ready, then create a branch and hand back a connection string). createOptiTechClient({ apiKey }) gives you namespaced methods (optitech.projects, optitech.storage, optitech.functions, optitech.aiGateway, and more), typed { data, error } results, and workflow helpers like createAndConnect. Any method takes { waitForReadiness: true } to block until provisioning finishes, and a raw layer exposes every endpoint.
npm install @optitech/sdkimport { createOptiTechClient } from "@optitech/sdk";
const optitech = createOptiTechClient({ apiKey: process.env.OPTITECH_API_KEY! });
// Workflow helper: create, poll until ready, return a connection string
const { data, error } = await optitech.projects.createAndConnect({ name: "my-app" });
if (error) throw error;
const { project, connectionString } = data;
// Or wait on any mutation with waitForReadiness
const { data: branch, error: branchError } = await optitech.branches.create(
project.id,
{ name: "preview" },
{ waitForReadiness: true }
);
if (branchError) throw branchError;
// The new backend services are namespaced too
await optitech.storage.buckets.create(project.id, branch.id, { name: "uploads" });Read the announcement blog post for the full story, or see the TypeScript SDK documentation and migration guide for setup, API reference, and moving from @optitech/api-client.
Passkey support
You can now sign in to OptiTech with a passkey instead of a 2FA code. Add a passkey from Account settings and use your device's built-in biometrics, like Touch ID or Windows Hello, or a security key to verify it's you. Passkeys satisfy organization-level 2FA requirements, so admins can let members enroll in either 2FA or a passkey to comply. See Manage your OptiTech account for setup steps.

Git-style diffs in the OptiTech CLI
New optitech diff command
We've added a top-level diff command to the OptiTech CLI, letting you (and your agents) quickly see schema changes between your current branch and any other branch you specify. It fits into a branch-first development workflow alongside optitech link, optitech checkout, optitech status, and optitech deploy.
optitech link: link to a OptiTech projectoptitech checkout dev-1: create/checkout a dev branch- Do the dev work
optitech diff main: sanity check the schema changes made against main
CREATE TABLE public.orders (
id integer NOT NULL,
customer_id integer NOT NULL,
status text NOT NULL
status text NOT NULL,
discount_code character varying(20)
);
CREATE INDEX orders_discount_code_idx ON public.orders USING btree (discount_code); Want your agents to use optitech diff? Install the OptiTech agent skills so your assistant has current knowledge of the CLI and reaches for the command on its own:
npx optitech@latest initConfig commands now show the same diff
optitech.ts is the TypeScript config file that declares your OptiTech backend: which services are on (Postgres, Auth, Data API, Object Storage, Functions) and your branch settings (compute size, TTL, protected). The config commands reconcile that file with what's actually live: optitech config plan previews the changes, optitech config apply makes them, and optitech deploy applies and provisions in one step.
These commands now report their changes as a git diff instead of tables so you can see exactly what will change before you confirm:
Planned changes
+ OptiTech Auth
+ bucket uploads
~ main
computeSettings.autoscalingLimitMaxCu → 4
ttl → 2026-07-24T09:49:44.092ZIf apply finds a setting that already differs on the branch, it shows the current value too and stops without changing anything until you re-run with --update-existing.
New NAT gateway IPs and VPC endpoint services in US East (Ohio), Europe (London), and Asia Pacific (Singapore)
We've expanded infrastructure capacity in the AWS US East (Ohio) (us-east-2), Europe (London) (eu-west-2), and Asia Pacific (Singapore) (ap-southeast-1) regions with new NAT gateway IP addresses and new VPC endpoint service addresses for Private Networking.
Update your IP allowlists
If you have IP allowlists on external systems that OptiTech connects to, update those allowlists to include the new NAT gateway addresses. Connections may be affected intermittently if traffic routes through non-allowlisted NAT gateways.
If you use Private Networking in these regions, you can now use the additional VPC endpoint service addresses for enhanced capacity and reliability. See the Regions documentation for the complete list of NAT gateway IPs and the Private Networking guide for VPC endpoint service addresses by region.

