Different category, on purpose
Apps talk to MinIO over the S3 API; humans do not browse it. There is no audio waveform, no 3D, no HEIC, no video seek, no expiring share pages, no end-user accounts - for a consumer UI you bolt on a third party like Filestash and a WebDAV bridge. Cotton is the file-cloud experience; MinIO is the storage under one.
Sharing a file is a terminal command
MinIO sharing is presigned URLs from the command line, and WebDAV is not native - it needs a bridge. Cotton has native browser sharing with expiring links and native WebDAV through its chunk pipeline.
The open-source edition got hollowed out, then archived
In 2025 the community Console lost its admin management and OIDC login; later MinIO stopped publishing community Docker images and binaries; by early 2026 the repository was marked no longer maintained and archived read-only. Cotton is one maintained Docker image plus Postgres with the whole UX in the box.
Encryption needs a key server
MinIO's server-side encryption wants an external key-management service to operate, and it is not client-side end-to-end. Cotton does streaming AES-GCM in the box and offers client-side E2E folders where the server cannot read the content.
Pick the layer you actually need
Pick MinIO - or Garage, SeaweedFS, any S3 store - when machines need object storage. Pick Cotton when humans need to browse, preview, share, and recover files, optionally with that S3 store underneath. They are complementary layers, not the same job.