Persistent, autoscaled machines

Pay for the CPU, RAM, and disk your machines use at any point in time.

Adolph Menzel, The Iron Rolling Mill, 1875. Public domain.
bare metal dev-01
0.26 / 64 vCPU load 0.01 0.01 0.01
avg $0.000000/s over the last 30s
$0.000000 your bill so far

Adolph Menzel, The Iron Rolling Mill, 1875. Public domain.

SDK

Idiomatic bindings for your language.

TypeScript Python Elixir Rust Wasm

Boot machines, run commands, and apply config from your own code. The TypeScript package also runs in the browser, so a web app can drive machines directly. Start with the docs.

bun add @indexable/sdk
# node 22+ and bun
# wasm build included: runs in the browser too

Pricing

An idle machine costs about 14 cents a day.

Metered each second on what the machine uses, not what it could. The pricing page has the full rate card.

14¢/day $0.00000162/s · metered each second on use

Underneath

Real bare metal.

Each machine is a VM on dedicated AMD EPYC hosts, with no cloud layer underneath. 25 Gbps public and 50 Gbps internal networking, IPv6 + IPv4.

ix-server-1
on main bare metal · 41d up
lscpu
Model name: AMD EPYC (Zen 5)
CPU(s): 64
Thread(s) per core: 2
L3 cache: 256 MiB

Declarative

The whole machine, declared.

The machine is code.
ix apply steps it from one declared state to the next, in place, data intact.

1// JavaScript syntax, Nix semantics.
2// `ix apply` converges the machine to this file.
3export default ({ index }) => ({
4 packages: [index.rustc, index.cargo, index.rg],
5 services: {
6 postgres: { enable: true },
7 redis: { enable: true },
8 },
9 modules: [import("./modules/web.ix")],
10});
1# generated from default.ix by `ix apply`; do not edit.
2{
3 inputs.index.url = "github:indexable-inc/index";
4 outputs = { index, ... }: {
5 nixosConfigurations.dev =
6 index.lib.fromIx ./default.ix;
7 };
8}