For extension authors and core contributors.
The fastest way to extend Safelight — no fork required. Ship a panel, tool, theme, or display transform as a GitHub repo and users install it from the in-app store.
- Building Extensions — orchestrator model, repo anatomy, manifest, and the build
- Contribution Types — what you can register, with examples
- Debugging — the in-app Developer Tools and live-load loop
- Publishing — store listing, thumbnail, README, metadata
The complete SafelightAPI surface, split by topic.
- API Overview — the
SafelightAPIobject and imperative controls - UI Shell — modules, panels, slots, layouts
- UI Components — the component kit (Slider, Panel, …), theming tokens, building buttons
- Contribution Types — signatures for every
register*call - State Stores & Tools —
api.stores, the brush/mask/retouch model,api.develop - Core Data Types —
CatalogPhoto,DevelopParams - Subsystems — storage, rendering, RAW, presets, export, broadcast, keybindings, Electron bridge
- Architecture — the blind-orchestrator model, render path, RAW pipeline, Electron shell
- Contributing — setup, code style, where things live, workflow
New to the project? Read Architecture first — the "everything is an extension" model shapes everything else.