An open-source mobile camera app for serious content creators. Shoot with proper scene/take metadata baked into capture, then export clean, editor-ready data to Resolve, Premiere, or Final Cut.
Tap Good / NG / Circle the moment a take ends. A week later, you (or your
editor) jump straight to the good takes — no scrubbing through IMG_4471.mov.
Status: pre-alpha. Building toward v0 (mobile-only). See SPEC.md for the full design and CHANGELOG.md for what's shipped.
- Rust core (
core/) — domain types, sidecar JSON IO, SQLite storage, CLI. - UniFFI bindings (
core/slateboard-ffi/) —ProjectHandleand helpers exposed to Kotlin and Swift. - JSON Schema (
schema/take-v0.1.json) — the sidecar contract. - Smoke tests for the bindings — Kotlin (
android/smoke-test/) and Swift (ios/SmokeTest/). - Android / iOS apps — not yet (see SPEC.md §14).
The CLI is the spine — it proves the data model works end-to-end before any mobile UI exists.
cd core
cargo run -p slateboard-cli -- --helpQuick walkthrough:
# 1. create a project in ./myshoot
cargo run -p slateboard-cli -- init ./myshoot --name "Apartment vlog ep 3"
# 2. add a scene + setup
cargo run -p slateboard-cli -- --project ./myshoot scene add 1 \
--name "rooftop confrontation" --int-ext EXT --day-night DAY
cargo run -p slateboard-cli -- --project ./myshoot setup add 1 C \
--shot-type MS --lens-notes "26mm equiv"
# 3. register a take pointing at a recorded video file
cargo run -p slateboard-cli -- --project ./myshoot take add 1 C \
--video ./S02C-T04.mp4 \
--status CIRCLE \
--notes "best one, slight wind noise"
# 4. dump sidecar JSON
cargo run -p slateboard-cli -- --project ./myshoot dumpThe bindings wrap the same Rust core the CLI uses. Build scripts produce the platform-specific artifacts:
# Android — .so files + Kotlin bindings into android/core-bindings/
# prereqs: cargo install cargo-ndk; rustup target add aarch64-linux-android
# armv7-linux-androideabi x86_64-linux-android i686-linux-android
# set ANDROID_NDK_HOME
core/scripts/build-android.sh
# iOS — SlateboardCore.xcframework + Swift bindings into ios/
# macOS only; prereqs: rustup target add aarch64-apple-ios
# aarch64-apple-ios-sim x86_64-apple-ios
core/scripts/build-ios.shBoth scripts accept --release for optimized builds.
See CONTRIBUTING.md. New contributors look at issues labeled
good first issue.
Slateboard is a solo, unfunded side project. It is Apache 2.0 and will stay that way: no ads, no telemetry, no account required, no paid tier for the capture app.
If the idea is useful to you and you'd like to keep it moving, you can sponsor me on GitHub Sponsors — one-off or monthly, whatever suits.
If you're in India, UPI is the most direct route (no platform fee):
abhishek.bagati@ybl
Money is appreciated, but these are worth more right now:
- Shoot something real with the CLI or an alpha build and tell me where it broke. Bug reports from actual shoots are the bottleneck, not code.
- Star and share the repo — reach is what brings contributors.
- Pick up a
good first issueif you write Rust, Kotlin, or Swift.
Apache 2.0 — see LICENSE.