diff --git a/app/sites/[id]/pagespeed/page.tsx b/app/sites/[id]/pagespeed/page.tsx
index 843a396..33d5f3e 100644
--- a/app/sites/[id]/pagespeed/page.tsx
+++ b/app/sites/[id]/pagespeed/page.tsx
@@ -403,6 +403,26 @@ export default function PageSpeedPage() {
+ {/* Filmstrip — page load progression */}
+ {currentCheck?.filmstrip && currentCheck.filmstrip.length > 0 && (
+
+
+ {currentCheck.filmstrip.map((frame, idx) => (
+
+

+
+ {frame.timing < 1000 ? `${frame.timing}ms` : `${(frame.timing / 1000).toFixed(1)}s`}
+
+
+ ))}
+
+
+ )}
+
{/* Section 2 — Metrics Card */}
diff --git a/lib/api/pagespeed.ts b/lib/api/pagespeed.ts
index d3f4654..f3d811e 100644
--- a/lib/api/pagespeed.ts
+++ b/lib/api/pagespeed.ts
@@ -26,6 +26,11 @@ export interface AuditSummary {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type AuditDetailItem = Record
+export interface FilmstripFrame {
+ timing: number
+ data: string
+}
+
export interface PageSpeedCheck {
id: string
site_id: string
@@ -42,6 +47,7 @@ export interface PageSpeedCheck {
tti_ms: number | null
audits: AuditSummary[] | null
screenshot?: string | null
+ filmstrip?: FilmstripFrame[] | null
triggered_by: 'scheduled' | 'manual'
checked_at: string
}