Features / Assets

Media Library.

Upload, organize, and serve files with drag-and-drop, folder management, and automatic image optimization. Storage is pluggable: S3-compatible services (AWS, R2, MinIO), Vercel Blob, or local disk.

Overview

What it does

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, or the built-in local filesystem adapter for development and self-hosted deployments.

Keycapabilities.

A media library built into your content workflow with flexible storage.

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, 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.

Code Example

Upload field configuration

Add an upload field to your collection to let editors attach media. Configure MIME types and size limits per field.

collections/posts.ts
import { defineCollection, text, upload } from"@revnixhq/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,
  }),
 ],
});
Storage

Choose your storage

S3-Compatible

@revnixhq/storage-s3

Works with AWS S3, Cloudflare R2, MinIO, and DigitalOcean Spaces. Production-grade object storage.

Vercel Blob

@revnixhq/storage-vercel-blob

Zero-config blob storage for Vercel deployments. Optimized for edge delivery.

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.

>_npx create-nextly-app@latest