The phrase "open source alternative to AWS" covers a lot of ground. It can mean a dev-time emulator, a managed service that runs on someone else's hardware, or software you install on bare metal you own and operate entirely within your own network. Ubicloud and Spinifex are both open source, both AGPL-3.0 licensed, and both designed to give teams cloud-like compute without the AWS bill. But they are built for different problems, and picking the wrong one for your context costs real time to undo.
What Ubicloud is
Ubicloud is a YC-backed open source cloud platform written in Ruby. It provides elastic compute via virtual machines, block storage (non-replicated), virtual networking with firewalls and load balancers, managed Postgres with automatic backups and point-in-time restore, Kubernetes, GitHub Actions runner integration, AI inference, and attribute-based access control. You can self-host it on bare metal from providers like Hetzner or Leaseweb, or use their managed service which runs on the same bare metal providers and handles the operational overhead for you.
Ubicloud gives you cloud convenience at a cost closer to bare metal pricing, with the option to avoid the operational burden of managing it yourself. For teams whose primary motivation is reducing their AWS bill rather than taking infrastructure fully in-house, this is a practical path.
What Spinifex is
Spinifex is an open source AWS-compatible cloud platform, written in Go and AGPL-3.0 licensed, that runs on standard Linux bare metal hardware you own and operate. Rather than defining a new cloud API, it implements the AWS API itself, covering EC2, S3, IAM, EKS, and the rest of the common AWS service surface, so the Terraform configs, CLI scripts, IAM roles, and SDK integrations your team has already written work against it without modification. The endpoint changes; the tooling doesn't.
Spinifex imposes one hard constraint: no external control plane, no phone-home, no dependency on any infrastructure outside the boundary you define. It runs air-gapped, in classified facilities, at the tactical edge, and in any environment where traffic to a US-headquartered cloud provider is either technically impossible or operationally prohibited.
Where the two products diverge
The key difference is not the feature list but the deployment model and what it implies about your operational context.
Hosting model. Ubicloud runs on provider hardware, either managed by Ubicloud or self-managed by you on Hetzner or similar. Your data and compute still live on a third party's physical infrastructure. Spinifex runs on hardware you own, in a facility you control, with no third party in the stack below the OS. For most cost-reduction use cases this distinction doesn't matter. For organisations with data sovereignty obligations, regulatory constraints, or contractual requirements around physical infrastructure ownership, it is the whole point.
AWS API compatibility depth. Ubicloud provides cloud-like services but does
not expose the AWS API surface directly. Your Terraform configs written for AWS, your eksctl
commands, and your aws ecr get-login-password calls won't work against Ubicloud
without changes because Ubicloud has its own interface layer rather than the AWS API. Spinifex
implements the AWS API itself, so existing tooling and automation work against it without
modification. The endpoint changes; nothing else does.
Disconnected operation. Ubicloud is designed for connected infrastructure, either cloud-hosted or hosted on a connected bare metal provider. There is no air-gap installation path and no documented support for fully disconnected operation. Spinifex installs from a tarball with no internet dependency and runs with no ongoing external connectivity required, which makes it the appropriate choice for edge deployments, industrial sites, and environments where network egress is restricted or prohibited.
S3 and block storage. Ubicloud's block storage is non-replicated by design. Predastore, Spinifex's S3 implementation, uses Reed-Solomon erasure coding to distribute objects across nodes so that a node failure doesn't result in data loss. Teams that need the durability model AWS S3 provides should factor this in.
Managed database. Ubicloud has an advantage here. Its managed Postgres offering includes automatic backups, point-in-time restore, and high availability, comparable to RDS in terms of operational convenience. Spinifex exposes an RDS-compatible API for database connectivity, but the database management layer is your responsibility. For teams that want managed Postgres without the AWS bill, Ubicloud is the stronger choice for that service specifically.
Which one is right for a given situation
For teams whose goal is reducing cloud costs while remaining on hosted infrastructure and who want a managed service option, Ubicloud is a reasonable choice. The Ruby codebase has an active community, the managed service option lowers the operational entry bar, and the managed Postgres offering covers a gap that Spinifex doesn't fill at the same level.
For teams whose requirements include hardware ownership, disconnected operation, air-gapped installation, or AWS API compatibility so that existing Terraform and CLI tooling transfers without changes, Spinifex is the appropriate platform. It's also the more natural choice for defence, government, and regulated industry contexts where the deployment environment may be a Pelican case at a forward operating position or a classified facility with no external network routes at all.
The two products share a broad category label but address different operational contexts. Evaluate each against the environment you're actually deploying into.
Get started
Spinifex documentation, including reference architectures and the air-gapped install guide, is at docs.mulgadc.com. The source is at GitHub, AGPL-3.0 licensed and written in Go. Ubicloud's source and documentation are at github.com/ubicloud/ubicloud. Or sign up for the Spinifex free sandbox to explore the AWS API surface before deploying on your own hardware.