Open source by design

Built in the open. Inspect the code, or build it yourself.

License

Lap is licensed under GPL-3.0-or-later — a copyleft license that keeps the project free for everyone.

Architecture

LayerTechnology
Tauri + RustCore desktop framework
Vue + ViteFrontend UI
Tailwind CSSStyling
SQLiteLocal data storage
ONNX RuntimeLocal AI inference
CLIPImage-text similarity search
InsightFaceFace detection & recognition
LibRawRAW decoding
FFmpegVideo processing
LeafletGeotagged photo map

Contribute

Issues, feature requests and pull requests are welcome on GitHub. Whether you're fixing a bug or adding a translation, contributions help everyone.

View source code Report an issue

Why GPL-3.0 matters

Lap is licensed under GPL-3.0-or-later. A copyleft license lets anyone read, use, modify and redistribute the code, but derivatives must keep the same freedoms. For a photo manager that holds a personal library, that matters: the project cannot be closed off, bought and turned into a subscription, or shipped as a build that quietly uploads your photos.

How it is built

The application is a Tauri desktop app. Rust handles file operations, indexing and decoding; the interface is Vue with Vite and Tailwind CSS; the catalog lives in a local SQLite database. AI runs through ONNX Runtime with CLIP for image-text similarity and InsightFace for faces. LibRaw and libheif decode RAW and HEIC files, FFmpeg handles video, and Leaflet draws the map view.

What runs on your machine

There is no server component. The catalog, thumbnails, AI models and caches all live on your disk. The AI models are downloaded once and run through ONNX Runtime locally, so search and face features work without a network connection and no image leaves the machine. That is the point of a local-first photo manager: the code is public, and you can see exactly what it does with your files. There is no telemetry to opt out of and no account to create.

Build from source

Building Lap needs Node.js 20+, pnpm and a stable Rust toolchain, plus a few system packages for the image and video libraries. Clone the repository with its submodules, download the AI models and the FFmpeg sidecar, install the frontend dependencies, then run the Tauri dev command. The exact commands for macOS, Windows and Linux are in the repository README.

Ways to contribute

  • Report a bug or a crash, with steps to reproduce, on the issue tracker.
  • Open a pull request for a fix or a new feature.
  • Add or improve a translation — Lap ships translated READMEs and interface strings.
  • Improve the documentation for install, formats or troubleshooting.

Issues, feature requests and pull requests are welcome. If you are unsure where to start, the issue tracker is the place to ask. Bug reports are more useful with your operating system, the Lap version and the exact steps that led to the problem, and large changes are easier to review when they are split into small pull requests. You can also read the privacy policy, check supported formats, or see the full feature list.