Spindle DocsStart a trial

Pricing

Priced per seat, not per run

You should not be charged for running your jobs more carefully. Plans are priced on the size of the team that maintains the workflows; run volume only matters where it affects what we store.

Solo
€0 / month
One maintainer, a handful of jobs. Free permanently, not a trial that expires.
  • 1 seat, 1 project
  • 10 workflows, 2 agents
  • 7 days of logs, 90 days of history
  • 5 minute minimum interval
  • Email and webhook alerts
  • Community support
Team
€24 / seat / month
The usual choice. A platform or data team that owns the nightly runs for everybody else.
  • Unlimited projects
  • 150 workflows, 25 agents
  • 30 days of logs, 1 year of history
  • 1 minute minimum interval
  • Slack, PagerDuty and Opsgenie alerts
  • Audit log, project roles
  • Support within one business day
Scale
€19 / seat / month
From 25 seats, billed annually. Everything in Team, plus the things a larger organisation needs on paper.
  • SAML or OIDC single sign-on
  • Directory groups mapped to roles
  • 180 days of logs, 3 years of history
  • 15 second minimum interval
  • Negotiated concurrency
  • 99.95% availability commitment
  • Named contact, 4-hour response
Self-hosted
€7,900 / year
The control plane in your own infrastructure, for environments where run metadata may not leave the building.
  • Container images and a Helm chart
  • PostgreSQL 15 or newer, your instance
  • Unlimited seats, workflows and agents
  • Retention limited only by your storage
  • Upgrades on your schedule
  • Installation review included

What counts as a seat

A seat is a person who can change a workflow definition or trigger a run — the maintainer, operator and owner roles. Viewers are free and unlimited, so giving the whole engineering team read access to run history costs nothing.

Service accounts and API tokens are not seats. Agents are not seats. You are billed on the highest seat count reached during a month, prorated from the day a seat was added.

Annual billing

Paying for twelve months up front takes two months off: Team is €240 per seat per year instead of €288. Scale is annual only. Invoices are issued in euros by Spindle B.V. from the Netherlands; VAT is applied or reverse-charged depending on where your business is registered.

Changing plans

  • Upgrading takes effect immediately and is prorated.
  • Downgrading takes effect at the end of the billing period, so you do not lose retention you have already paid for.
  • Cancelling leaves the account readable for 30 days — you can still export run history and workflow definitions.
  • Workflow definitions live in your repository, so there is nothing to extract from us if you leave.

Trial terms

14 days of Team, no payment details, no automatic conversion. At the end the account drops to Solo and keeps working — workflows above the Solo limit are disabled rather than deleted, and re-enable themselves if you subscribe later.

One trial per organisation. We do not shorten it and we do not extend it.

Payment

SEPA direct debit, bank transfer, or card. Annual invoices are net 30. Monthly card payments are charged on the anniversary of signup. No setup fee, no minimum term on monthly plans.

Discounts

Registered non-profits and accredited educational institutions get Team at half price on request. Open-source projects can have Team free for their public infrastructure — write to us from a project address.

No per-run charge, ever. We have turned this down twice in planning and will keep turning it down: a price per run punishes exactly the behaviour the product exists to encourage — splitting a job into small, retryable steps.

Questions we get asked before signing

Do you store our data?

We store workflow definitions, run metadata, step logs and artifacts you write to $SPINDLE_OUT. Credentials stay on your agents. Payloads your steps process never pass through us at all.

Where is it hosted?

Frankfurt and Amsterdam, with a cold standby in Helsinki. All three are EU jurisdictions and all three are listed in the data processing agreement.

Can we start self-hosted later?

Yes. Definitions are files in your repository; run history exports as JSON and imports into a self-hosted installation. We have done this migration with four customers and it takes an afternoon.

What happens if you go out of business?

Scale and Self-hosted contracts include a source escrow clause with a third-party agent in Rotterdam, releasable on insolvency or on 90 days of unremedied service failure.

Is there a free tier for a side project?

Solo is it, and it is not time-limited. Ten workflows and two agents cover a personal server comfortably.

Do you support on-call rotations?

We do not own your rotation — we hand alerts to the tool that does. Spindle sends to PagerDuty or Opsgenie with the run id and failing step in the payload.