Both run AWS APIs on your own machine. LocalStack emulates a very wide range of services; HomeCloud covers about 30 and runs each on a real engine, with IAM always enforced and a console built in. This is the side-by-side, including the rows where LocalStack wins.
+
HomeCloud v0.4.0Updated 2026-10-116 min read
+
+
+
+
+
+
We maintain HomeCloud, so read this with that in mind. We have tried to state LocalStack's strengths as plainly as our own, and the source for every row is our comparison document, which also covers moto, MinIO with k3s, OpenStack and the AWS free tier. LocalStack changes quickly: check its current documentation and licensing before deciding.
+
+
At a glance
+
+
+
HomeCloud compared with LocalStack Community and LocalStack Pro
+
+
HomeCloud
LocalStack Community
LocalStack Pro
+
+
+
AWS APIs
About 30 services
Core services
The most services of any emulator
+
Behind the API
Real engines in Docker: Lambda runtime images, PostgreSQL/MySQL/MariaDB, Redis/Valkey, MinIO, nginx, CoreDNS
Emulation; some services start real containers (for example Lambda)
Emulation plus real engines for several services
+
IAM enforcement
On by default, one evaluator for every service
Not enforced
Available, opt-in
+
Web console
Built in, works offline, modeled on AWS's
Hosted web app, needs an account
Hosted web app
+
Persistence
State on disk by default; backup and restore commands
Ephemeral by default
Persistence and snapshots
+
Deployment
One Go binary plus Docker, or one image
One container
One container plus a licence
+
Regions / accounts
One region, one account
Many
Many
+
Multi-node
No (designed, not built)
No
No
+
Cost and licence
Free, AGPL-3.0, no paid tier
Free tier; check current terms
Paid subscription
+
Maturity
Young: first release September 2026
Mature, large community
Mature, commercial support
+
+
+
+
"Yes" in a row never means "the same as AWS". Every emulator has gaps; HomeCloud's are listed per service and per operation in docs/aws-compat.md.
+
+
Where HomeCloud is stronger
+
+
Real workloads by default. RDS gives you a real PostgreSQL, MySQL or MariaDB; ElastiCache a real Redis or Valkey; EC2 instances are containers you can shell into, or QEMU/KVM virtual machines for two images; ECS services sit behind a real nginx load balancer; security groups really filter traffic. With LocalStack Community several of these services are not available, and with Pro the depth varies per service.
+
IAM is always on. Requests from the CLI, SDKs, Terraform and the console go through one policy evaluator with resource policies, conditions, permissions boundaries and iam:PassRole. A test that passes has at least been checked for the permissions it needs.
+
A console in the box, with CloudWatch metrics and logs for every resource and a CloudTrail record of every API call, so a failed run can be inspected rather than guessed at.
+
Built to be left running: IAM users and access keys for a team or a class, backups, upgrades, TLS, a system service.
+
Fully open source. Every feature is in the AGPL-3.0 code.
+
+
+
Where LocalStack is stronger
+
+
Service coverage. LocalStack Pro covers far more services and operations. Kinesis, EKS, Athena, Glue, OpenSearch, REST API Gateway, WebSocket APIs and AppSync are not in HomeCloud.
+
Multi-region and multi-account setups work. HomeCloud has us-east-1 and one account; cross-region features are refused.
+
Start-up time and footprint. A single container emulating services in-process is light. HomeCloud starts MinIO on first boot and real engines on demand, which takes longer and uses more memory.
+
Ecosystem and maturity: years of production use, the awslocal, tflocal and cdklocal wrappers, testing integrations, extensive documentation and commercial support.
+
+
+
The same test on each
+
A concrete way to see the difference is a test that depends on permissions. Give a user read-only access to S3 and try to write:
+
+
shellHomeCloud
+
homecloud iam create-user reader --policy AmazonS3ReadOnlyAccess
+homecloud iam create-access-key reader
+# with reader's keys exported:
+aws s3 cp ./report.csv s3://reports/ # fails with AccessDenied, as on AWS
+
+
On an emulator that does not enforce IAM, the same upload succeeds, and the missing permission shows up only after deployment. Conversely, if the test needs Kinesis, it cannot run on HomeCloud at all.
+
+
Other options
+
+
+
Other ways to run AWS without AWS
+
Tool
Pick it when
+
+
moto
You want fast, in-process mocks for Python unit tests that reset between tests.
+
MinIO + k3s
You only need S3-compatible storage, plus Kubernetes for compute.
+
OpenStack
You need a multi-node private cloud with real VMs, and have people to run it.
+
AWS itself
You need exactly AWS's behavior. For final integration and staging tests, nothing replaces it.
+
+
+
+
+
So which one?
+
Use HomeCloud when your stack fits within its services and you want real compute, enforced IAM, a console and persistent state on your own machine or server, for free. Use LocalStack when you need wider coverage, several regions or accounts, or the lightest possible container in CI. Many teams will reasonably use both. If you are moving tests over, the LocalStack alternative guide lists what to change; for specific workloads see Terraform, Lambda and self-hosting.
+
Spotted something out of date about LocalStack or HomeCloud? Open an issue or a pull request against docs/comparison.md.