Define a Pydantic model. Get a production-shaped REST API — auth, admin panel, pagination, migrations — backed by the cheapest, most durable storage on Earth. Yes, we're serious. (Kind of.)
pip install s3verless
S3verless stores each record as a JSON object in a bucket, keeps indexes in the bucket, and generates the whole API layer for you. Your infra diagram becomes a single rectangle.
Plain Pydantic. Add _indexes, _unique_fields, relationships — the stuff your ORM made you suffer for.
create_s3verless_app() hands you CRUD endpoints, JWT auth, filtering, pagination, and an admin GUI at /admin.
It's just FastAPI. Lambda + Mangum, Docker, a VPS, your homelab. The "database" is already deployed — it's a bucket.
Everything below is real, tested, and in the PyPI package today. We checked twice because we didn't believe it either.
Records as JSON objects, indexes as more JSON objects. Query it like a database. Your DBA is crying. You're laughing.
One model in, full REST API out. CRUD, pagination, filtering, sorting — generated on FastAPI, documented by OpenAPI.
Users? S3. Refresh tokens? S3. Token blacklist? S3. Rate limiting included, because we contain multitudes.
has_many, has_one, foreign keys, cascade deletes. Foreign key constraints enforced... in a bucket. Science can't explain it.
Add, remove, rename, transform fields across every object in the bucket. Versioned, runnable, reversible-ish.
In-memory, LRU, and composite backends. Because even we admit that listing a bucket on every request is a lifestyle choice.
Presigned upload URLs out of the box. Files go straight to S3 — which, to be fair, is the one thing S3 was actually built for.
Auto-generated admin panel at /admin. Browse, edit, and delete your JSON files like a professional data engineer.
InMemoryS3 and model factories. Unit-test your bucket app without touching a bucket. The irony is not lost on us.
No Docker Compose with 6 services. No connection pool tuning. Just Python and a bucket.
Drag the sliders. Watch your database bill approach zero. Actual S3 pricing, no tricks — storage plus request costs.
Great question. Here's an objective analysis.
We're joking around, but we're not monsters. Here's the honest list:
S3 has per-prefix request limits and no transactions. If you're building a high-frequency trading platform, please use a real database. And therapy.
We fake relationships with indexes and optimism. Multi-row ACID transactions across tables? That's Postgres's whole thing. Let it have it.
Our advanced query engine downloads things and filters them in Python. We ship caching to cope. For your MVP's 200 users, it's genuinely fine.
// for MVPs, prototypes, internal tools, and side projects: ship it and thank us later
The community has spoken.
I showed this to our DBA and they had to lie down.
senior dev, questionable choices
My infrastructure diagram is just a bucket now. My manager thinks I'm not working.
devops engineer (unemployed soon)
I went from 10 AWS services to 1. I don't know what to do with all this free time.
full stack dev, living her best life
*these are totally real and not made up. trust us.
Free, open source, MIT licensed. 101 passing tests. Zero database servers were harmed in the making of this framework.
pip install s3verless