The European hyposcaler
Fast, simple,
secure, sovereign.
Sketch your app on Friday, deploy it on Sunday.
Your first users arrive on Monday.
Build it in your head,
deploy it in one night
Every Drift app is composed from five foundational pillars.
Everything comes set up for you out of the box, so infrastructure disappears in the background and you can focus on your app or platform.
Select a view to explore the architecture
Your code, one flat file per function
Write a handler in the language you already know. Drift builds it, runs it and puts it behind a URL.
- FunctionsServerless compute in Go, Python, Node.js, Ruby, PHP and Rust with sub-second cold-starts.
- ElementsCompose Atomic functions into logical backends without worrying about orchestration or scaling.
- TriggersHTTP endpoints or asynchronous queue consumers declared straight on the function.
- SchedulesBuilt-in cron definitions directly in your Driftfile without separate scheduler servers.
- API keysPer-function API keys, checked inside your slice before your code runs.
Your data, already in the slice
Nothing to provision and nothing to connect to: every store is there the moment the slice is, and only your functions can reach it.
- NoSQLJSON document collections: lookups by key, single-field filters, unique fields and per-document expiry.
- SQLA per-slice SQLite database with transactions; your schema file is applied on every deploy, your seed on the first.
- BlobsEncrypted object storage for assets and user uploads organized by bucket.
- SecretsAES-256-GCM encrypted runtime secrets injected automatically into compute instances.
- QueuesReliable FIFO message queues capable of triggering atomic functions asynchronously.
- RealtimeIn-slice pub/sub distributing live events and messages across WebSocket clients.
Your site, on the same origin as your API
Your page calls /api and reaches your functions directly. There is no second origin, so there is no CORS to set up.
- Static hostingStatic sites and pre-rendered exports from any framework, served with a short revalidating cache; a deploy shows up within seconds.
- Auto TLS and domainsAutomatic Let's Encrypt certificates provisioned on the fly for custom domains.
- EnvironmentsA staging slice per environment, declared in the Driftfile.
Identity you own, not rent
Sign-in, tokens and encrypted storage, called from your own functions. There is no identity provider to sign up with.
One way in, and only the ways out you allow
Every slice gets its own URL and certificate. Traffic that leaves goes only where you said it could.
- Custom domainsOne European region, one URL per slice: custom domains verified by a TXT record, certificates issued on the fly.
- Site passwordPut a password in front of a staging site with one command.
- Slice linksLet one of your slices call another directly, inside Drift, without going over the internet.
- Egress allowlistingStrict egress filtering ensuring code only connects to approved external third-party APIs.
slice: permit-intake
labels:
client: "Gemeente Driftwijk"
env: production
atomic:
functions:
- route: submit
method: post
handler: PostSubmit
- route: decision
method: post
handler: PostDecision
auth: apikey
- route: notify # background queue consumer
method: queue
handler: QueueNotify
secrets: [ RESEND_API_KEY ]
backbone:
nosql:
- slot: submissions
- slot: audit-log
blobs:
- name: uploads
queues: [ validate, notify ]
canvas:
sites:
- ./canvas/public
- dir: ./canvas/reviewer
path: /reviewer
Snapshots can be sealed with your own passphrase, so not even Drift can open them.
Pick a developer experience to explore
package main
import drift "github.com/ondrift/cloud/sdk/go"
func GetMenu(req drift.Request) (int, string, any, map[string]string) {
menu, _ := drift.Backbone.Cache.Get("menu")
return 200, "OK", string(menu), nil
}
Local File Run
drift file run runs your whole project on the real Drift runtime on your machine, in Docker, with no account and no mocks.
Pre-Flight Schema Lint
Instant syntax & type validation against cached cloud schema before anything touches the network.
Deploys Skip What Didn't Change
Each function is fingerprinted, and only changed ones are rebuilt and shipped.
Logs and Metrics in Your Terminal
Follow a function's logs as they happen, check its requests, errors and latency, or watch it all live in the drift dashboard.
Stay in the zone from
the first command
Tools that get out of your way, simple commands and programming languages you already know.
European, full stop.
Drift is developed, maintained, and hosted in Europe. We comply with European laws and jurisdiction, and nothing else.
Select a topic to explore
Every compute instance, database and blob store runs in data centres in Germany and the Netherlands, on servers of netcup, a German hosting company. Your data does not leave the EU.
Drift owns no foreign subsidiary and answers to no foreign parent.
Every engineer, operator, and on-call responder is based on European soil. Incident response, change management, and access to production infrastructure never crosses EU borders.
Drift runs in one European region, on purpose. No multi-cloud routing and no US relay layer: your requests go straight to a server in Europe.
A published data processing agreement: who controls what, every sub-processor named, a 48-hour breach notice. Creating an account accepts it.
Your application's data never touches a US-owned server. Our own mail and certificates still do, and the page below lists exactly where.
Drift is a European company, built in the Netherlands and subject to EU law.
Drift is working towards ISO 27001 for itself. We are not independently audited yet, and this page says so until we are.
Source code, databases, blobs, secrets, environment variables, and function execution logs are all stored and processed exclusively on EU infrastructure. This is not configurable: it is the only mode.
Our transactional email (signup codes, password resets, login codes, invites) goes through Microsoft 365 in the EU; TLS certificates come from Let's Encrypt; the CLI is published on GitHub; DNS is at GoDaddy. None of them holds your application's data, and each is being replaced.
When one of these is replaced, it comes off this page and the change is dated in our public changelog.
Every data path in the platform is documented and accounted for. If it is not listed on this page, it does not exist. There are no shadow integrations, analytics pipelines, or third-party telemetry endpoints.
Stay because you want to,
not because leaving is hard.
No lock-in by design: export your project and run it anywhere, or self-host it freely.
tar.gz, not a proprietary container
Not a trial.
A whole slice, free.
Every primitive on this page is on the free tier: functions, databases, blob storage, queues and a website, on the same runtime as a paid slice. It arrives with placeholder names. Rename them into your app, and it stays free.
- No card. Nothing to fill in before you start.
- No expiry. The free slice has no end date.
- One per account. Five functions, 100 MB of data and a site.
$drift slice create my-app --free
Functions · 5 slots in 80 MB
Data · up to 100 MB
Site · 50 MB
5 secrets1 schedule50 realtime connections24 h of logs3 days of backups
Ship something this weekend.
- FriSketch it
- SatBuild it
- SunDeploy it
- MonUsers arrive
Start on the free slice tonight: no card, no end date, and your app runs in the EU.