Low-Ops Rust SaaS
publishedShip a SaaS product with minimal infrastructure and a team of one or two
A deliberately simple Rust stack for solo founders or tiny teams. Axum for the API, SQLx + Postgres for everything data, SvelteKit for the frontend, and Fly.io for deployment. No Kubernetes, no Redis, no message queue. Just Rust, Postgres, and a deploy button.
Component Matrix
Why This Exists
Why This Stack Exists
Most SaaS architecture guides assume you have a platform team. This stack assumes you don't.
The goal is to maximize the ratio of features shipped to infrastructure managed. Every component earns its place by reducing operational burden.
- Postgres handles jobs, sessions, search, and data (no Redis needed)
- Fly.io provides deployment, TLS, and global edge without DevOps
- SvelteKit gives SSR and a modern frontend without a separate build pipeline
Tradeoffs
Tradeoffs
- Limited horizontal scaling: Single-server architecture caps at ~10K concurrent users
- Less ecosystem support: Fewer Rust SaaS libraries compared to Rails/Django
- Hiring difficulty: If you grow, finding Rust developers takes longer
- Monolith constraints: Eventually you may need to extract services
- Frontend/backend separation: Two languages (Rust + TypeScript) means context switching
Claims (4)
A solo developer can ship and maintain a production SaaS with this stack at under $50/month infrastructure cost.
Postgres-backed job queues eliminate the need for Redis in most SaaS use cases.
This stack becomes painful beyond 6 services without platform engineering support.
SvelteKit + Rust is a strong combination but requires context-switching between TypeScript and Rust.
Evidence (6)
PGMQ benchmark: 150K msg/sec batch writes, 10K single, on 16 vCPU — sufficient for most SaaS
strongPGMQ benchmark (16 vCPU, 30GB): 150K msg/sec writes (batch), 30K reads (batch), 10K writes (single), 7.6K reads (single). On minimal hardware (1 vCPU, 4GB): sustained thousands/sec. For most SaaS apps processing fewer than 10K jobs/sec, PostgreSQL SKIP LOCKED or PGMQ eliminates Redis overhead.
Flagship migrated from Redis/Sidekiq to Postgres-backed Solid Queue — Redis eliminated
strongFlagship migrated from Redis/Sidekiq to Solid Queue (PostgreSQL-backed with SKIP LOCKED), eliminating Redis entirely for two Shopify integration apps. Key advantage: jobs created in same transaction as data — impossible with Redis. Honest tradeoff: "not as fast as Redis, but sufficient for processing scale."
Fly.io pricing: $1.94/mo minimum for Rust (256MB VM); official Axum deployment guide
strongFly.io shared-cpu-1x 256MB: ~$1.94/month running 24/7. Rust web servers use ~20MB memory for 13K rps. Docker images ~80MB. Rust apps genuinely run on 256MB instances where Node.js/Python often cannot. IPv4 address: $2/month extra. 3-instance production: ~$20/month max.
Fly.io official Axum framework deployment guide
moderateFly.io provides first-class Rust support with an official Axum deployment guide. Demonstrates building, Dockerizing, and deploying an Axum app with step-by-step instructions. Indicates platform-level commitment to the Rust ecosystem.
Rusve: Production SvelteKit + Rust via gRPC with cross-language type safety
moderateOpen-source project connecting SvelteKit and Rust via gRPC Protocol Buffers. Provides "amazing type safety across the whole project, regardless of the language." Modifying data structures triggers linting errors in both JS and Rust simultaneously. Uses JSDocs instead of TypeScript compilation to reduce context-switching.
Full-stack auth system: Rust Actix-web + SvelteKit in practice
moderateDetailed walkthrough of building a complete authentication system with Rust backend and SvelteKit frontend. Demonstrates the pattern is viable in practice but requires managing two mental models and type systems.