Reframe runs entirely in the browser with no server calls during video processing. This makes it a perfect candidate for a Progressive Web App that users can install to their home screen and use offline.
What to build
-
Add a public/manifest.json (or app/manifest.ts for Next.js App Router):
name, short_name, description
start_url: "/"
display: "standalone"
icons at 192x192 and 512x512 (create simple reframe logo icons)
-
Add a <link rel="manifest"> to src/app/layout.tsx
-
Register a service worker that caches the app shell for offline use (the FFmpeg.wasm assets can be cached after first load):
- Use Next.js
next-pwa or write a lightweight custom service worker
- Cache strategy: network-first for HTML, cache-first for wasm/js assets
-
Add an "Install app" button that appears when the browser fires beforeinstallprompt
Important constraint
This project uses output: "export" (static export). Middleware, API routes, and server-side features are not available. The service worker must be a static file in public/.
Acceptance criteria
Screen Recording Required
Your PR for this issue must include a screen recording showing the feature working on your local machine (bun run dev → http://localhost:3000). PRs without a recording will not be merged.
See CONTRIBUTING.md for how to record.
Reframe runs entirely in the browser with no server calls during video processing. This makes it a perfect candidate for a Progressive Web App that users can install to their home screen and use offline.
What to build
Add a
public/manifest.json(orapp/manifest.tsfor Next.js App Router):name,short_name,descriptionstart_url: "/"display: "standalone"iconsat 192x192 and 512x512 (create simple reframe logo icons)Add a
<link rel="manifest">tosrc/app/layout.tsxRegister a service worker that caches the app shell for offline use (the FFmpeg.wasm assets can be cached after first load):
next-pwaor write a lightweight custom service workerAdd an "Install app" button that appears when the browser fires
beforeinstallpromptImportant constraint
This project uses
output: "export"(static export). Middleware, API routes, and server-side features are not available. The service worker must be a static file inpublic/.Acceptance criteria
bun run buildsucceeds without errorsScreen Recording Required
Your PR for this issue must include a screen recording showing the feature working on your local machine (
bun run dev→ http://localhost:3000). PRs without a recording will not be merged.