React Video Player and Video Gallery Component
// npm install react-elfsight-widget
import { ElfsightWidget } from "react-elfsight-widget";
export function VideoGallery() {
return <ElfsightWidget widgetID="YOUR-WIDGET-ID" />;
}
// The component adds Elfsight's platform.js for you —
// and won't add it twice if it's already on the page.Trusted by over 3,000,000 small businesses, agencies and top global brands worldwide
Configure it visually — drop it into your React app
- 1. Choose a template
- 2. Connect your videos
- 3. Add to website
Why build a video gallery in React from scratch?
What building it yourself really takes
Fetching and caching
Player and popup
Vertical video
Layouts
SEO and analytics
Maintenance
Client edits
With Elfsight Video Gallery
<VideoGallery id="YOUR-ID" />No API keys or quotas in your app
Feeds from YouTube, Vimeo, TikTok, Instagram Reels, Twitch and any link
7 layouts, popup player, CTA card
Schema.org markup and Google Analytics
Maintained by Elfsight when platforms change
Drop-in integration for React
The React component
Official component. react-elfsight-widget from npm — the same component Elfsight support recommends for React and Gatsby.
Loads the script for you. No manual platform.js tag; it’s added once, even with several widgets.
Works with Vite, CRA, Gatsby and Remix. A regular React component with one prop: widgetID.
// npm install react-elfsight-widget
import { ElfsightWidget } from "react-elfsight-widget";
export function VideoGallery() {
return <ElfsightWidget widgetID="YOUR-WIDGET-ID" />;
}
// The component adds Elfsight's platform.js for you —
// and won't add it twice if it's already on the page.Performance and security
Async and lazy
No dependencies
No keys in your code
Works with strict security policies
Customize it like code — or don’t write any
Custom CSS
Custom JS
Visual editor
Filters and sorting
Hand off to clients
No redeploys
Everything the widget does for you

YouTube

TikTok

Instagram Reels

Vimeo

Twitch

Any video link

Popup player

CTA after the video

Schema.org markup

Channel header

Analytics events
Elfsight vs. building with React libraries
Time to ship
Video Gallery
Build with player libraries
Sources
Video Gallery
Build with player libraries
API keys in your app
Video Gallery
Build with player libraries
Feeds update automatically
Video Gallery
Build with player libraries
Layouts, popup, CTA card
Video Gallery
Build with player libraries
Schema.org and Google Analytics
Video Gallery
Build with player libraries
Custom styling and behavior
Video Gallery
Build with player libraries
Clients edit content without you
Video Gallery
Build with player libraries
Maintenance when APIs change
Video Gallery
Build with player libraries
Need DRM, custom analytics pipelines or a fully bespoke player? Build it — start with our Video.js vs react-player vs hls.js comparison.