Managed Databases, Raff Apps, Functions, VPN & Peering
The largest release Raff has ever shipped. Three new products go live: Managed Databases, Raff Apps, and Raff Functions. Your private network now reaches everything you own: your office, your devices, and your other VPCs. And billing was reviewed end to end, so every charge, discount, and refund is exact.
Managed Databases: Now Available
AddedYou can now create production databases directly from the dashboard. Pick an engine, pick a size, and connect: Raff provisions the instances, watches them, fails them over, and backs them up. You operate your data, not your database servers.
Five engines to start
PostgreSQL, MySQL, Valkey, ClickHouse, and Kafka, each with version selection at creation. Every connection is TLS.
High availability when you want it
Any database can run with a standby and automatic failover: turn it on at creation or later with a single toggle. Your connection endpoint stays the same through a failover, so applications reconnect and carry on.
Scale without migration
Change to a bigger plan from the Scale tab. Storage never shrinks below what you already use, your data stays put, and your connection details do not change.
Backups you can actually restore
Every database is backed up automatically. Restore into a fresh database on any engine, and PostgreSQL can also restore in place. Restores are real databases, not read-only exports.
A data console in the browser
Open any database and query it right there: a SQL shell and schema browser with autocomplete for PostgreSQL and MySQL, a command console with a key browser for Valkey. The console runs over the management channel as a restricted user with statement timeouts, so nothing new is exposed on the network and a stray query cannot take your database down.
Credentials, metrics, slow queries
Reveal, copy, or rotate the password from the Connect tab; rotation applies immediately. Metrics are engine-aware: slow queries with call statistics on PostgreSQL, a slow-command log on Valkey.
Private by default
Databases attach to your VPC and are unreachable from the internet until you say otherwise. Public access is a per-database allowlist of source IP ranges; an empty list means closed.
Managed Databases are dashboard and API first. CLI and Terraform support follows once the endpoints settle, the same way Kubernetes rolled out in 1.5.
Raff Apps: From Code to Running Service
AddedYou bring the code, in whatever form you have it. Raff builds it, deploys it, routes traffic to it, and keeps it alive. No cluster to run, no server to patch.
Six ways in
Deploy from a container image, a one-click template, a Dockerfile, a docker-compose file, an uploaded source folder, or straight from GitHub: push to your branch and the deploy starts. Compose files are parsed into services you review before anything is created.
Builds without a pipeline
Uploaded and GitHub sources are built with Cloud Native Buildpacks: the language is detected and the image produced for you. If there is a Dockerfile, it wins. Build logs stream live, and every deployment keeps its commit and build output.
Scaling that matches how apps live
Run a fixed number of instances, autoscale on load, or scale to zero while idle and pay nothing for the quiet hours. Pausing a service keeps its configuration and domains for when you come back.
Deployments with an undo
The full deployment history stays on the service, and rollback is one click. Environment variables and secrets are managed per service; changing them produces a new deployment, so configuration changes are as traceable as code changes.
Your domain, our certificates
CNAME your domain to the service endpoint and TLS is issued and renewed automatically.
Bindings instead of connection strings
Attach a managed database or a storage bucket to a service and Raff mints scoped credentials, injects them as environment variables, and redeploys. Remove the binding and the credentials are revoked. No secrets in your repository.
When you need to look inside
Live runtime logs, CPU and memory metrics, scheduled jobs with per-run history, and an interactive shell into any running instance, straight from the dashboard.
A spending cap on the whole thing
Set an account-wide monthly cap for app spend; Raff stops before crossing it.
Raff Apps ships with its full public surface on day one: REST API, raff CLI commands, and a Terraform resource for the complete lifecycle.
Raff Functions: Code That Runs on Demand
AddedWrite a function, deploy it, and it scales from zero for every request. You are billed for execution time and nothing else. No idle cost, and, with the default spending cap, no surprise bill.
The code lives in the browser
Opening a function opens its code: file tree, tabs, syntax highlighting, deploy from the editor. Edits are kept as a local draft until you deploy, and a draft from an older revision is never silently applied over newer code. Deploy stays the only publish action.
Start from anywhere, including Lambda
Templates, a zip upload, GitHub, or a one-click import of an existing AWS Lambda function; the importer converts it and shows you the diff before anything runs.
Triggers that behave in production like in testing
Functions fire over HTTPS, on cron schedules, or on object-storage events. The invoke console sends the exact payload and headers each trigger delivers for real, so a handler that works in the console provably works when the trigger fires.
Logs by request, not by guesswork
Every invocation is a request record: method, status, duration, request id, with your function's own output attached. Click a request to see only that invocation. The default window is 24 hours.
Metrics that count everything
Invocations, errors, and p50/p95 latency are computed from per-request records, so a burst that starts and finishes within seconds is counted exactly, not sampled away.
The same bindings as Apps
Databases and buckets attach to functions with scoped, injected credentials over the private network.
Free allowance, capped spend
Usage under the monthly free allowance costs nothing. Spending caps are on by default: a warning at 80%, an email if the cap is hit, and execution pauses at the cap unless you switch to notify-only.
Private Networking: VPN, Site-to-Site & Peering
AddedYour VPC stops being an island. It now connects to your laptop, your office, and your other VPCs, all self-service from the VPC page.
VPN Gateway
A WireGuard endpoint on your VPC with up to five device peers. Every peer gets a generated config: scan the QR code in the WireGuard app or download the .conf file. Configs are read on demand and never stored.
Site-to-Site VPN
Persistent tunnels between your VPC and a whole remote network, in two flavors: WireGuard, or IPsec with IKEv2 and a pre-shared key, which is what standard office firewalls and routers speak. You provide the remote endpoint and subnets; we handle the routing on the VPC side, including after reboots. This is already carrying production traffic between customer offices and their VPCs.
VPC Peering
Two of your VPCs route privately to each other: the gateways exchange routes directly, there is no NAT on the peer path, nothing is installed on your VMs, and the traffic never leaves the platform network.
The networking map
The networking section now draws your whole topology as an interactive graph: VMs, Kubernetes clusters, database endpoints, and the apps and functions bound to them, with per-VPC and per-type filters. Filtered views live in the URL, so the view you are looking at is the view you can share.
Billing, Audited End to End
FixedWe reviewed every path your money takes: checkout, renewal, resize, refund, and every discount in between. Everything below is live.
Discount math is exact
The checkout preview, the charge, the renewal, and any refund now compute from the same basis. Coupons apply to the product you redeemed them on, and attached volumes and Windows licenses get their discount at checkout, not just at renewal.
Every delete refunds pro-rata
Deleting any subscription product credits your unused time to the hour: VMs, databases, apps, VPNs, all of them.
Invoices name real things
Line items now carry product names, coupon codes, and clear balance and credit lines instead of internal identifiers.