<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tom</title>
    <description>The latest articles on DEV Community by Tom (@toddyholiday).</description>
    <link>https://dev.to/toddyholiday</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4087630%2Fae5695ed-6f93-4de6-ac01-4ff5a4d167ce.png</url>
      <title>DEV Community: Tom</title>
      <link>https://dev.to/toddyholiday</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/toddyholiday"/>
    <language>en</language>
    <item>
      <title>The Best Open Source Cloud Providers in 2026</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Thu, 22 Oct 2026 02:20:01 +0000</pubDate>
      <link>https://dev.to/toddyholiday/the-best-open-source-cloud-providers-in-2026-1gck</link>
      <guid>https://dev.to/toddyholiday/the-best-open-source-cloud-providers-in-2026-1gck</guid>
      <description>&lt;p&gt;The open source cloud landscape covers a lot of ground. Some platforms give you a full IaaS stack with their own API surface. Others sit on top of existing hypervisors. A few implement the AWS API so your existing tooling carries over unchanged. The right choice depends on what you're replacing, what your team already knows, and whether you can afford to rebuild your operational model from scratch.&lt;/p&gt;

&lt;p&gt;This is a practical comparison of the main options in 2026, written from our own vantage point as one of them. We've tried to be honest about where each tool fits and where it doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenStack
&lt;/h2&gt;

&lt;p&gt;OpenStack is the oldest and most battle-tested open source cloud platform available. It covers compute (Nova), object storage (Swift), networking (Neutron), block storage (Cinder), identity (Keystone), and a dozen other services, each maintained as a separate project under the OpenStack Foundation. Telecoms, national research networks, and large enterprises run it in production at serious scale.&lt;/p&gt;

&lt;p&gt;The operational complexity is real. Deploying OpenStack on anything other than a managed distribution requires substantial expertise, and keeping it running requires a dedicated team. If you are evaluating OpenStack for a team of five engineers, the maintenance overhead will consume more capacity than the platform returns.&lt;/p&gt;

&lt;p&gt;OpenStack has its own API surface. Your AWS CLI, Terraform AWS provider, and eksctl workflows do not carry over. Teams switching from AWS need to learn a new operational model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Large organisations with dedicated infrastructure teams who need maximum flexibility and have no AWS tooling dependency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apache CloudStack
&lt;/h2&gt;

&lt;p&gt;CloudStack is a mature IaaS platform originally developed by Cloud.com, open-sourced in 2010, and now under the Apache Foundation. It is simpler to deploy and operate than OpenStack and has been used by several commercial cloud providers as the underlying platform. The API is CloudStack's own, with some AWS EC2 API compatibility that covers basic instance management but not the full surface.&lt;/p&gt;

&lt;p&gt;The community is smaller than OpenStack's and development pace has slowed, but the platform is stable and well-understood. For teams that need a proven IaaS layer without OpenStack's operational overhead, CloudStack is worth evaluating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Mid-size organisations building an internal cloud who want something more operationally accessible than OpenStack.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenNebula
&lt;/h2&gt;

&lt;p&gt;OpenNebula is a European open source cloud platform with a strong following in HPC, research, and edge computing environments. It manages KVM, LXC, and Firecracker workloads and is designed to run on a lean footprint, making it viable on smaller hardware clusters where OpenStack would be overkill. It has its own API surface and a web interface that is considerably simpler to navigate than OpenStack's Horizon.&lt;/p&gt;

&lt;p&gt;OpenNebula's community is smaller than either OpenStack or CloudStack, but the project is actively maintained and the documentation is good. For edge and research deployments where simplicity and low resource usage matter more than breadth of services, it is a credible choice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Research institutions, HPC environments, and edge deployments that need a lightweight IaaS layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proxmox VE
&lt;/h2&gt;

&lt;p&gt;Proxmox is a hypervisor management platform built on KVM and LXC, not a cloud platform in the IaaS sense. It gives you a web interface for managing virtual machines and containers across a cluster, along with Ceph integration for shared storage. It does not give you an API that applications call to provision infrastructure programmatically in the way that AWS, OpenStack, or CloudStack do.&lt;/p&gt;

&lt;p&gt;Proxmox's star rose sharply after Broadcom's VMware acquisition triggered 800 to 1,500% price increases for standalone vSphere customers, and it is the most common destination for VMware refugees. The transition from vSphere to Proxmox is relatively straightforward for teams whose operational model is manual VM management through a web interface.&lt;/p&gt;

&lt;p&gt;Teams who built their operational model on Terraform, eksctl, and the AWS CLI face a harder transition. Proxmox has no equivalent for those tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Teams replacing VMware who manage VMs through a web interface rather than programmatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ubicloud
&lt;/h2&gt;

&lt;p&gt;Ubicloud (AGPL-3.0, Ruby, 12,300 GitHub stars) is a managed cloud service running on Hetzner and Leaseweb hardware that offers elastic compute, block storage, managed Postgres, Kubernetes, firewall, load balancer, and AI inference endpoints. Pricing runs 3 to 10x lower than equivalent AWS services, which is the primary pitch.&lt;/p&gt;

&lt;p&gt;Ubicloud is a hosted service you access over the internet rather than software you deploy on hardware you own. For teams looking to cut their cloud bill without changing their operational model significantly, it is worth evaluating. For teams with data sovereignty requirements or air-gapped deployments, it is not the right answer because your data still lives on someone else's hardware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Teams on AWS who want to reduce their bill and can tolerate moving to a different hosted provider.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spinifex
&lt;/h2&gt;

&lt;p&gt;Spinifex (AGPL-3.0, Go, &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;github.com/mulgadc/spinifex&lt;/a&gt;) is our product. It implements the AWS API surface — EC2, S3, IAM, EKS, ECS, ECR, VPC, EBS — on standard Linux bare metal, with no external control plane and no internet requirement.&lt;/p&gt;

&lt;p&gt;The specific thing Spinifex does that none of the other platforms on this list do is preserve your AWS tooling investment. If your team has Terraform configs written against the AWS provider, eksctl workflows, IAM role structures, and scripts using the AWS CLI, those run against Spinifex with a single endpoint override, meaning far less rework to your operational model.&lt;/p&gt;

&lt;p&gt;The performance case is documented in our &lt;a href="https://docs.mulgadc.com/docs/OnLogic-HX401-single-node" rel="noopener noreferrer"&gt;OnLogic HX401 benchmark&lt;/a&gt;: CPU overhead runs 7% (sysbench single-thread: 1,358 events/s guest vs 1,456 bare metal). The docs also cover areas of active improvement.&lt;/p&gt;

&lt;p&gt;Spinifex is the right answer for teams in air-gapped or sovereign environments, teams on edge hardware where AWS connectivity is unreliable, and teams with enough AWS tooling investment that rebuilding it on a new API surface is not a viable option. It is not the right answer for teams who need maximum breadth of services, or are primarily doing web-based VM management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best fit:&lt;/strong&gt; Teams deploying to air-gapped facilities, edge hardware, or sovereign environments who have existing AWS tooling they want to preserve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing between them
&lt;/h2&gt;

&lt;p&gt;The questions that narrow the field fastest:&lt;/p&gt;

&lt;p&gt;Do you need AWS tooling compatibility? If your team has significant Terraform, eksctl, or AWS CLI investment, that eliminates OpenStack, CloudStack, OpenNebula, and Proxmox from the running. Ubicloud covers some AWS API surface but is a hosted service. Spinifex covers the core services required to run on hardware you own, with additional AWS service support added regularly.&lt;/p&gt;

&lt;p&gt;Do you need to keep data on hardware under your direct control? That eliminates Ubicloud. The on-premise options are OpenStack, CloudStack, OpenNebula, Proxmox, and Spinifex.&lt;/p&gt;

&lt;p&gt;Do you need to operate without internet connectivity? OpenStack can run air-gapped with sufficient effort, but it was not designed for it. Spinifex installs from a release tarball with no external dependencies and has no phone-home requirement.&lt;/p&gt;

&lt;p&gt;Do you need to replace VMware with something familiar? Proxmox is the most direct path if your team manages VMs through a web interface. If your team provisions infrastructure programmatically, Proxmox does not cover what VMware gave you.&lt;/p&gt;

&lt;p&gt;Given the many options for open source cloud providers, we encourage teams to research each option thoroughly to decide which option is best for them.&lt;/p&gt;

&lt;p&gt;Full Spinifex documentation is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. For the other platforms: &lt;a href="https://www.openstack.org" rel="noopener noreferrer"&gt;openstack.org&lt;/a&gt;, &lt;a href="https://cloudstack.apache.org" rel="noopener noreferrer"&gt;cloudstack.apache.org&lt;/a&gt;, &lt;a href="https://opennebula.io" rel="noopener noreferrer"&gt;opennebula.io&lt;/a&gt;, &lt;a href="https://www.proxmox.com" rel="noopener noreferrer"&gt;proxmox.com&lt;/a&gt;, &lt;a href="https://www.ubicloud.com" rel="noopener noreferrer"&gt;ubicloud.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The quickest and easiest way to tell if Spinifex is the best option for you is through our hosted sandbox, which gives you 72 hours to try Spinifex without getting your own hardware involved. Sign up here: &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;https://mulgadc.com/signup&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>cloud</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>From LocalStack to Production: What Changes When Your AWS Code Runs for Real</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Thu, 15 Oct 2026 05:54:45 +0000</pubDate>
      <link>https://dev.to/toddyholiday/from-localstack-to-production-what-changes-when-your-aws-code-runs-for-real-p0b</link>
      <guid>https://dev.to/toddyholiday/from-localstack-to-production-what-changes-when-your-aws-code-runs-for-real-p0b</guid>
      <description>&lt;p&gt;Your Terraform applies cleanly against LocalStack. Your boto3 tests pass against Floci or Moto. The code is written, the CI pipeline is green, and now it has to run somewhere real. For most teams that place is an AWS region. There is another option: the same AWS APIs on hardware you own.&lt;/p&gt;

&lt;p&gt;This guide walks through what changes when the same AWS code moves from an emulator to Spinifex, an AWS-compatible cloud that runs on your own servers. We go over the configuration to edit and the services you should check first.&lt;/p&gt;

&lt;h2&gt;
  
  
  The differences
&lt;/h2&gt;

&lt;p&gt;The code stays the same. All you change is the endpoint, credentials and TLS configuration, and the emulation becomes real: EC2 instances boot as virtual machines, security groups filter traffic, resources persist until you delete them, and IAM policies are evaluated on every request.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Emulator (LocalStack, Floci, MiniStack, Moto)&lt;/th&gt;
&lt;th&gt;Spinifex&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One HTTP port, 4566 by convention&lt;/td&gt;
&lt;td&gt;AWS gateway on 9999, S3 on 8443, both over TLS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Credentials&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Any key works, conventionally &lt;code&gt;test&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Real access keys, verified with SigV4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IAM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Off by default; every call is allowed&lt;/td&gt;
&lt;td&gt;Policies evaluated on every non-root request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EC2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Records in memory, or Docker containers&lt;/td&gt;
&lt;td&gt;KVM virtual machines booted from AMIs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Networking&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Security groups stored, not enforced&lt;/td&gt;
&lt;td&gt;Security groups enforced in the hypervisor datapath&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;State&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gone on restart unless persistence is enabled&lt;/td&gt;
&lt;td&gt;Persists until you delete it&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Check service coverage first
&lt;/h2&gt;

&lt;p&gt;Emulators are broad. Floci covers 47 services and MiniStack more than 60, because emulating an API is simpler than running the services behind it. A production platform has to implement each service for real, so the list is shorter.&lt;/p&gt;

&lt;p&gt;Spinifex serves EC2, EBS, VPC, S3, IAM, STS, ELB, EKS, ECS, ECR, RDS and ACM. It does not serve Lambda, DynamoDB, SQS or SNS. The full list of supported services and operations is on our &lt;a href="https://docs.mulgadc.com/coverage" rel="noopener noreferrer"&gt;AWS API coverage&lt;/a&gt; page, generated from the gateway on every build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Endpoints and TLS
&lt;/h2&gt;

&lt;p&gt;An emulator listens on one plain HTTP port. Spinifex splits the work across two TLS endpoints: the AWS gateway on port 9999 for EC2, IAM, STS, EKS, ECS and the rest, and Predastore, the S3 service, on port 8443. S3 uses path-style addressing, which most emulator configurations already set.&lt;/p&gt;

&lt;p&gt;If you use &lt;code&gt;tflocal&lt;/code&gt; or a hand-written LocalStack provider block, the Spinifex version is shorter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"aws"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;region&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;region&lt;/span&gt;

  &lt;span class="nx"&gt;endpoints&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ec2&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;iam&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;sts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;s3&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;predastore_endpoint&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nx"&gt;s3_use_path_style&lt;/span&gt;           &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="nx"&gt;skip_credentials_validation&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="nx"&gt;skip_requesting_account_id&lt;/span&gt;  &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="nx"&gt;skip_metadata_api_check&lt;/span&gt;     &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="nx"&gt;skip_region_validation&lt;/span&gt;      &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;access_key = "test"&lt;/code&gt; lines go away, and the provider reads real keys from your AWS profile instead. Keep the two credential skip flags when the configuration manages S3: without them, AWS provider 6.x reads bucket tags through S3 Control, whose hostname carries your account ID and cannot resolve against an IP address.&lt;/p&gt;

&lt;p&gt;Spinifex generates its own certificate authority at install time. Point every SDK and the AWS CLI at it once, with &lt;code&gt;export AWS_CA_BUNDLE=/etc/spinifex/ca.pem&lt;/code&gt;, and no application code needs to know about it. We cover the Terraform details, including AMI lookups and passing endpoints through CI, in &lt;a href="https://mulgadc.com/blog/terraform-on-premise" rel="noopener noreferrer"&gt;Terraform on premise&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  IAM policies are enforced
&lt;/h2&gt;

&lt;p&gt;This is an important one. LocalStack leaves IAM enforcement off unless you set &lt;code&gt;ENFORCE_IAM=1&lt;/code&gt;, and Moto does not evaluate policies by default, so code that has only run against an emulator has never been told no.&lt;/p&gt;

&lt;p&gt;Spinifex verifies and evaluates every request the way AWS does. Each call is checked against the caller's identity policies, group policies and any role it has assumed, an explicit &lt;code&gt;Deny&lt;/code&gt; wins, and anything not allowed is denied. The first deploy surfaces every missing &lt;code&gt;iam:PassRole&lt;/code&gt;, every role that cannot be assumed, and every policy written with a wildcard that the application stopped needing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; the root user bypasses policy evaluation, on Spinifex as on AWS. If you deploy with root keys, IAM looks like it is working because nothing is being checked. Create an IAM user or role for each pipeline and workload, and use root only to create them.&lt;/p&gt;

&lt;h2&gt;
  
  
  EC2 instances are virtual machines
&lt;/h2&gt;

&lt;p&gt;In Moto and LocalStack's mock mode, &lt;code&gt;RunInstances&lt;/code&gt; returns an instance ID and stores a record. LocalStack's paid tiers can back instances with Docker containers. Either way, your Terraform has been creating something that answers &lt;code&gt;DescribeInstances&lt;/code&gt; and boots nothing.&lt;/p&gt;

&lt;p&gt;On Spinifex each instance is a KVM virtual machine booted from an AMI. User data runs through cloud-init, instances take seconds to boot rather than milliseconds, and an AMI lookup needs to find a real image. Spinifex publishes its images under the placeholder owner account &lt;code&gt;000000000000&lt;/code&gt;, so &lt;code&gt;data "aws_ami"&lt;/code&gt; filters that name an AWS account ID, such as Canonical's, need the owner changed.&lt;/p&gt;

&lt;p&gt;Workloads that read the instance metadata service meet one more change. Spinifex serves IMDSv2 only, with session tokens required, and the setting cannot be relaxed. Current AWS SDKs use IMDSv2 already. Scripts that call &lt;code&gt;curl http://169.254.169.254/latest/meta-data/&lt;/code&gt; without a token need updating, and they need the same change on Amazon Linux 2023, which requires IMDSv2 by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security groups filter real traffic
&lt;/h2&gt;

&lt;p&gt;An emulator stores your security group rules and returns them when asked. Nothing sits in the packet path. Spinifex enforces security groups as stateful firewall rules in the hypervisor's virtual switch, before traffic reaches the guest, in the same place AWS enforces them on its Nitro cards.&lt;/p&gt;

&lt;h2&gt;
  
  
  State persists, so tests need to clean up
&lt;/h2&gt;

&lt;p&gt;Emulators start empty. LocalStack keeps nothing between restarts unless persistence is enabled, and most CI pipelines rely on that. Every run gets a fresh account, and teardown is &lt;code&gt;docker stop&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On Spinifex, volumes, buckets, instances and IAM entities exist until something deletes them. Integration tests that used to leak resources now leak real disk and real compute. Give each pipeline its own account, destroy with &lt;code&gt;terraform destroy&lt;/code&gt; rather than relying on a restart, and treat Terraform state as production state from the first apply.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the emulator
&lt;/h2&gt;

&lt;p&gt;None of this replaces the emulator. Floci, MiniStack and Moto remain the right tools for unit tests and fast CI, and we compare them in &lt;a href="https://mulgadc.com/blog/localstack-alternatives-production" rel="noopener noreferrer"&gt;LocalStack alternatives&lt;/a&gt;. The emulator makes sure your code calls the API correctly. Spinifex makes sure your infrastructure works: whether the policies grant enough, the instances boot, and the network lets the right traffic through.&lt;/p&gt;

&lt;p&gt;An effective pipeline uses both. Run unit tests against an emulator on every commit, then apply the same Terraform to a Spinifex cluster before production, or as production. The provider block above is the only file that differs between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try the move without hardware
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;free sandbox&lt;/a&gt; gives you a Spinifex endpoint, access keys and a console for 72 hours, which is enough to point your Terraform configuration at it and see what IAM and the network make of it. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; under AGPL-3.0, and the installation guide and Terraform workbooks are at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can I use LocalStack in production?
&lt;/h3&gt;

&lt;p&gt;No. LocalStack emulates the AWS API for development and CI. IAM enforcement is off by default, EC2 instances are records or Docker containers, and security groups are stored rather than enforced. Production needs AWS itself or a platform that implements those services for real, such as Spinifex on your own hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  What changes when I move Terraform from LocalStack to a real AWS-compatible endpoint?
&lt;/h3&gt;

&lt;p&gt;The resources stay the same. The provider block changes: the endpoints point at the real service, the placeholder test credentials are replaced with real access keys, and TLS is verified against the platform's certificate authority. Against Spinifex, the AWS gateway runs on port 9999 and S3 on port 8443.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why does my code get AccessDenied after moving off an emulator?
&lt;/h3&gt;

&lt;p&gt;Emulators allow every call by default, so policies are never tested. A real platform evaluates the caller's policies on every request, an explicit Deny wins, and anything not allowed is denied. Missing iam:PassRole grants and roles that cannot be assumed are the most common first failures.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which AWS services does Spinifex support?
&lt;/h3&gt;

&lt;p&gt;Spinifex serves EC2, EBS, VPC, S3, IAM, STS, ELB, EKS, ECS, ECR, RDS and ACM on your own servers. It does not serve Lambda, DynamoDB, SQS or SNS, so applications built on those need another home for those components.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I stop using an emulator once I run Spinifex?
&lt;/h3&gt;

&lt;p&gt;No. Floci, MiniStack and Moto stay the fastest way to run unit tests and CI. Use the emulator to check that code calls the API correctly, and apply the same Terraform to a Spinifex staging account to check that policies, instances and networking work.&lt;/p&gt;

</description>
      <category>localstack</category>
      <category>aws</category>
      <category>terraform</category>
      <category>devops</category>
    </item>
    <item>
      <title>We Have AGI At Home</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Tue, 15 Sep 2026 03:41:36 +0000</pubDate>
      <link>https://dev.to/toddyholiday/we-have-agi-at-home-5g6o</link>
      <guid>https://dev.to/toddyholiday/we-have-agi-at-home-5g6o</guid>
      <description>&lt;p&gt;The case against open-weight models has always been that they were the cheaper, weaker option, and if you wanted real quality you paid a frontier provider. As of mid 2026 that case has mostly collapsed, with the best open-weight models sitting &lt;a href="https://olud.ai/blog/open-vs-closed-llm-price-gap-2026/" rel="noopener noreferrer"&gt;around 3.4 points&lt;/a&gt; behind the best closed one on the Artificial Analysis Intelligence Index, measured across 270 models. Epoch AI cites a &lt;a href="https://whatllm.org/blog/open-source-vs-proprietary-llms-2026" rel="noopener noreferrer"&gt;roughly four-month lag&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;So we find ourselves in a time where the model itself is no longer the bottleneck. In this post we will epxlore the idea that we dont actually need better models, and instead target the setup a small-to-mid-sized organisation needs to run the ones we already have. And by "running" we don't mean a single dev running the latest TMBBs (Trust Me Bro Benchmarks) - we mean building out a tool organisations can use to do actual work. We covered the deployment mechanics in an &lt;a href="https://dev.to/blog/baremetal-ai-cloud-tools"&gt;earlier post on baremetal AI&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  The current state of open models
&lt;/h2&gt;

&lt;p&gt;This landscape changes seemingly every other week, but as of the time of writing (mid September, 2026), here's the gist:&lt;/p&gt;

&lt;p&gt;At the top, some open models can now hold their own in real agentic pipelines as frontier substitutes. DeepSeek's V4 line reached the &lt;a href="https://www.thundercompute.com/blog/best-open-source-llms" rel="noopener noreferrer"&gt;low-80s on SWE-bench Verified&lt;/a&gt; under an MIT license, while GLM-5.2, Kimi K3, and Qwen's largest models trade the lead on coding and agentic benchmarks.&lt;/p&gt;

&lt;p&gt;In the middle sit the 24-to-32-billion-parameter models such as Qwen's 27B, Gemma 4 31B, and Mistral-Small, which handle reasoning and coding well enough for most production work. &lt;/p&gt;

&lt;p&gt;At the small end, models like gpt-oss-20b and Phi-4 can do drafting, extraction, and classification on very little hardware.&lt;/p&gt;

&lt;p&gt;Most of the frontier-grade open models use a mixture-of-experts design with million-token context windows, so a model with hundreds of billions of total parameters activates only ten to twenty billion per token. The point is that "open" no longer means "compromise" for models doing real work. The deciding factor is where and how you run it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hardware
&lt;/h2&gt;

&lt;p&gt;The common assumption is that serving a capable model means buying or renting the same GPUs the labs use. But as the models get better and increasingly more compatible with commodity hardware, is it really necessary to spend &lt;a href="https://www.cloudzero.com/blog/h100-gpu-cost/" rel="noopener noreferrer"&gt;$25,000 to $33,000&lt;/a&gt; on a H100? Or &lt;a href="https://intuitionlabs.ai/articles/nvidia-ai-gpu-pricing-guide" rel="noopener noreferrer"&gt;$350,000&lt;/a&gt; on an eight-GPU cluster? That is hyperscaler and AI-lab territory, and we all know hardware prices are only going up.&lt;/p&gt;

&lt;p&gt;What small-to-mid-sized organisations can actually buy, without a procurement committee, are workstation-class cards:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Card&lt;/th&gt;
&lt;th&gt;VRAM&lt;/th&gt;
&lt;th&gt;Approx. price&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;RTX 4090&lt;/td&gt;
&lt;td&gt;24 GB&lt;/td&gt;
&lt;td&gt;$2,400–3,500&lt;/td&gt;
&lt;td&gt;ubiquitous, single-user tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTX 5090&lt;/td&gt;
&lt;td&gt;32 GB&lt;/td&gt;
&lt;td&gt;$3,000–5,000&lt;/td&gt;
&lt;td&gt;~160 tok/s, 32B at Q4 on one card&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Used A6000&lt;/td&gt;
&lt;td&gt;48 GB&lt;/td&gt;
&lt;td&gt;$2,600–3,800&lt;/td&gt;
&lt;td&gt;best value at 48 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTX 6000 Ada&lt;/td&gt;
&lt;td&gt;48 GB&lt;/td&gt;
&lt;td&gt;~$6,800&lt;/td&gt;
&lt;td&gt;70B at Q4 in VRAM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L40S&lt;/td&gt;
&lt;td&gt;48 GB&lt;/td&gt;
&lt;td&gt;$7,500–10,000&lt;/td&gt;
&lt;td&gt;server-grade, strong cost per token&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTX Pro 6000 Blackwell&lt;/td&gt;
&lt;td&gt;96 GB&lt;/td&gt;
&lt;td&gt;~$8,600&lt;/td&gt;
&lt;td&gt;70B at Q8 in VRAM, FP4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So now we can map what you own to what you can run:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;VRAM&lt;/th&gt;
&lt;th&gt;Fits (quantized)&lt;/th&gt;
&lt;th&gt;Good for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;16 GB&lt;/td&gt;
&lt;td&gt;gpt-oss-20b, Phi-4 14B, 13B at Q8&lt;/td&gt;
&lt;td&gt;drafting, classification, light coding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;24 GB&lt;/td&gt;
&lt;td&gt;14–32B at Q4 (Qwen 27B, Gemma 4 31B, Mistral 24B)&lt;/td&gt;
&lt;td&gt;real reasoning and coding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;48 GB&lt;/td&gt;
&lt;td&gt;70B at Q4/INT4 (Qwen 72B, Llama 3.3 70B)&lt;/td&gt;
&lt;td&gt;70B quality, small concurrency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;96 GB&lt;/td&gt;
&lt;td&gt;70B at Q8 in VRAM&lt;/td&gt;
&lt;td&gt;higher fidelity, more headroom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mac 64–128 GB&lt;/td&gt;
&lt;td&gt;70B at Q4, 34B at Q8, ~120B at low quant&lt;/td&gt;
&lt;td&gt;low-power single box&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Serving a model is bounded by memory, not compute. You budget VRAM as the weights (parameters times bytes per parameter, set by quantisation) plus the key-value cache for in-flight requests plus a few gigabytes of runtime. Get it right and a &lt;a href="https://www.spheron.network/blog/best-open-source-llms-self-host-2026-vram-guide/" rel="noopener noreferrer"&gt;27-to-40-billion-parameter model at 4-bit&lt;/a&gt;, on one 24-to-48 GB card, delivers reasoning and coding that competes with commercial offerings. That is real work, on hardware that costs about as much as a nice laptop, or that you already own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real juice is in the harness
&lt;/h2&gt;

&lt;p&gt;The view that base models do not need to get much better, and that most of the remaining gains live in the harness around them, has gained traction as the AI space has matured. This is backed by evidence. Pure parameter scaling is &lt;a href="https://www.buildfastwithai.com/blogs/llm-scaling-laws-explained" rel="noopener noreferrer"&gt;showing diminishing returns&lt;/a&gt;: knowledge tasks plateau beyond about 30 billion parameters, reasoning tasks around 70 billion and up, and high-quality training data is running short. &lt;/p&gt;

&lt;p&gt;Meanwhile, the harness continues to pay off. Tool orchestration, persistent memory, environment sandboxing, and automated feedback loops now separate a good agent from a useless one, and &lt;a href="https://arxiv.org/html/2604.03515v2" rel="noopener noreferrer"&gt;many leading agents reach frontier performance&lt;/a&gt; through scaffolding rather than a bigger underlying model. &lt;/p&gt;

&lt;p&gt;In any case, the harness dictates not only how effective the model is for the individual user, but also its usability for organisations - Orchestration, autoscaling, retrieval plumbing, access control, and audit are just as crucial as how elegantly or autonomously your agent can write code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The jump from one card to a platform
&lt;/h2&gt;

&lt;p&gt;So now you have open-weight models running on actually obtainable hardware. How do you build that up from a single dev rambling about benchmark scores into a platform an entire organisation can use for real work? Well, such a shared service needs four things. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GPU capacity that scales with demand.&lt;/li&gt;
&lt;li&gt;Model weights that are versioned and delivered wherever they run.&lt;/li&gt;
&lt;li&gt;Endpoints that are access-controlled and audited.&lt;/li&gt;
&lt;li&gt;Enough utilisation to justify the hardware. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last one determines the economics. Self-hosting beats a frontier API only once the GPUs are busy, on the order of &lt;a href="https://www.sitepoint.com/local-llms-vs-cloud-api-cost-analysis-2026/" rel="noopener noreferrer"&gt;tens of millions of tokens a day&lt;/a&gt; at high utilisation. Keeping expensive silicon fed means autoscaling and sharing one fleet across teams.&lt;/p&gt;

&lt;p&gt;Each one of the aforementioned requirements already has a solution in the AWS toolkit. The only catch is that using it means running on AWS. But you just went to all that effort ditching the cloud-served frontier models in favour of the open ones, and buying your own commodity hardware to run them, only to realise you still need the cloud!?&lt;/p&gt;

&lt;p&gt;Until now, this was the "rock" to the proverbial "hard place" of the increasingly concerning token economics of the frontier labs. Luckily, there's a new kid on the block that can help with this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; implements the aforementioned AWS toolkit on hardware you own, so the platform you would have built in the cloud maps onto your own GPUs with tooling your team already knows. EC2 provisions and scales the GPU instances. EKS schedules the vLLM or SGLang pods and scales replicas with demand, which is what keeps utilisation and the economics where they need to be. S3, backed by Spinifex's erasure-coded Predastore, becomes the model registry that versions and distributes weights. IAM and STS gate which teams reach which endpoints, with an audit trail. ELBv2 spreads load across replicas.&lt;/p&gt;

&lt;p&gt;So now you get the same Terraform and the same AWS CLI, with one provider override pointing at your endpoint. We walked through a concrete build, an EKS cluster on a Supermicro X14 with two RTX Pro 6000 GPUs wired entirely in Terraform, in the &lt;a href="https://dev.to/blog/baremetal-ai-cloud-tools"&gt;earlier baremetal AI post&lt;/a&gt; and the &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;reference architectures&lt;/a&gt; in our docs. Unlike a premium integrated rack, none of it requires special hardware, and unlike a hyperscaler cluster, none of it requires a cluster. You start on the commodity box you own and grow the fleet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it worth it against a frontier API?
&lt;/h2&gt;

&lt;p&gt;Often, but not always. But the direction of travel is clear: by some counts &lt;a href="https://llmconfigurator.com/en/enterprise/on-prem-ai-statistics" rel="noopener noreferrer"&gt;more than half of enterprise inference&lt;/a&gt; now runs on-premise or at the edge, up from about an eighth in 2023. One representative scenario puts break-even at &lt;a href="https://cloudzy.com/blog/self-hosting-open-weight-llm-gpu-vps-cost/" rel="noopener noreferrer"&gt;roughly four months&lt;/a&gt; at 30 million tokens a day.&lt;/p&gt;

&lt;p&gt;So it becomes a question of how much commodity compute is obtainable for your organisation, what kind of work needs to be done and at what rate. Spinifex provides the tools to help make the economics more viable by relicating what you'd usually use AWS for. But for those with the right set of circumstances, a fully functional open weight model, running on on-prem, obtainable hardware, with a harness that makes the platform effective at both the individual and organisational level, is actually within reach.&lt;/p&gt;

&lt;h2&gt;
  
  
  What could that look like?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval over private corpora.&lt;/strong&gt; Point SGLang at your legal, financial, or internal knowledge base and let prefix caching absorb the repeated system prompt. The documents never leave your control.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-volume batch inference.&lt;/strong&gt; Classification, extraction, and summarisation pipelines run the GPUs hard and steady, which is exactly where owned hardware wins on cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents on internal systems.&lt;/strong&gt; With open models clearing the low-80s on SWE-bench, agents that read and act on private codebases are viable with no token bill and no data-egress review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine-tuning on data that cannot leave.&lt;/strong&gt; Train and serve on the same fleet, with the tuned weights landing in self-hosted S3 next to the base models.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped and sovereign inference.&lt;/strong&gt; The model never phones home and the stack runs disconnected, which is the requirement for defence, healthcare, and finance operators who cannot use a public API at all.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Our &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;reference architectures&lt;/a&gt; cover deploying GPU-backed EKS clusters and AI workloads on your own hardware, including the air-gapped install path. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the free sandbox&lt;/a&gt; to explore the AWS-compatible API surface before you commit hardware.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>gpu</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Fakecloud vs Spinifex: AWS Emulator vs Production Platform</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Thu, 10 Sep 2026 06:59:32 +0000</pubDate>
      <link>https://dev.to/toddyholiday/fakecloud-vs-spinifex-aws-emulator-vs-production-platform-5367</link>
      <guid>https://dev.to/toddyholiday/fakecloud-vs-spinifex-aws-emulator-vs-production-platform-5367</guid>
      <description>&lt;p&gt;&lt;a href="https://fakecloud.dev" rel="noopener noreferrer"&gt;Fakecloud&lt;/a&gt; and &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; both answer to the AWS API, which is enough to land them in the same search results. They are not alternatives to each other. Fakecloud covers local development and CI. Spinifex covers production when that environment is hardware you own. Knowing which is which keeps a dev tool out of production and a production platform out of your CI pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Fakecloud is
&lt;/h2&gt;

&lt;p&gt;Fakecloud is a free, MIT-licensed AWS emulator built around the AWS Smithy service models. Instead of hand-writing each service, it generates its API surface from the same models AWS publishes, and that is how it reaches 105 services and 7,396 operations. The breadth is the point: model-driven coverage rather than hand-tuned depth.&lt;/p&gt;

&lt;p&gt;The runtime is a single binary of around 19 MB that idles near 10 MiB, so it fits into a CI job or a laptop without much overhead. Covered services include S3, DynamoDB, SQS, Lambda, IAM, STS, ECS, ECR, EC2, and Bedrock, plus RDS backed by six real database engines and 80 more beyond those. The project is younger and smaller by star count than Floci or LocalStack, and it targets a wider slice of the API than either.&lt;/p&gt;

&lt;p&gt;Fakecloud does not run real infrastructure. Call &lt;code&gt;ec2 run-instances&lt;/code&gt; and you get a well-formed response that matches the model, but no virtual machine boots. Call &lt;code&gt;s3 put-object&lt;/code&gt; and the bytes land somewhere convenient for the test, with no erasure-coded storage engine enforcing durability. For an emulator that trade-off is correct, because a developer's inner loop and a CI job need fast, faithful responses rather than production behaviour under load.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spinifex is
&lt;/h2&gt;

&lt;p&gt;Spinifex is an AWS-compatible cloud platform for hardware you own. It implements EC2, S3, IAM, EKS, and the rest of the common AWS service surface on standard Linux bare metal, and the implementation is real. An &lt;code&gt;aws ec2 run-instances&lt;/code&gt; call provisions a virtual machine through QEMU. S3 objects go to Spinifex's built-in object store, which spreads them across nodes with Reed-Solomon erasure coding. IAM policies evaluate against real principals and enforce across real network boundaries.&lt;/p&gt;

&lt;p&gt;Spinifex is built for production where AWS itself is unavailable: disconnected field deployments, air-gapped secure facilities, and data sovereignty rules that forbid sending data to infrastructure outside your control. It runs with no external control plane, makes no phone-home call, and installs from a release tarball with no internet access. The AWS CLI, Terraform with the AWS provider, eksctl, and any AWS SDK work against it with a single endpoint override.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why these two get compared
&lt;/h2&gt;

&lt;p&gt;Both tools answer &lt;code&gt;aws s3 ls&lt;/code&gt; correctly, and Fakecloud's model-driven conformance means it answers a long list of other calls too. That breadth is what surfaces it next to Spinifex when a team searches for a way to run the AWS API off Amazon. The choice comes up whenever a team replacing LocalStack is also weighing where production will run.&lt;/p&gt;

&lt;p&gt;Conforming to the API model and provisioning real infrastructure are different jobs. Fakecloud checks that your requests are well-formed and that your code handles the responses. Spinifex runs the workload. A suite that passes against Fakecloud tells you the integration code is correct. It does not tell you the VM will boot, the volume will survive a lost node, or the policy will deny the call it should deny.&lt;/p&gt;

&lt;h2&gt;
  
  
  How they fit together
&lt;/h2&gt;

&lt;p&gt;Plenty of teams run both, at different stages of one pipeline. Fakecloud sits in development and CI, giving engineers a broad, quick AWS surface to build against with no account and no bill. Spinifex sits in production when that production is hardware the team controls, serving the same AWS API the application was written against.&lt;/p&gt;

&lt;p&gt;The endpoint changes between stages. The application code does not. Teams whose production target is AWS finish with a validation pass on real AWS. Teams whose production target is their own hardware finish on Spinifex: the same API, running on the machines that are the production environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Fakecloud is at &lt;a href="https://github.com/faiscadev/fakecloud" rel="noopener noreferrer"&gt;github.com/faiscadev/fakecloud&lt;/a&gt;, MIT-licensed and needing no account to run. Spinifex documentation, including the air-gapped installation guide for disconnected deployments, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the free sandbox&lt;/a&gt; to explore the AWS-compatible API surface before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>testing</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>MiniStack vs Spinifex: AWS Emulator vs Production Platform</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Thu, 10 Sep 2026 06:58:48 +0000</pubDate>
      <link>https://dev.to/toddyholiday/ministack-vs-spinifex-aws-emulator-vs-production-platform-4m93</link>
      <guid>https://dev.to/toddyholiday/ministack-vs-spinifex-aws-emulator-vs-production-platform-4m93</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/ministackorg/ministack" rel="noopener noreferrer"&gt;MiniStack&lt;/a&gt; and &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; both speak the AWS API. That surface similarity is what puts them in the same search results, but they're built for different stages of the software lifecycle. MiniStack is a development and CI testing tool. Spinifex is a production cloud platform. Teams that run both aren't hedging; they're using the right tool at each stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What MiniStack is
&lt;/h2&gt;

&lt;p&gt;MiniStack is a free, MIT-licensed AWS emulator that emerged after LocalStack archived its Community Edition in March 2026. It runs on port 4566, covers 60+ AWS services, and requires no account or auth token. The Docker image is around 270 MB with roughly 30 MB idle memory, and startup is under two seconds.&lt;/p&gt;

&lt;p&gt;The design choice that distinguishes MiniStack from other emulators is that it backs some services with real infrastructure. When your test code calls its RDS endpoint, a real PostgreSQL instance is handling the storage. ElastiCache maps to a real Redis instance. That backing means test behaviour for database-heavy workloads more closely mirrors what the production database will do, including edge cases in query behaviour that a pure mock might smooth over.&lt;/p&gt;

&lt;p&gt;For teams whose biggest CI risk is database logic rather than AWS API surface coverage, MiniStack's real-infrastructure approach is a meaningful improvement over in-memory emulators.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spinifex is
&lt;/h2&gt;

&lt;p&gt;Spinifex is an AWS-compatible cloud platform that runs on standard Linux bare metal hardware. It implements EC2, S3, IAM, EKS, and the rest of the common AWS service surface against real underlying infrastructure. When you call &lt;code&gt;aws ec2 run-instances&lt;/code&gt;, it boots a real virtual machine using QEMU. EBS volumes are real block storage with real persistence. IAM policies are enforced across actual network boundaries. S3 is served by Predastore, which uses Reed-Solomon erasure coding to distribute objects across nodes so data survives hardware failures.&lt;/p&gt;

&lt;p&gt;Spinifex runs fully offline, with no external control plane and no phone-home dependency. It installs from a release tarball on any x86_64 or ARM64 Linux server. The AWS CLI, Terraform with the AWS provider, eksctl, and any AWS SDK work against it with a single endpoint override.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where they each fit
&lt;/h2&gt;

&lt;p&gt;MiniStack belongs in your dev environment and CI pipeline. It gives your application code a realistic AWS surface to run against without cloud costs or credentials, and the real database backing means your ORM queries and migration code get a more honest workout than they would against a pure in-memory mock.&lt;/p&gt;

&lt;p&gt;Spinifex belongs in production when that production environment is hardware you own. It's built for teams deploying to disconnected edge hardware, air-gapped secure facilities, and sovereign environments where data cannot leave infrastructure under direct control. The goal is that Terraform configs, IAM policies, and application code written for AWS run unchanged on your own hardware, because the API they're calling is the same API.&lt;/p&gt;

&lt;h2&gt;
  
  
  What emulators can't catch
&lt;/h2&gt;

&lt;p&gt;MiniStack's real-database backing improves test fidelity for a specific class of problem, but the emulator model has structural limits that matter when correctness at the margins is the requirement.&lt;/p&gt;

&lt;p&gt;An emulator intercepts API calls and returns plausible responses. What it doesn't do is enforce real IAM policy evaluation against real principals, manage real VM lifecycle state, or replicate the durability and concurrency behaviour of a production storage system under load. These aren't gaps in MiniStack specifically; they're inherent to the emulator category. Emulators are optimised for development speed, not production parity.&lt;/p&gt;

&lt;p&gt;For teams whose production target is AWS, this gap is bridged by deploying to real AWS for final validation. For teams whose production target is hardware they own, there is no "real AWS" step in the pipeline. Spinifex is what fills that position: the same API, on the hardware that is the production environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;MiniStack documentation and installation instructions are at &lt;a href="https://ministack.org" rel="noopener noreferrer"&gt;ministack.org&lt;/a&gt;. Spinifex documentation, including the air-gapped installation guide and Terraform workbooks, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. The &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;free sandbox&lt;/a&gt; lets you test the API against a live Spinifex instance before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>testing</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Floci vs Spinifex: AWS Emulator vs Production Platform</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Wed, 09 Sep 2026 01:59:32 +0000</pubDate>
      <link>https://dev.to/toddyholiday/floci-vs-spinifex-aws-emulator-vs-production-platform-5160</link>
      <guid>https://dev.to/toddyholiday/floci-vs-spinifex-aws-emulator-vs-production-platform-5160</guid>
      <description>&lt;p&gt;&lt;a href="https://floci.dev/" rel="noopener noreferrer"&gt;Floci&lt;/a&gt; and &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; both implement the AWS API surface, and that surface-level similarity puts them in the same search results. They're not alternatives to each other. Floci covers local development and CI. Spinifex covers production when that environment is hardware you own. Understanding why helps you use both without expecting either to do the other's job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Floci is
&lt;/h2&gt;

&lt;p&gt;Floci is a free, open-source AWS emulator built to replace LocalStack Community Edition after LocalStack archived its free tier in March 2026. It's built on Quarkus and compiled to a native binary via GraalVM, which produces its headline numbers: startup time around 24ms and idle memory around 13 MiB. It covers 47 AWS services, requires no account or auth token, and is MIT-licensed.&lt;/p&gt;

&lt;p&gt;The design intention is explicit drop-in compatibility. Floci listens on port 4566 and accepts the same credential pattern as LocalStack, so existing SDK configurations, Docker Compose setups, and CI scripts work without changes. It also translates LocalStack environment variables automatically for teams migrating from older configurations. Beyond AWS, it supports Azure and GCP endpoints, which is useful for codebases that target more than one cloud provider.&lt;/p&gt;

&lt;p&gt;What Floci doesn't do is run real infrastructure. When your code calls &lt;code&gt;s3.put_object&lt;/code&gt;, Floci intercepts that call and stores the data somewhere convenient for the test. There's no actual storage engine enforcing durability guarantees, no real IAM policy evaluation against a real principal, and no hypervisor managing virtual machine state. That's the correct trade-off for a development tool: speed and breadth of service coverage matter more than production-grade correctness when you're running a developer's inner loop or a CI job.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spinifex is
&lt;/h2&gt;

&lt;p&gt;Spinifex is an AWS-compatible cloud platform for hardware you own. It implements EC2, S3, IAM, EKS, and the rest of the common AWS service surface on standard Linux bare metal, and the implementation is real: an &lt;code&gt;aws ec2 run-instances&lt;/code&gt; call provisions an actual virtual machine using QEMU. S3 objects go to Predastore, which distributes them across nodes using Reed-Solomon erasure coding. IAM policies are evaluated against real callers and enforced across real network boundaries.&lt;/p&gt;

&lt;p&gt;The use cases are production environments where AWS itself isn't available: disconnected field deployments, air-gapped secure facilities, and data sovereignty requirements that prohibit sending data to infrastructure outside your direct control. Spinifex runs without any external control plane, has no phone-home requirement, and installs from a release tarball with no internet access needed. The AWS CLI, Terraform with the AWS provider, eksctl, and boto3 all work against it with a single endpoint override.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why these two get compared
&lt;/h2&gt;

&lt;p&gt;Both tools answer &lt;code&gt;aws s3 ls&lt;/code&gt; correctly. That's enough to surface both in the same search, and the question "should I use Floci or Spinifex?" comes up whenever a team with existing LocalStack infrastructure is evaluating on-premise options at the same time.&lt;/p&gt;

&lt;p&gt;The architecture underneath is completely different, and the appropriate contexts don't overlap. Floci is optimised for startup time, low resource footprint, and broad service coverage in a container, because those are the properties that matter in a developer's inner loop. Spinifex is optimised for production reliability, real hardware management, and disconnected operation, because those are the properties that matter when bare metal is the production environment.&lt;/p&gt;

&lt;p&gt;A benchmark between them would measure the wrong things. Floci starts in 24ms; Spinifex starts VMs on real hardware. Floci fits in a Docker container; Spinifex manages your infrastructure. Neither is trying to do what the other does.&lt;/p&gt;

&lt;h2&gt;
  
  
  How they fit together
&lt;/h2&gt;

&lt;p&gt;Many teams use both across different stages of the same pipeline. Floci runs in the development environment and CI so that engineers can write and test code against AWS APIs without a cloud account or a cloud bill. Spinifex runs in the production environment when that environment is hardware the team controls, and provides the same AWS API surface that the application was developed against.&lt;/p&gt;

&lt;p&gt;The endpoint changes between stages. The application code doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Floci is at &lt;a href="https://github.com/floci-io/floci" rel="noopener noreferrer"&gt;github.com/floci-io/floci&lt;/a&gt;, MIT-licensed and requiring no account to run. Documentation for Spinifex is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;, including the air-gapped installation guide for disconnected deployments. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the free sandbox&lt;/a&gt; to explore the AWS-compatible API surface before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>testing</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Equinix Metal Shut Down: What Bare Metal Cloud Users Can Do Now</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Mon, 07 Sep 2026 04:40:11 +0000</pubDate>
      <link>https://dev.to/toddyholiday/equinix-metal-shut-down-what-bare-metal-cloud-users-can-do-now-2b5a</link>
      <guid>https://dev.to/toddyholiday/equinix-metal-shut-down-what-bare-metal-cloud-users-can-do-now-2b5a</guid>
      <description>&lt;p&gt;Equinix Metal went offline on June 30, 2026. If your infrastructure ran on it, you already know that: the API is gone, servers provisioned on the platform were wiped at the cutoff, and what was once an on-demand bare metal cloud with ten-minute provisioning times is now a 404. Equinix announced the shutdown in November 2024, which gave customers eighteen months to plan a migration, but knowing it was coming and knowing what to do next are two different things.&lt;/p&gt;

&lt;p&gt;This post covers the options, what each one involves, and where each one makes sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Equinix Metal was
&lt;/h2&gt;

&lt;p&gt;Equinix &lt;a href="https://www.equinix.com/newsroom/press-releases/2020/03/equinix-completes-acquisition-of-packet-to-accelerate-equinix-digital-edge" rel="noopener noreferrer"&gt;acquired Packet in March 2020 for $335 million&lt;/a&gt; and rebranded the service as Equinix Metal. The value proposition was simple: dedicated physical servers, no hypervisor overhead, API-first provisioning in under ten minutes, and native integration to Equinix's Fabric interconnection network so you could reach cloud providers and private networks with low latency without building your own cross-connects. It sat in a gap that very few services filled: genuine bare metal performance with the kind of developer experience people expected from cloud VMs.&lt;/p&gt;

&lt;p&gt;The shutdown came because Metal represented only around 1.25% of Equinix's revenue, and the company decided its future was in colocation, interconnection, and hyperscale rather than competing with AWS on compute. That's a reasonable business decision, but it leaves a real gap for the teams who built on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest options
&lt;/h2&gt;

&lt;p&gt;There is no single direct replacement for what Equinix Metal was, because what made it valuable was the combination of physical performance, API-first control, and Equinix's interconnection fabric in a single product. Each migration path recovers some of that but not all of it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Move to a managed bare metal provider&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most direct substitution is another bare metal cloud, and several have been actively courting Equinix Metal refugees. Latitude.sh markets itself specifically as an Equinix Metal replacement and offers a developer-friendly API, Terraform provider, and fast provisioning across a smaller number of locations. Hetzner offers bare metal dedicated servers with decent API support and competitive pricing, especially in Europe. OVHcloud covers a wider range of locations and has API-driven provisioning, though the experience is more configuration-heavy than either of the others.&lt;/p&gt;

&lt;p&gt;The main trade-off with any of these is that you're still in someone else's data centre, on someone else's hardware, subject to their pricing changes and service decisions. You solve the immediate migration problem without changing the underlying dependency structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Move to a hyperscaler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS, GCP, and Azure all offer bare metal instance types, and if your workload was on Equinix Metal for performance reasons rather than cost or data residency reasons, moving to an AWS &lt;code&gt;i4i.metal&lt;/code&gt; or a GCP bare metal option is technically straightforward. The existing AWS SDK and Terraform tooling transfers directly and you gain the full breadth of managed services around your compute.&lt;/p&gt;

&lt;p&gt;The obvious cost is that bare metal in a hyperscaler is expensive relative to dedicated servers elsewhere, and egress costs compound quickly. For teams that chose Equinix Metal partly because hyperscaler economics didn't work for their workload, moving to AWS metal is probably not the answer, but for teams that valued the Equinix Fabric interconnection to those same hyperscalers, it removes an indirection layer entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Own the hardware and bring your own cloud API&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A smaller subset of Equinix Metal customers chose it not just for managed convenience but because they wanted hardware performance with a cloud-compatible API surface, and for some of them the managed nature of the service was a compromise rather than a requirement. For those teams, the migration path is colocation plus software that gives them the API layer back.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; is an open-source, AGPL-3.0 licensed cloud platform written in Go that implements the AWS API surface on hardware you own and operate. It covers EC2, S3, IAM, EKS, and more of the common AWS API surface, which means the same Terraform configs, AWS CLI scripts, and SDK integrations that worked against your Equinix Metal infrastructure or against AWS can be pointed at a Spinifex node in a colocation facility with a provider override:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight hcl"&gt;&lt;code&gt;&lt;span class="nx"&gt;provider&lt;/span&gt; &lt;span class="s2"&gt;"aws"&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;endpoints&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;ec2&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;iam&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;sts&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
    &lt;span class="nx"&gt;eks&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;var&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;spinifex_endpoint&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Spinifex is not a managed service, and it is not a drop-in Equinix Metal replacement in the sense that Latitude.sh is. You take on the operational responsibility for the hardware: firmware, failure, and physical network uplinks. In return you get full control over the platform, no per-hour billing, and an AWS-compatible API surface your existing tooling already talks to. For teams with the operational appetite for it, and for teams with data sovereignty or security requirements that constrain which managed providers they can use, this is the migration path that preserves the most control.&lt;/p&gt;

&lt;p&gt;The Equinix colocation business is still open, so one option is keeping your hardware in an Equinix facility and running Spinifex on it. You lose the API-driven bare metal provisioning that Metal provided, but you keep the Equinix Fabric interconnection that many teams valued for reaching cloud providers and private peers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to think about when choosing
&lt;/h2&gt;

&lt;p&gt;The right path depends on a few things that are specific to each team's situation.&lt;/p&gt;

&lt;p&gt;If the main value of Equinix Metal was the interconnection fabric, look at whether that can be reproduced in the new environment. Equinix's colocation and Fabric products are separate from Metal and still exist, and some managed bare metal providers have their own interconnection partnerships.&lt;/p&gt;

&lt;p&gt;If the main value was the API-first provisioning and developer experience rather than the physical hardware specifically, moving to a hyperscaler or a well-provisioned managed bare metal provider is probably the cleanest migration.&lt;/p&gt;

&lt;p&gt;If the main value was the combination of physical performance and a cloud-compatible API surface, and the workload has data residency or sovereignty requirements that constrain which managed providers are acceptable, owning the hardware with Spinifex providing the API layer is the path to evaluate.&lt;/p&gt;

&lt;p&gt;If the deadline passed before a clean migration was in place, get workloads off any remaining dependencies on a service that no longer exists and onto something stable, even if that means a temporary home on a hyperscaler while the longer-term architecture is figured out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Full Spinifex documentation, including the installation guide and Terraform workbooks for common infrastructure patterns, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. If you're working through a migration from Equinix Metal and want to talk through what makes sense for your specific situation, &lt;a href="https://mulgadc.com/contact" rel="noopener noreferrer"&gt;get in touch&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>selfhosted</category>
      <category>baremetal</category>
    </item>
    <item>
      <title>OpenStack vs Spinifex: Why AWS API Compatibility Changes the On-Prem Equation</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Fri, 04 Sep 2026 00:25:20 +0000</pubDate>
      <link>https://dev.to/toddyholiday/openstack-vs-spinifex-why-aws-api-compatibility-changes-the-on-prem-equation-1g</link>
      <guid>https://dev.to/toddyholiday/openstack-vs-spinifex-why-aws-api-compatibility-changes-the-on-prem-equation-1g</guid>
      <description>&lt;p&gt;The decision to move workloads off public cloud onto hardware you control usually comes with a secondary question that gets answered too late: what happens to the tooling? Terraform configs, CLI automation, IAM role structures, Kubernetes clusters provisioned with eksctl, all of that was written against the AWS API, and the answer to "does it work on our private cloud?" depends almost entirely on which private cloud platform you choose. OpenStack and Spinifex give different answers to that question, so let's dive into what they both are and where you'd pick either one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What OpenStack actually is
&lt;/h2&gt;

&lt;p&gt;OpenStack is the incumbent open source private cloud platform, governed by the &lt;a href="https://openinfra.org/" rel="noopener noreferrer"&gt;OpenInfra Foundation&lt;/a&gt; and running at serious scale. According to the OpenInfra Foundation, &lt;a href="https://openinfra.org/annual-report" rel="noopener noreferrer"&gt;OpenStack deployments now exceed 55 million cores&lt;/a&gt; in production worldwide, with organisations including Walmart, Workday, and CERN among the large-scale operators. Telecoms have leaned heavily on it for 5G and Open RAN backbone infrastructure through the StarlingX project. It is a mature platform with over fifteen years of production hardening behind it.&lt;/p&gt;

&lt;p&gt;The core services cover the same ground as any cloud platform: Nova for compute, Neutron for networking, Cinder for block storage, Swift for object storage, Keystone for identity and authentication, Glance for image management, and Heat for orchestration. Each is a full project in its own right, with its own API, documentation, and upgrade lifecycle.&lt;/p&gt;

&lt;h2&gt;
  
  
  The operational reality
&lt;/h2&gt;

&lt;p&gt;Deploying OpenStack for production use is not a weekend project. The most accessible deployment path today is Kolla-Ansible, which containerises OpenStack services and uses Ansible to orchestrate the install, and it has simplified what used to be an extremely manual process. The official documentation acknowledges that Kolla "permits operators with little experience to deploy OpenStack quickly," which is true in the sense that a motivated team can get a cluster running, but running it at production quality and knowing how to troubleshoot failures across distributed containerised services still requires operational expertise. OpenStack networking in particular, built on Neutron with OVN or OVS, has a learning curve that most teams underestimate.&lt;/p&gt;

&lt;p&gt;For organisations with a dedicated cloud operations team, this is a reasonable trade. Engineering teams whose core expertise is software development rather than infrastructure operations will carry the operational overhead with less to absorb it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AWS API question
&lt;/h2&gt;

&lt;p&gt;The challenge for teams moving from AWS tooling is that OpenStack has its own API surface. Nova is not EC2, Cinder is not EBS, and Keystone is not IAM. Terraform resources written for AWS use the &lt;code&gt;aws&lt;/code&gt; provider and EC2/EBS/S3 resource types, and those don't translate to OpenStack without a rewrite using the OpenStack provider.&lt;/p&gt;

&lt;p&gt;There was an OpenStack project called ec2-api that provided an AWS EC2 compatibility wrapper for OpenStack, but &lt;a href="https://opendev.org/openstack/ec2-api" rel="noopener noreferrer"&gt;that project is retired and no longer maintained&lt;/a&gt;. An organisation moving workloads from AWS to OpenStack is taking on a migration project at the Terraform and automation layer, not just at the infrastructure layer. Every &lt;code&gt;aws_instance&lt;/code&gt;, &lt;code&gt;aws_security_group&lt;/code&gt;, and &lt;code&gt;aws_eks_cluster&lt;/code&gt; resource in your configurations needs to be rewritten for the OpenStack equivalents.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your existing AWS tooling transfers to Spinifex without modification. It does not transfer to OpenStack without rewriting it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Spinifex does differently
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; takes the opposite approach to the API question. Rather than building a new cloud platform with its own API surface, it implements the AWS API on hardware you own, covering EC2, S3, IAM, EKS, and the rest of the common AWS service surface. The endpoint changes; the API does not. A Terraform config that targets AWS today can target a Spinifex node with a single provider block override, and the resource definitions, modules, variable files, and state management stay exactly as they are.&lt;/p&gt;

&lt;p&gt;The operational profile is also different. Spinifex runs as a single platform on standard Linux hardware, coordinated by NATS and managed by systemd, with no separate etcd cluster and no external control plane components. It also installs and runs in fully air-gapped environments with no internet connectivity, which is a requirement OpenStack can satisfy in principle but which requires additional planning and configuration to achieve.&lt;/p&gt;

&lt;p&gt;Spinifex is AGPL-3.0 licensed and written in Go, with the source at &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  When OpenStack is the right choice
&lt;/h2&gt;

&lt;p&gt;OpenStack is the right choice when the scale and multi-tenancy requirements of the deployment justify its operational complexity. Service providers running public or community cloud infrastructure, telecoms deploying 5G core, and large enterprises with dedicated cloud operations teams are the natural users of OpenStack, and it serves them well. If you need a platform that hundreds of teams can share with strong tenant isolation and a mature ecosystem of plugins, integrations, and management tooling built up over fifteen years, OpenStack is where you start looking.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Spinifex is the right choice
&lt;/h2&gt;

&lt;p&gt;Spinifex is the right choice when your team has existing AWS tooling and the requirement is to run that tooling on hardware you own, without a migration project at the automation layer. Disconnected environments, data sovereignty requirements, and edge deployments are where the AWS API compatibility matters most. Teams that can't justify a dedicated cloud ops function benefit from Spinifex's simpler operational profile.&lt;/p&gt;

&lt;p&gt;Before choosing between them, ask what your team needs to operate the platform and whether you have it. For teams whose existing capability is AWS, that question often determines the outcome before the feature list does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Platform documentation for Spinifex, including the air-gapped installation guide and Terraform workbooks for common infrastructure patterns, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. OpenStack documentation and deployment guides are at &lt;a href="https://docs.openstack.org" rel="noopener noreferrer"&gt;docs.openstack.org&lt;/a&gt;, and the OpenInfra Foundation can be found at &lt;a href="https://openinfra.org" rel="noopener noreferrer"&gt;openinfra.org&lt;/a&gt;. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the Spinifex free sandbox&lt;/a&gt; to explore the AWS-compatible API surface before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>openstack</category>
      <category>aws</category>
      <category>devops</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>VMware Alternatives in 2026: Where Teams Are Landing After the Broadcom Pricing Shock</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Thu, 03 Sep 2026 00:02:54 +0000</pubDate>
      <link>https://dev.to/toddyholiday/vmware-alternatives-in-2026-where-teams-are-landing-after-the-broadcom-pricing-shock-1gip</link>
      <guid>https://dev.to/toddyholiday/vmware-alternatives-in-2026-where-teams-are-landing-after-the-broadcom-pricing-shock-1gip</guid>
      <description>&lt;p&gt;Broadcom completed its $69 billion VMware acquisition in November 2023 and within weeks eliminated every perpetual license. Customers moved to subscription-only terms, forcing small deployments into bundles sized for enterprise. Standalone vSphere customers reported price increases of 800 to 1,500%. &lt;a href="https://www.ciodive.com/news/att-broadcom-vmware-price-hikes-court-battle/728603/" rel="noopener noreferrer"&gt;AT&amp;amp;T sued&lt;/a&gt; after receiving a quote representing a 1,050% increase. Customers already running the full VMware Cloud Foundation bundle — vSphere plus vSAN plus NSX — saw prices hold roughly flat or fall around 50%, but anyone running vSphere on its own absorbed the full shock.&lt;/p&gt;

&lt;p&gt;A CloudBolt survey published in early 2026 found that 86% of respondents were reducing their VMware footprints, with just over half planning phased transitions rather than full replacements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where teams are landing
&lt;/h2&gt;

&lt;p&gt;Proxmox is the clearest beneficiary. Community subscriptions and forum traffic grew substantially after the Broadcom announcement, and it is consistently the first alternative named in VMware migration threads across r/sysadmin, r/homelab, and enterprise IT forums. Proxmox is open source, runs on the same x86 hardware VMware ran on, and manages VMs and containers through a familiar web interface with no licensing floor.&lt;/p&gt;

&lt;p&gt;Other destinations include Nutanix, which has been pointed in its VMware-refugee marketing, OpenStack for teams already familiar with it, and public cloud for workloads where on-premise was never a compliance requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap Proxmox does not fill
&lt;/h2&gt;

&lt;p&gt;Proxmox replaces the hypervisor and gives you a working KVM environment. It does not give you the AWS API surface.&lt;/p&gt;

&lt;p&gt;Teams that spent years building Terraform modules against the AWS provider, writing IAM policies, running eksctl for Kubernetes cluster provisioning, and scripting against the AWS CLI now face a choice: learn a new operational model on Proxmox from scratch, or find something that brings the API surface they already know to the hardware they are migrating to.&lt;/p&gt;

&lt;p&gt;Spinifex (&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;github.com/mulgadc/spinifex&lt;/a&gt;, AGPL-3.0, Go) runs on standard Linux bare metal, which means it runs on the same hardware you are already evaluating for your post-VMware migration. It implements EC2, S3, IAM, EKS, ECS, ECR, VPC, and EBS through the AWS API that your existing tooling already speaks. A Terraform config that provisions infrastructure on AWS provisions the same infrastructure on Spinifex with a single provider endpoint override. The eksctl and kubectl workflows, the IAM role structures, the AWS CLI scripts all run unchanged.&lt;/p&gt;

&lt;p&gt;Teams rebuilding private cloud after VMware need a hypervisor to replace vSphere and an operational model to replace the management layer they had built around it. Proxmox answers the first question. For teams whose operational model was built on AWS tooling, Spinifex answers the second.&lt;/p&gt;

&lt;h2&gt;
  
  
  The licensing parallel
&lt;/h2&gt;

&lt;p&gt;Broadcom's move from perpetual licences to subscription minimums is worth noting because it shapes how teams evaluate everything that comes after VMware. Spinifex is AGPL-3.0, meaning the source is available, auditable, and free to use with no minimum core count and no subscription floor. Documentation including the multi-node setup guide and hardware reference architectures is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For teams that watched a perpetual VMware licence turn into an 800% price increase, the AGPL licence and open source development model is not a footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Spinifex documentation, including the multi-node setup guide and hardware reference architectures, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is at &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, AGPL-3.0 licensed and written in Go. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the free sandbox&lt;/a&gt; to explore the AWS-compatible API surface before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>vmware</category>
      <category>devops</category>
      <category>opensource</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Every Tool That Implements the AWS API in 2026</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Tue, 01 Sep 2026 23:55:02 +0000</pubDate>
      <link>https://dev.to/toddyholiday/every-tool-that-implements-the-aws-api-in-2026-3oba</link>
      <guid>https://dev.to/toddyholiday/every-tool-that-implements-the-aws-api-in-2026-3oba</guid>
      <description>&lt;p&gt;The AWS API has become infrastructure's common language, and a whole ecosystem has grown up around running it somewhere other than AWS. Some tools mock it for testing. Others implement it for real. Knowing which is which saves you from deploying a dev tool to production or wiring a production platform into your CI pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two categories
&lt;/h2&gt;

&lt;p&gt;The tools split into emulators and real cloud platforms. Emulators intercept AWS API calls and return plausible responses without provisioning real infrastructure, where state is usually ephemeral, VMs never boot, and the goal is behavioural approximation fast enough for a developer's inner loop. Real cloud platforms provision actual infrastructure where EC2 calls boot real virtual machines and block storage carries real persistence guarantees.&lt;/p&gt;

&lt;h2&gt;
  
  
  Emulators
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Moto
&lt;/h3&gt;

&lt;p&gt;Moto (&lt;a href="https://github.com/getmoto/moto" rel="noopener noreferrer"&gt;github.com/getmoto/moto&lt;/a&gt;, Apache 2.0, 8,400+ stars) has been around since 2013, making it the oldest option here. It works differently from the rest because rather than running a local server, it patches boto3 calls in-process through a test decorator. A function wrapped in &lt;code&gt;@mock_aws&lt;/code&gt; intercepts all AWS SDK calls and returns mock responses without any network traffic. This makes it fast and easy to drop into Python test suites, but it only works for Python. Teams using the AWS CLI, Terraform, or Go SDKs need a server-based option.&lt;/p&gt;

&lt;h3&gt;
  
  
  LocalStack
&lt;/h3&gt;

&lt;p&gt;LocalStack (&lt;a href="https://github.com/localstack/localstack" rel="noopener noreferrer"&gt;github.com/localstack/localstack&lt;/a&gt;, 64,000+ stars) is the dominant name in local AWS development. It runs as a Docker container exposing the AWS API on &lt;code&gt;localhost:4566&lt;/code&gt; and covers over 120 services. In March 2026, LocalStack archived its Community Edition repository and moved core services behind a paid plan. A free tier remains for non-commercial use and open source projects, but the Base plan covering Cloud Pods persistent state costs $39 per month and the Ultimate plan runs $89 per month. Teams that depended on CE for commercial CI pipelines are now evaluating alternatives.&lt;/p&gt;

&lt;h3&gt;
  
  
  Floci
&lt;/h3&gt;

&lt;p&gt;Floci (&lt;a href="https://floci.dev" rel="noopener noreferrer"&gt;floci.dev&lt;/a&gt;, &lt;a href="https://github.com/floci-io/floci" rel="noopener noreferrer"&gt;github.com/floci-io/floci&lt;/a&gt;, MIT, 22,800+ stars) launched in March 2026 as a direct response to the LocalStack CE archival. It covers 84 AWS services on &lt;code&gt;localhost:4566&lt;/code&gt;, requires no account, collects no telemetry, and ships as a single Docker image built on Quarkus and GraalVM native. The result is a 24ms startup time and a 13 MiB idle memory footprint. The star count reflects genuine demand from teams who wanted a zero-friction replacement and found one fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fakecloud
&lt;/h3&gt;

&lt;p&gt;Fakecloud (&lt;a href="https://fakecloud.dev" rel="noopener noreferrer"&gt;fakecloud.dev&lt;/a&gt;, &lt;a href="https://github.com/faiscadev/fakecloud" rel="noopener noreferrer"&gt;github.com/faiscadev/fakecloud&lt;/a&gt;, MIT, ~500 stars) covers 105 services and 7,396 operations, claiming full Smithy conformance against the AWS service model. The binary is around 19 MB and idles at roughly 10 MiB. Services include S3, DynamoDB, SQS, Lambda, IAM, STS, ECS, ECR, EC2, RDS with six real database engines, Bedrock, and 80+ more. It is a newer and smaller project than Floci but more ambitious in scope.&lt;/p&gt;

&lt;h3&gt;
  
  
  MiniStack
&lt;/h3&gt;

&lt;p&gt;MiniStack (&lt;a href="https://github.com/ministackorg/ministack" rel="noopener noreferrer"&gt;github.com/ministackorg/ministack&lt;/a&gt;, MIT, 4,300 stars) covers 60+ services including S3, SQS, DynamoDB, Lambda, SNS, IAM, STS, Kinesis, EventBridge, Secrets Manager, SSM, CloudWatch, and SES. It supports Terraform, boto3, the AWS CLI, and CDK, and handles multi-account and multi-region configurations. The multi-region support puts it ahead of simpler options for teams testing region-aware workloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real cloud platforms
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ubicloud
&lt;/h3&gt;

&lt;p&gt;Ubicloud (&lt;a href="https://github.com/ubicloud/ubicloud" rel="noopener noreferrer"&gt;github.com/ubicloud/ubicloud&lt;/a&gt;, AGPL-3.0, Ruby, 12,300 stars) is a managed cloud service running on Hetzner and Leaseweb hardware. It offers elastic compute, block storage, firewall, load balancer, managed Postgres, Kubernetes, AI inference endpoints, and IAM, at prices running 3 to 10x lower than equivalent AWS services. Teams evaluating it should understand that Ubicloud is a hosted service accessed over the internet rather than software you deploy on your own hardware. Moving to Ubicloud means moving from one cloud to a cheaper cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spinifex
&lt;/h3&gt;

&lt;p&gt;Spinifex (&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;github.com/mulgadc/spinifex&lt;/a&gt;, AGPL-3.0, Go) implements EC2, EBS, S3, VPC, IAM, EKS, ECS, ECR, and RDS on hardware you own, with no external control plane and no internet requirement. An &lt;code&gt;aws ec2 run-instances&lt;/code&gt; call boots a real VM via QEMU. S3 calls go to an erasure-coded object store. IAM policies enforce against real network boundaries. The same Terraform configs, eksctl workflows, and AWS CLI scripts that run against AWS run against Spinifex with a single provider endpoint override.&lt;/p&gt;

&lt;p&gt;Spinifex targets environments where data cannot leave hardware under direct control and where the infrastructure needs to operate with no external dependencies, covering air-gapped facilities, edge deployments, and sovereign environments. Full documentation including air-gapped install and reference architectures for specific hardware is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to use when
&lt;/h2&gt;

&lt;p&gt;For Python test suites, Moto is the natural choice because it is in-process, fast, and has been maintained for over a decade. For local dev or CI in any language, Floci offers the smallest footprint with zero account requirements, LocalStack offers the widest service coverage for teams already on a paid plan, and MiniStack or Fakecloud fill the gap for multi-region needs or specific services those two cover. For a cheaper cloud alternative where connectivity is not a concern, Ubicloud cuts the bill without changing the operational model. For hardware you own, Spinifex runs the AWS tooling you have already built on infrastructure that never calls home.&lt;/p&gt;

&lt;p&gt;Most teams end up using something from both categories because an emulator covers dev and CI while a real platform handles production or sovereign workloads. The endpoint changes; the code does not.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>opensource</category>
      <category>localstack</category>
    </item>
    <item>
      <title>Ubicloud vs Spinifex: Two Approaches to Open Source Cloud</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Tue, 01 Sep 2026 23:30:41 +0000</pubDate>
      <link>https://dev.to/toddyholiday/ubicloud-vs-spinifex-two-approaches-to-open-source-cloud-3n37</link>
      <guid>https://dev.to/toddyholiday/ubicloud-vs-spinifex-two-approaches-to-open-source-cloud-3n37</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Ubicloud is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ubicloud/ubicloud" rel="noopener noreferrer"&gt;Ubicloud&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spinifex is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the two products diverge
&lt;/h2&gt;

&lt;p&gt;The key difference is not the feature list but the deployment model and what it implies about your operational context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosting model.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS API compatibility depth.&lt;/strong&gt; 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 &lt;code&gt;aws ecr get-login-password&lt;/code&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disconnected operation.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;S3 and block storage.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed database.&lt;/strong&gt; 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which one is right for a given situation
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;The two products share a broad category label but address different operational contexts. Evaluate each against the environment you're actually deploying into.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Spinifex documentation, including reference architectures and the air-gapped install guide, is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;. The source is at &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, AGPL-3.0 licensed and written in Go. Ubicloud's source and documentation are at &lt;a href="https://github.com/ubicloud/ubicloud" rel="noopener noreferrer"&gt;github.com/ubicloud/ubicloud&lt;/a&gt;. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for the Spinifex free sandbox&lt;/a&gt; to explore the AWS API surface before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>opensource</category>
      <category>devops</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>LocalStack vs Spinifex: the Right Tool for Dev, the Right Tool for Production</title>
      <dc:creator>Tom</dc:creator>
      <pubDate>Tue, 01 Sep 2026 00:57:06 +0000</pubDate>
      <link>https://dev.to/toddyholiday/localstack-vs-spinifex-the-right-tool-for-dev-the-right-tool-for-production-2c42</link>
      <guid>https://dev.to/toddyholiday/localstack-vs-spinifex-the-right-tool-for-dev-the-right-tool-for-production-2c42</guid>
      <description>&lt;p&gt;LocalStack versus Spinifex comes up often enough to address directly. They don't compete because they solve different problems at different points in the software lifecycle. Conflating the two leads to reaching for the wrong tool and being frustrated when it doesn't fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  What LocalStack is for
&lt;/h2&gt;

&lt;p&gt;LocalStack is an AWS emulator. You run it locally in a Docker container and it intercepts calls to AWS API endpoints, returning responses that closely approximate what the real AWS would return. It covers over 120 services and understands the same SDKs, CLI commands, and Terraform provider that you use against real AWS. For local development and CI testing, it's excellent: you can write a Lambda that reads from S3, test it locally against a LocalStack instance, and be confident the code will behave the same way in AWS without incurring API costs or requiring a real AWS account to be wired into your local dev loop.&lt;/p&gt;

&lt;p&gt;The emulation is not perfect at the edges, and LocalStack itself is clear that it's a development tool rather than a production platform. State is ephemeral by default, meaning a container restart loses everything. There are no real virtual machines being managed, no actual block storage with persistence guarantees, and no genuine network enforcement between services. The goal is behavioural approximation fast enough to run in a developer's inner loop, not correctness guarantees at the margins.&lt;/p&gt;

&lt;p&gt;In March 2026, LocalStack archived its Community Edition GitHub repository and moved core services behind a paid plan, which drew a strong reaction from the developer community given the project had accumulated over 64,000 GitHub stars. A permanent free tier remains available for non-commercial use, and students and open-source projects can access the full suite without charge, but the Base plan covering persistent state via Cloud Pods costs &lt;a href="https://localstack.cloud/pricing" rel="noopener noreferrer"&gt;$45 per month&lt;/a&gt;. That change is largely why "LocalStack alternative" has become a high-volume search query, and it's a reasonable frustration for teams that relied on CE for commercial CI pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spinifex is for
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;Spinifex&lt;/a&gt; is not a development tool and not an emulator. It implements the AWS API surface on real bare metal hardware so that the hardware you own becomes the production environment, while preserving every piece of AWS tooling you've already built competency around. EC2 calls provision actual virtual machines with real CPU and memory allocation. EBS volumes are actual block storage with real persistence guarantees. IAM policies are enforced across real network boundaries. The S3-compatible object storage layer, Predastore, distributes objects across nodes using Reed-Solomon erasure coding so data survives node failures.&lt;/p&gt;

&lt;p&gt;The use case is environments where AWS itself isn't available or appropriate: disconnected field deployments, air-gapped secure facilities, data sovereignty requirements that prohibit data leaving infrastructure under your direct control, and workloads where owning the hardware is more economical than cloud compute and egress costs. Spinifex runs without any external control plane or cloud dependency and installs from a release tarball with no internet access required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the comparison comes up and what it gets wrong
&lt;/h2&gt;

&lt;p&gt;These two tools get compared because they both speak the AWS API. If you run &lt;code&gt;aws s3 ls&lt;/code&gt; against a LocalStack instance or against a Spinifex instance, you get the same command syntax and a similar response format. The surface-level similarity creates the impression they're doing similar things, but the underlying architecture is completely different and the appropriate use cases don't overlap.&lt;/p&gt;

&lt;p&gt;LocalStack is optimised for speed and breadth of service coverage in a single Docker container, because those are the properties that matter for a dev inner loop. Spinifex is optimised for production reliability, real hardware management, and disconnected operation, because those are the properties that matter when the hardware you're running on is the production environment. Neither tool is trying to do what the other does.&lt;/p&gt;

&lt;p&gt;The analogy is SQLite versus PostgreSQL. SQLite is an excellent embedded database and the right choice for a huge range of applications. PostgreSQL is a production database server designed for concurrent multi-user workloads with real persistence and replication. They both speak SQL. Choosing between them isn't really a comparison because the contexts in which each is correct don't overlap, and a benchmark between them would be measuring the wrong things.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use each
&lt;/h2&gt;

&lt;p&gt;LocalStack is the right answer if you're writing application code against AWS APIs and you want a fast, cheap, offline-capable way to run that code in your local dev environment or CI pipeline without hitting real AWS. The free tier covers non-commercial use, and even the paid plans are inexpensive relative to the time and API cost savings for a team running hundreds of CI builds a day. If you've moved from the Community Edition and want a free alternative, &lt;a href="https://floci.dev/" rel="noopener noreferrer"&gt;Floci&lt;/a&gt; and MiniStack are MIT-licensed emulators that appeared in early 2026 and cover similar territory.&lt;/p&gt;

&lt;p&gt;Spinifex is the right answer if the hardware you're running on is the production environment and you want that hardware to behave like AWS, rather than approximating AWS behaviour in a dev mock. The Terraform configs, IAM policies, CLI scripts, and SDK integrations you've written for AWS work against Spinifex without modification because the API is identical, not approximated. Spinifex is driven by operational requirements: a disconnected edge deployment, a data sovereignty obligation, or a cost calculation at scale.&lt;/p&gt;

&lt;p&gt;Many teams run both: LocalStack or an equivalent in their dev and CI environments for the same reasons they've always used it, and Spinifex for the production edge or sovereign deployment that the real workload targets. The endpoint your application points at changes; the code doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;Full Spinifex documentation is at &lt;a href="https://docs.mulgadc.com" rel="noopener noreferrer"&gt;docs.mulgadc.com&lt;/a&gt;, including the air-gapped installation guide for disconnected deployments. The source is on &lt;a href="https://github.com/mulgadc/spinifex" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, written in Go and AGPL-3.0 licensed. Or &lt;a href="https://mulgadc.com/signup" rel="noopener noreferrer"&gt;sign up for our free sandbox&lt;/a&gt; to explore the API surface against a live instance before deploying on your own hardware.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>testing</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
