Skip to main content

Introduction

Twick includes a powerful React-based video editing SDK that makes it easy to add video editing capabilities to any frontend app.

The goal is to offer high-level editing functions that can be triggered with simple function calls — ideal for building powerful media experiences without reinventing the wheel.

Core Features

Timeline Management

  • Multi-track timeline support with drag-and-drop reordering
  • CRUD operations for tracks and elements using visitor pattern
  • Element types: Text, Video, Image, Audio, Rectangle, Circle, Icon, Caption
  • Undo/redo support with history management
  • Time-based element positioning and duration control

Video Editing

  • Live video preview with custom controls
  • Timeline-based editing interface with zoom and seek controls
  • Customizable video dimensions and aspect ratios
  • High-performance video rendering with optimized playback

Canvas Editing

  • React-based canvas library built with Fabric.js
  • Live edit of media and text elements with drag-and-drop
  • Move, resize, and rotate elements directly on canvas
  • Coordinate conversion between video and canvas space
  • Element reordering by z-index

Media Utilities

  • Audio, video, and image metadata extraction
  • Image and video dimension handling with object-fit calculations
  • Audio duration detection and thumbnail generation
  • File download and blob management utilities
  • Media type detection from URLs

Live Player

  • Video playback component with custom controls
  • Project data support for complex video configurations
  • Time tracking and duration management
  • Play/pause state management with React hooks

Visualizer

  • Interactive visualizations built on 2D graphics
  • Animation and effect rendering for timeline elements
  • Real-time preview of video compositions

Available Packages

  • @twick/timeline: Core timeline management with CRUD operations and visitor pattern
  • @twick/video-editor: Complete video editing interface with timeline and controls
  • @twick/canvas: React-based canvas library for live element editing
  • @twick/live-player: Video playback component with project data support
  • @twick/media-utils: Utilities for handling media files and metadata
  • @twick/visualizer: Video visualization and animation toolkit
  • @twick/examples: Example implementations and usage demonstrations

Getting Started

To get started with any package, check out its specific documentation in the sidebar. Each package's documentation includes:

  • Installation instructions
  • Basic usage examples
  • API reference
  • Advanced usage patterns

Contributing

We welcome contributions! Please check out our GitHub repository for more information on how to contribute.