Add rrweb-based session recording feature.

Implements full session recording with rrweb for DOM capture and rrweb-player
for playback. Includes: Prisma schema for SessionRecording model, chunked
gzip-compressed storage, recorder script built via Rollup, collection API
endpoint, recordings list/playback UI pages, website recording settings,
and cascade delete support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Mike Cao 2026-02-06 15:49:59 -08:00
parent b9eb5f9800
commit 72b5c658e2
36 changed files with 1131 additions and 21 deletions

View file

@ -7,6 +7,7 @@ import {
Tag,
User,
UserPlus,
Video,
} from '@/components/icons';
import { Funnel, Lightning, Magnet, Money, Network, Path, Target } from '@/components/svg';
import { useMessages } from './useMessages';
@ -94,6 +95,12 @@ export function useWebsiteNavItems(websiteId: string) {
icon: <Magnet />,
path: renderPath('/retention'),
},
{
id: 'recordings',
label: formatMessage(labels.recordings),
icon: <Video />,
path: renderPath('/recordings'),
},
],
},
{