Camera reports in your browser. Nothing leaves your device.
Luna ingests camera media entirely client-side, extracts metadata and thumbnails, and generates production-ready camera reports — no upload, no install, no account.
Open Luna · Docs · Disclaimer
Luna is built for DITs and camera assistants. Point it at a card or a folder of clips — everything runs locally in the browser:
- Detects reels and groups clips per camera roll
- Extracts per-clip metadata (camera, lens, ISO, shutter, color space, frame rate, duration, …)
- Generates evenly-spaced thumbnails with accurate seeking
- Produces clean, sharable camera reports with PDF and CSV export
- Raw formats (ARRIRAW, BRAW, R3D, Canon RAW) get metadata-aware handling; generic codecs (ProRes, H.264/265, DNxHD, …) get the full decode pipeline
Browser support: Chromium-based browsers (Chrome, Edge, Arc, Brave) — Luna relies on the File System Access API and WebCodecs.
Bun workspace:
| Path | Package | What it is |
|---|---|---|
apps/web |
@luna-web/app |
The tool — Vite + React 19 + TanStack Router |
apps/docs |
@luna-web/docs |
Docs site — Astro Starlight |
apps/desktop |
@luna-web/desktop |
Tauri desktop shell wrapping apps/web |
packages/core |
@luna-web/core |
Pure logic: scanning, reels, metadata, report model |
tools/analysis |
— | Throwaway clip-analysis scripts |
Requires Bun (package manager) and Vite+ (vp — build, test, lint, format, task runner).
vp install # installs via bun
bun run dev # run the app (vp dev)
bun --filter '@luna-web/docs' dev # run the docs site (astro dev)
bun run test # package unit tests (Vitest via vp)
bun run test:tools # release-script tests (bun test)
vp check # format + lint + type check in one pass
bun run typecheck # authoritative tsc/astro type gates
bun run build # build everything (cached vp run)apps/desktop additionally needs a Rust toolchain (stable-msvc) that no other workspace
requires; root bun run dev is filtered to ./apps/web and deliberately doesn't start it —
run it from apps/desktop instead (bun run dev, once Rust is installed).
- React 19 + Vite + TanStack Router/Store/Form
- Tailwind CSS 4 + Base UI + shadcn-style components
- mediabunny + WebCodecs — decode & thumbnails
- mediainfo.js + ffmpeg.wasm — container/codec metadata
- @react-pdf/renderer — PDF reports
- Astro Starlight — documentation site
This section is about the original .NET/Avalonia desktop app, not apps/desktop
(a separate, unreleased Tauri shell around the web app — see the Repo Layout table above).
Luna started life as a .NET/Avalonia desktop app. It has been retired in favor of the web version and is preserved in full:
- Code: branch
archive/dotnet/ tagdotnet-final - Installers: existing releases remain downloadable but receive no further updates
PRs welcome. File an issue first so the design can be discussed, and keep changes scoped. By submitting a contribution, you agree it is licensed under the same MIT License as the rest of the project.
Luna is licensed under the MIT License — use it, fork it, ship it commercially; just keep the copyright notice. See NOTICE for the third-party components Luna is built on and their licenses. The name "Luna" and the logo are not licensed for use in derivative branding.
Luna is an independent project and is not affiliated with, endorsed by, or sponsored by ARRI, Blackmagic Design, Sony, or any other camera manufacturer. All product names, logos, and brands are property of their respective owners. See DISCLAIMER.md.
Built by Shaked Lipszyc