Devlog #1: Building Minamo
I’m excited to share the very first development update for Minamo.
Minamo is an S3-compatible storage gateway designed to reduce storage costs while remaining fully compatible with existing S3 clients. The long-term goal is to intelligently manage object placement, keeping frequently accessed data on fast storage while transparently moving cold data to lower-cost storage.
The project is currently about 50% complete.
Why Minamo?
The idea came from developing my AI chat application, Arona Chat.
While building its attachment system, I noticed that most uploaded files are accessed frequently for only the first few days before becoming “cold” data. They still need to be retained, but keeping everything on expensive hot storage unnecessarily increases operating costs.
That led to a simple question:
What if an S3-compatible gateway could automatically keep hot data on fast storage while moving cold data to lower-cost storage?
That’s how Minamo began.
Development Strategy
Rather than building the complete multi-tier storage system from the beginning, I’m developing Minamo in stages.
The first milestone is a Local Disk-only MVP, focusing on implementing a correct S3-compatible server before introducing additional storage providers.
To make future expansion straightforward, the project already adopts a layered architecture:
- HTTP / S3 API Layer (FastAPI) — request handling, XML responses, AWS Signature Version 4 verification
- S3 Service Layer — business logic and S3 error mapping
- Metadata Layer — provider-independent SQLite metadata
- Storage Backend Interface — pluggable abstraction with a Local Disk backend for the MVP
This separation allows future storage backends to be added with minimal changes.
Current Progress (~50%)
The MVP is actively under development.
Implemented so far:
- PutObject / GetObject / DeleteObject / HeadObject
- ListObjectsV2 (prefix, delimiter, pagination)
- Bucket operations
- Multipart Upload
- Presigned URLs
- AWS Signature Version 4 (header & query authentication)
- AWS-chunked streaming uploads
Compatibility is continuously verified against the official AWS SDK, with 22 boto3 compatibility tests currently passing against a live server.
The remaining work mainly focuses on completing the MVP and polishing compatibility before introducing additional storage providers.
Looking Ahead
Alongside finishing the Local Disk MVP, I’m designing Minamo’s future storage orchestration system.
The long-term vision is an intelligent storage gateway capable of automatically managing data across multiple storage tiers, including high-performance local storage, cache layers, and low-cost cold storage, while remaining fully compatible with the S3 API.
Hopefully Minamo can help make self-hosted object storage both more affordable and more efficient.
Thanks for reading! If you’re interested in the project, feel free to follow the project. I’ll share another devlog once the Local Disk MVP is complete and development moves into the multi-storage stage.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.