This round is the stuff you notice the day something goes wrong. Databases keep backups you can restore. An idle app can be paused so you are not paying for compute that is just sitting there. And sign-in is no longer only a password.

Database backups
MySQL and PostgreSQL now keep backups. A new database starts with a daily run at 03:00 UTC. If you are about to drop a table, Backup now takes one first.
From a finished backup you can download the dump, put the data back into the same database, or create a new database and leave the current one alone. Basic keeps the last 7. Standard keeps 14. A new successful backup replaces the oldest, and scheduled backups still run if the database is suspended.
The schedule slots and the daily manual cap are in Database backups.

Pausing an app
Web, worker, and private apps can be paused. Compute scales to zero and that part of the bill stops. The app stays: settings, domains, storage, and the linked database are still there. Storage and the database keep billing, because those did not go away.
Resume brings back the replica count you had. You need credits to do it. Buying credits does not wake a paused app on its own. Anyone hitting the hostname gets a paused page instead of a dead connection.
If you would rather not click it, the MCP has pause_application and resume_application.
Safer sign-in
A password was the whole login. It is not anymore. After the password we email a 6-digit code. If you do not want a password in the flow at all, there is a magic link. Both expire in 10 minutes.
The sign-in page was restyled along the way. GitHub and Google sign-in also work again after the session token expires.
Also this month
- Request logs sit next to build and runtime logs
- Spending for a period is split by service type
- You can set a picture on your account and on the team
- Deploy Agent is on a newer model