Media Library.
Media library with folder organization, drag-and-drop upload, and pluggable storage adapters: S3, Cloudflare R2, Vercel Blob, Uploadthing, or local filesystem.
Nextly includes a built-in media library that handles file uploads, folder organization, and bulk operations from the admin panel. Files can be images, documents, videos, or any other type your application needs.
Upload fields in your collections link to the media library, letting editors attach files directly. MIME type validation and max file size limits are configurable per upload field, ensuring only the right files make it through.
Storage is pluggable: use the S3 adapter for any S3-compatible service (AWS, Cloudflare R2, MinIO, DigitalOcean Spaces), the Vercel Blob adapter for edge-optimized storage on Vercel, the Uploadthing adapter for hosted file storage, or the built-in local filesystem adapter for development and self-hosted deployments.
Key capabilities
- Drag-and-Drop Upload — Drag files directly from your desktop into the admin panel. Upload images, documents, and media files with real-time progress.
- Folder Organization — Keep your media library clean with nested folders. Move files between folders, bulk select, and manage large media collections.
- Pluggable Storage — Store files on S3-compatible services (AWS, R2, MinIO, DO Spaces), Vercel Blob, Uploadthing, or the local filesystem. Switch adapters without changing application code.
- Validation & Limits — Configure allowed MIME types and max file sizes per upload field. Reject unsupported file types before they reach your storage.
Upload field configuration
Add an upload field to your collection to let editors attach media. Configure MIME types and size limits per field.
import { defineCollection, text, upload } from "nextly/config";
export default defineCollection({
slug: "posts",
fields: [
text({ name: "title", required: true }),
// Featured image — links to media library
upload({
name: "featuredImage",
relationTo: "media",
admin: {
description: "Main image for the post",
},
}),
// Gallery — multiple images
upload({
name: "gallery",
relationTo: "media",
hasMany: true,
}),
],
});Choose your storage
- S3-Compatible (
@nextlyhq/storage-s3) — Works with AWS S3, Cloudflare R2, MinIO, and DigitalOcean Spaces. Production-grade object storage. - Vercel Blob (
@nextlyhq/storage-vercel-blob) — Zero-config blob storage for Vercel deployments. Optimized for edge delivery. - Uploadthing (
@nextlyhq/storage-uploadthing) — Hosted file storage with a simple developer experience. Good fit for Next.js apps that already use Uploadthing. - Local Filesystem (Built-in) — Store files on disk for development and self-hosted deployments. No external service needed.
Start building with Nextly
Free, open source, and yours to own. No sign-up required.