Web app hosting in any language.
Push your source and we build it, autoscale it, and keep it live with high availability on a European-built cloud. Reserved CPU and memory on every plan, and no server for you to manage.
CLI. CI. Or your AI agent.
Four ways in, one pipeline behind them. Whichever you pick, your source is built for you and live in about two minutes. No Dockerfile, no build config.
name: Deploy to velixir
on:
push:
branches: [main]
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
# One deploy at a time: a push that lands mid-deploy waits for the one before it.
concurrency:
group: velixir-deploy
cancel-in-progress: false
steps:
- uses: actions/checkout@v7
- name: Install the velixir CLI
shell: bash
run: |
curl -fsSL https://velixir.net/install.sh | sh
echo "$HOME/.velixir/bin" >> "$GITHUB_PATH"
- name: Deploy
env:
VELIXIR_API_KEY: ${{ secrets.VELIXIR_API_KEY }}
VELIXIR_APP_ID: ${{ vars.VELIXIR_APP_ID }}
run: |
if [ -z "$VELIXIR_API_KEY" ] || [ -z "$VELIXIR_APP_ID" ]; then
echo "::error::Add the VELIXIR_API_KEY secret and the VELIXIR_APP_ID variable under Settings > Secrets and variables > Actions."
exit 1
fi
velixir deploy --app "$VELIXIR_APP_ID"
# VELIXIR_API_KEY and VELIXIR_APP_ID are masked CI/CD variables
deploy:
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == "main"
script:
- curl -fsSL https://velixir.net/install.sh | sh
- export PATH="$HOME/.velixir/bin:$PATH"
- velixir deploy --app "$VELIXIR_APP_ID"
AI writes code faster
than anyone can review it.
Reading every line was never going to keep up with an agent, and slowing the agent down to match isn't the answer either. So the guardrails live in the platform: every release is proven against your real traffic before it goes live, and the whole app can go back to any moment if something still gets through.
Replay proves it
Your new release answers yesterday's real requests on a sealed copy of your app, side by side with what's live. New errors, changed responses and slower pages show up before a customer sees them, and your agent can read the report and fix them itself.
Rewind undoes it
Drag back to any moment and get your code, env vars, database, cache and files as they were, or only the parts you pick. Preview it on its own URL first. The original data is never overwritten, so even a rewind can be undone.
Everything your app needs. Nothing it doesn't.
The parts every production app ends up needing are built in, and run by us in the EU, so your time goes on the app itself.
Immutable releases
Your source becomes an image once, so scaling out is a pull, never a rebuild, and any earlier release is back in seconds. Need the data back too? Rewind brings back the whole app. Files that must outlive a release go on a persistent volume.
Protection at the edge
A switch per appPer-IP rate limits, a managed WAF on the OWASP Core Rule Set, and an under-attack mode that has every browser solve a proof of work. Each one is a switch, per app, live without a redeploy.
TLS and custom domains
Certificates are issued and renewed for you, on your velixir.run address and on every custom domain you add.
Autoscaling
Minimum and maximum instances per app, scaled on CPU with defaults that already work. Up when it's busy, back down when it isn't.
Managed compute
Capacity, patching and failover onto standby machines are ours, on velixir-run hardware in the EU.
Unmetered bandwidth
No egress fees and no per-GB meter, so a busy launch day never lands as a surprise on the bill. A soft fair-use guideline keeps one app from crowding out the rest.
Any language.
Built and run for you.
velixir isn't tied to one framework. Push your source and we build it into a container image, then run it with autoscaling and high availability. Node.js, Python, Go, Ruby, PHP, Java, Elixir, Rust, Deno, F#, and .NET are all first-class.
- Automatic builds from source, no Dockerfile
- Node.js, Python, Go, Ruby, PHP, Java, Elixir, Rust, Deno, F#, and .NET (Core 1.0 through .NET 10)
- Consistent, reproducible builds across deploys
- Lift-and-shift an existing app or start greenfield in any supported runtime
- Immutable image deploys, no rebuilds on scale-out
Your deploy failed.
Here's why, in English.
The worst part of a first deploy going wrong is not the error. It's not knowing which line of four hundred is the one that matters. Press Explain this on your logs and you get the cause in a sentence, the fix as steps, and the exact lines it read.
- It knows how velixir runs your app, so it catches the port and binding mistakes a generic assistant guesses at.
- It quotes the log lines behind every answer, so you can check the reasoning instead of trusting it.
- Runs on a European model, only when you press the button, and never sees your environment variable values.
A node goes dark. Your app doesn't.
Turn HA on and we keep warm standby replicas on separate worker nodes. Watch what happens when the primary stops answering.
Traffic flows through the primary cluster.
The edge receives the request on {slug}.velixir.run,
resolves the route, and forwards over a private encrypted tunnel to your primary cluster.
3× Business replicas serve traffic.
Pick the standby's plan and replica count separately from production, so insurance does not cost the same as the thing it insures.
One region.
In Europe. On purpose.
Every app, database, and cache runs in EU Central. Your data stays under European jurisdiction and never leaves the EU. It is not a setting you switch on, it is the only place we run.
Carbon negative by design
Our primary regions run on 100% renewable energy. The residual emissions we can't avoid? We offset them twice over with verified carbon removal credits, purchased daily, every kilogram on the public registry.
How we calculate it
Energy. We sum every active vCPU running on the platform (apps, managed Postgres, managed Valkey) and multiply by a conservative 8 W per vCPU and a PUE of 1.25. Our primary regions run on 100% renewable contracts; even so, we charge ourselves a residual 50 gCO2e per kWh to account for manufacturing, transmission losses, and embodied hardware emissions.
Offset. Each day at 02:00 UTC, we multiply yesterday's estimate by 2× and round up to the nearest kilogram. The order is placed against a portfolio of verified removal credits (biochar, reforestation with permanence guarantees, enhanced weathering), not avoidance offsets.
Audit. Every purchase generates a hosted certificate you can verify against the registry. View our latest ?
Start free. Pay for what runs.
Your first app sleeps when idle and wakes on the next request, so keeping it live costs nothing. No card to deploy. When you outgrow free, your first month is on us: €14.99 of credit when you add a payment method.
Web apps
Free
sleeps when idle · always-on from €3.49/mo
Managed Postgres
€4.95/mo
point-in-time recovery at every tier
Managed Valkey
€2.45/mo
Redis-compatible, fully managed
Hourly billing across all three products · trial credit deducted first · no lock-in.
Push your code.
velixir handles the rest.
Free to start, no card. Just your source, live in about two minutes.
€14.99 credit on payment-method add - covers a full month of Starter + Postgres Starter + Valkey Starter · No charge until spent or 30 days · velixir.run