Product

# Everything the platform does

80 features: what each one does, the plan that carries it, and the command that drives it. Everything on this list is in production today.

[Deploy and build](#deploy-and-build) [Runtime](#runtime) [Domains and TLS](#domains-and-tls) [Observability](#observability) [Organisations and access](#organisations-and-access) [Configuration and secrets](#configuration-and-secrets) [Billing and usage](#billing-and-usage) [Sovereignty and data](#sovereignty-and-data) [CLI and agents](#cli-and-agents)

## Deploy and build

From a git push or a local folder to a running application.

| Feature | Plans | Command |
| --- | --- | --- |
| Push to deploy Push to your branch and Tensel builds that exact commit and rolls it out. | All plans |  |
| Every environment on the branch deploys One push deploys every environment bound to that branch, not just the first one. | All plans |  |
| Repository import One command or one click creates the project, the application, the environment and the first deployment. | All plans | `tensel github import` |
| Deploy a folder, no git required Drop a folder in the browser or point the CLI at a directory; it is packed, uploaded and deployed. | All plans | `tensel import` |
| Framework detection The builder, runtime kind, build command and output directory are read from the repository. | All plans |  |
| Dockerfile builds A Dockerfile wins when present; your image is built as written. | All plans |  |
| Builds without a Dockerfile Node frameworks are detected directly; Go, Python, Rust, PHP, Java and Ruby build from their marker files. | All plans |  |
| Toolchain read from the repo.nvmrc, engines and packageManager decide the Node version and package manager, not a platform default. | All plans |  |
| Overridable build settings Override the builder, root directory, commands, output directory or Node version; what the engine resolved stays visible next to your override. | All plans | `tensel builds set` |
| Monorepo root picker Browse the repository tree and pick the directory an environment builds from. | All plans | `tensel source tree` |
| Isolated builds Every build runs in a disposable virtual machine, destroyed after use, with no access to platform networks. | All plans |  |
| Zero-downtime rollout A new version replaces the old one only once it answers healthy; a failed deploy never takes the site down. | All plans |  |
| Rollback to any revision Every revision is an immutable image; roll back to the exact state of any earlier deployment in one command. | All plans | `tensel deployments rollback` |
| Cancel in-flight deployments A queued or building deployment can be cancelled before it lands. | All plans | `tensel deployments cancel` |
| Builds survive platform releases When Tensel itself deploys, your in-flight build resumes instead of failing. | All plans |  |
| GitHub Checks The deployment result reports back on the commit as a check, next to your CI. | All plans |  |
| Auto-deploy pause Pause an environment and pushes stop deploying it; every ignored push says why it was ignored. | All plans |  |

## Runtime

Serverless containers and a static edge, in Paris.

| Feature | Plans | Command |
| --- | --- | --- |
| Serverless containers Each environment runs in its own container in Paris, never a shared process between customers. | All plans |  |
| Scale to zero An idle application sleeps and costs nothing to run; the first request wakes it in one to three seconds. | All plans |  |
| Always-on Keep one instance resident so no request ever waits for a cold start. | Personal and up | `tensel envs always-on` |
| Automatic sizing Every environment starts small and is stepped up under sustained memory pressure; pin a size or leave it automatic. | All plans | `tensel envs size` |
| Scale-out under load Replicas are added when concurrent requests climb, within the size's envelope. | All plans |  |
| Static sites without a container Static frameworks are detected and served from a shared always-on edge. No cold start, and no bill. | All plans |  |
| Static sites answer agents in Markdown Ship a Markdown copy of a page beside it and the edge serves that to clients asking for Markdown, and the HTML to everyone else. Nothing to switch on. | All plans |  |
| European CDN for static sites Static delivery from European points of presence, EU-routed by default; global routing is a per-environment opt-in with a disclosure. | All plans |  |
| Isolated environments Each environment has its own branch, configuration, secrets, hostname and logs; production cannot be deleted by accident. | All plans | `tensel envs create` |

## Domains and TLS

Hostnames from the first deploy, certificates never on the bill.

| Feature | Plans | Command |
| --- | --- | --- |
| A tensel.cloud hostname from day one Every environment gets a stable subdomain on its first successful deploy, and keeps it across renames. | All plans |  |
| Custom domains Point your DNS at Tensel and the domain serves your environment. | Personal and up | `tensel domains add` |
| Automatic TLS, free Certificates are provisioned and renewed for you; there is no certificate line on any invoice. | All plans |  |
| Apex domains Bare domains work, not only www: the apex is detected and served via ALIAS. | Personal and up |  |
| A stable edge CNAME Your DNS points at a Tensel-owned name, so infrastructure moves behind it never touch your zone. | Personal and up |  |
| DNS re-check on demand Check now instead of waiting out the backoff when you have just fixed a record. | Personal and up | `tensel domains recheck` |

## Observability

What the platform saw, without an agent to install.

| Feature | Plans | Command |
| --- | --- | --- |
| Build logs, step by step Fetching source, building, publishing, going live. The same grouped log in the dashboard and the CLI. | All plans | `tensel deployments logs` |
| Live log streaming Logs stream as they happen; --follow resumes where it left off after a dropped connection and stops on its own when the deployment ends. | All plans | `tensel envs logs --follow` |
| Application logs per environment A running container's output belongs to its environment, not to whichever deployment happens to be live. | All plans |  |
| Runtime metrics Requests, CPU, memory and instance count, read on demand from the host. Tensel ingests nothing and retains nothing. | All plans | `tensel envs metrics` |
| Sleep shown as sleep A scaled-to-zero application renders as asleep, never as an outage. | All plans |  |
| Seven days of runtime logs, included Runtime logs are part of the platform, not a metered add-on; build logs are kept 30 days, and the live deployment's log for as long as it serves traffic. | All plans |  |

## Organisations and access

Teams, roles and an audit trail that survives deletion.

| Feature | Plans | Command |
| --- | --- | --- |
| Organisations, projects, applications, environments One hierarchy for everything; every resource has one obvious place. | All plans | `tensel overview` |
| Members and roles Owner, developer and viewer roles, checked as permissions on every action. | Starter and up | `tensel members` |
| Email invitations Invite by address, set the role, revoke or resend. The invitee needs nothing installed. | Starter and up | `tensel members invite` |
| Passwordless sign-in Magic link or passkey; Google and GitHub are optional. Identity runs on our own infrastructure, not an identity SaaS. | All plans |  |
| CLI sign-in without a password tensel login opens your browser and you approve the device there; nothing secret is typed in a terminal. | All plans | `tensel login` |
| API keys Named, revocable keys with last-use tracking, shown once at creation. | All plans |  |
| One year of audit log Sign-ins, role changes, secret writes and deployments, immutable, with names resolved even after the thing was deleted. | All plans | `tensel orgs audit` |
| Organisation export Everything about your organisation as JSON: secret names included, secret values never. | All plans | `tensel orgs export` |
| Deletion that cleans up Deleting an application tears down its runtime and DNS in the same transaction, after a recovery window. | All plans |  |

## Configuration and secrets

Variables with a scope, secrets nobody can read back.

| Feature | Plans | Command |
| --- | --- | --- |
| Environment variables with a scope Each variable is visible at build time, at runtime, or both. You choose, per variable. | All plans | `tensel config set` |
| Write-only secrets Set once, encrypted before they reach the database, injected at deploy. There is no way to read a value back. | All plans | `tensel secrets set` |
| dotenv import Import an existing .env in one command instead of retyping it. | All plans | `tensel config import` |
| Secrets never in logs Secret values are masked in the dashboard and absent from every log line the platform writes. | All plans |  |

## Billing and usage

Every euro of subscription is a euro of usage, and a limit you set.

| Feature | Plans | Command |
| --- | --- | --- |
| Subscription matched in usage You pay whichever is higher: the plan, or what you used. Never both. | Personal and up |  |
| Four meters, nothing else Runtime, builds, storage and transfer are metered; domains, TLS, logs and metrics consume nothing. | All plans |  |
| Static sites are never billed Static builds, storage and delivery consume none of your allowance, on every plan. | All plans |  |
| The free plan cannot bill you A free organisation's usage is measured, then written off. There is no path from the Free plan to an invoice. | All plans |  |
| A hard spend limit you set Default 2× your subscription, adjustable; warnings at 50, 75, 90 and 100 percent. | Personal and up | `tensel orgs set-spend-limit` |
| 24 hours of grace at the limit At 100 percent, new paid actions stop and running apps get a visible 24-hour grace. Usage during the grace is absorbed, not billed. | Personal and up |  |
| Usage by day and by project See which project spent what, day by day, against your allowance and your limit. | All plans | `tensel orgs usage --daily --by-project` |
| History at the prices of its time Closed periods are shown exactly as they were rated; a price change never alters a closed invoice. | All plans | `tensel orgs history` |
| Factur-X invoices Invoices are PDFs carrying the EU e-invoicing XML, ready for your accounting software. | Personal and up | `tensel orgs invoice` |
| Anniversary billing Your cycle starts the day you subscribed, not on calendar months. | Personal and up |  |
| European payments, EU VAT handled Payments run through Mollie (Amsterdam); VAT numbers are checked against VIES and the invoice is right for your country. | Personal and up |  |
| Cancel monthly No annual commitment; cancelling takes effect at the end of the period you paid for. | Personal and up | `tensel orgs cancel-plan` |

## Sovereignty and data

Where things run, who can reach them, and how you leave.

| Feature | Plans | Command |
| --- | --- | --- |
| A French company under EU law Tensel is operated by a company incorporated in France, subject to European Union jurisdiction. | All plans |  |
| Workloads and platform data in Paris Applications, builds, images, database, secrets, backups and logs are hosted in Scaleway's Paris region. | All plans |  |
| Every subprocessor documented The full register is public, and every subprocessor is European; the one optional US integration (GitHub) is disclosed as such. | All plans |  |
| GitHub is optional Deploy from a folder and no code ever touches a US service; enabling auto-deploy is your call, and disclosed. | All plans |  |
| EU-routed delivery by default The static CDN serves from European points of presence; routing beyond Europe is an explicit opt-in. | All plans |  |
| No trackers This site sets no analytics cookies and loads nothing from a third party. | All plans |  |
| Restore proven by drill Backups are restored for real on a schedule, and the last drill's time to verified data is published. | All plans |  |
| Leave in standard formats Configuration and data export as JSON, images are OCI images, cancellation is monthly. No proprietary format anywhere. | All plans | `tensel orgs export` |

## CLI and agents

The whole platform in the terminal, and skills your agent can use.

| Feature | Plans | Command |
| --- | --- | --- |
| Complete CLI Deploys, environments, domains, members, billing, audit: everything the dashboard does is a command. | All plans | `npm i -g @tensel/cli` |
| --json everywhere Every read command emits documented JSON; the prose output is for humans and may change, the JSON shape is the contract. | All plans | `tensel overview --json` |
| Human-readable references Commands accept org/project/application/environment references the way you would say them. | All plans |  |
| Eleven agent skills in the box The npm package ships skills for deploying, domains, logs, billing and more; one command installs them for your agent. | All plans | `tensel skills install` |
| Skills hold no credentials A skill drives the CLI and never calls the API itself; tensel login stays the only path a credential takes. | All plans |  |
| Skills that know the limits Each skill states what the platform cannot do, so an agent asks you instead of inventing a workaround. | All plans |  |
| CI-ready A revocable API key via TENSEL_TOKEN, and --api-url to point anywhere a Tensel runs. Your session token never leaves your machine. | All plans |  |
| Destructive commands ask first Deletions prompt for confirmation; --yes exists for scripts that mean it. | All plans |  |
| Dashboard in French and English The web dashboard ships both languages, chosen on the device. | All plans |  |

## Tensel does not (yet)

The gaps, on the same page as the features. Each one is a decision we can explain.

- No managed database, connect your own
- No persistent volumes: stateless applications only
- No background workers or scheduled jobs
- One region: Paris. A choice, not an omission.

[Create an account](https://app.tensel.eu/signup) [See pricing](https://tensel.eu/pricing)

---

Source: https://tensel.eu/product
Site overview for agents: https://tensel.eu/llms.txt
