Tulip Logo IconTulip

Drive Overview

Build file managers, media libraries, and provider-backed document experiences with the Drive package.

@tulip-systems/drive gives you a shared UI and contract layer for browsing, uploading, organising, and mutating files across multiple backends.

It currently exposes:

  • provider-agnostic contracts and validators
  • reusable client primitives for grid, list, selection, and view state
  • a local provider with upload and serving support
  • a Google Drive provider with tree and mutation support

Start here

What Drive is good at

  • file pickers inside forms and admin workflows
  • media libraries with grid and list views
  • internal document managers with folders and bulk actions
  • provider-specific implementations that still reuse the same shell

Package entrypoints

import "@tulip-systems/drive/styles.css";

import { DriveViewProvider } from "@tulip-systems/drive/client";
import { LocalDriveProvider } from "@tulip-systems/drive/local/client";
import { localDriveRouterContract } from "@tulip-systems/drive/local/server";

Documentation map

  • Getting Started: installation and first integration
  • Concepts: data model, providers, selection, optimistic uploads
  • Local: self-managed storage and uploads
  • Google: remote tree access and mutations for Google Drive
  • Components: reusable building blocks
  • Customization: columns, rendering, commands, styling
  • Recipes: concrete product patterns
  • Reference: exports, types, and gotchas

On this page