Rapid Keyboard Shortcuts & Hotkey Culling
Master lightning-fast photo curation with zero mouse lag using single-key shortcuts.
Ergonomic Single-Key Culling
Manual curation fatigue is the primary bottleneck in post-production. Reaching for a mouse or trackpad to click buttons on every frame slows your selection speed to 2 to 3 seconds per photo. Across a 3,000-photo wedding catalog, this adds 2.5 hours of unproductive mechanical clicking.
BestShots.AI features a comprehensive, single-stroke keyboard engine that allows photographers to cull 1,000+ images in under 15 minutes.
The Two-Finger Culling Workflow
The most ergonomic posture for rapid culling uses both hands simultaneously:
- Left Hand: Index finger on D (Discard) and middle finger on K (Keep).
- Right Hand: Fingers on ← and → arrow keys (or numeric pad).
The Two-Finger Ergonomic Posture
Simultaneous dual-hand culling for maximum throughput
Because decisions apply optimistically in 0 milliseconds, you can advance through images at the maximum speed your eyes and brain can evaluate focus and expression.
Comprehensive Shortcut Reference
Core Culling & Rating Keys
| Key | Action | Behavior Details |
|---|---|---|
| K | Mark as Keeper | Sets curation status to KEEP and applies a 5-star rating. When multiple photos are selected in the gallery, all selected frames are marked as Keepers simultaneously. |
| D | Mark as Discard | Sets curation status to DISCARD and marks the photo as rejected. When multiple photos are selected, all selected frames are discarded. |
| R | Reset Decision | Clears keeper or discard status, reverting the photo back to UNREVIEWED and restoring default star rating. |
| 1 to 5 | Set Star Rating | Explicitly assigns a 1-to-5 star rating (<xmp:Rating>) to the active photo or active multi-selection. |
| 0 | Clear Rating | Removes all star ratings from the active photo. |
Navigation & Viewing Controls
| Key | Action | Behavior Details |
|---|---|---|
| → / J | Next Photo | Advances to the next photo in the current gallery or burst stack. |
| ← / H | Previous Photo | Moves back to the preceding photo in the gallery or stack. |
| Space | Open / Toggle Viewer | Opens the selected photo in high-resolution full-screen preview. If already open, toggles 100% 1:1 pixel zoom centered on the primary detected face. |
| I | Toggle Inspector | Slides open the Photo Inspector drawer, revealing detailed camera EXIF tags, face detection chips, and AI score breakdowns. |
| Esc | Escape / Close | Closes full-screen viewer, dismisses active modals or drawers, or deselects all highlighted photos. |
Batch Selection & Export Actions
| Key | Action | Behavior Details |
|---|---|---|
| Ctrl + A / ⌘ + A | Select All | Selects all photos matching the active filter and search criteria in the gallery view. |
| Shift + Click | Range Select | Selects a contiguous block of photos between the first and last clicked frames. |
| E | Open Export | Opens the Export Dialog configured to bundle selected photos with XMP sidecars into a downloadable ZIP archive. |
| Shift + ? | Shortcuts Cheat Sheet | Opens the in-app keyboard shortcuts cheat sheet overlay from anywhere in the application. |
0ms Optimistic UI Updates
When culling under deadline pressure, waiting for round-trip HTTP requests causes severe stutter and missed keypresses. BestShots implements full optimistic UI updates via TanStack Query:
Cancel Outgoing Queries
Abort active photo queries to prevent race conditions.
Snapshot Cache State
Capture exact pre-mutation state as a rollback anchor.
Instant Local Mutation (0ms)
Update Keeper/Discard badge and counter without network delay.
Async Server Dispatch
Send background PATCH /api/photos/[id] network request.
Invalidate queries and silently synchronize server state in background.
Automatically rollback to snapshot anchor and display an informative toast.
- Immediate Visual Feedback: Pressing K or D immediately updates the UI badge, color borders, and counters within 0ms. There is zero delay before pressing the next arrow key.
- Safe Rollback: If a temporary network interruption occurs, the client automatically restores the previous state and informs you via a non-intrusive toast notification.
- Background Batching: Multiple rapid keyboard actions are batched cleanly into non-blocking background network mutations.
Keyboard Scoping & Form Isolation
BestShots prevents accidental hotkey triggers through strict contextual scoping:
- Input Isolation: Whenever focus is inside any text input field, search box, tag editor, or feedback dialog, all culling hotkeys are automatically suspended. Pressing K types the letter "k" rather than marking an image.
- Modal Prioritization: When an inspection modal or full-screen viewer is visible, navigation keys focus exclusively on the viewer context. Pressing Esc safely exits the modal before affecting the background gallery selection.