Browser Compatibility¶
PhotoPrism ships a single-page app that targets evergreen browsers. The loader script at assets/static/js/browser-check.js (rendered through assets/templates/index.gohtml) blocks unsupported clients before Vue boots, so keep this page aligned with the logic in that script.
Supported Platforms¶
- Chrome, Edge, and Firefox: latest stable versions on Windows, macOS, and Linux
- Safari 13+ on macOS and iOS 13+ (the splash screen warns older iOS devices)
- Chromium-based mobile browsers that ship with modern ES2019 features
Internet Explorer is not supported. Legacy Android WebView builds without ES modules or Fetch support will hit the browser-check warning.
When introducing APIs that may not exist on the minimum baseline (for example AbortController on Safari 13), add a capability check or a lightweight polyfill under assets/static/js/browser-check.js.
Testing¶
- Run the Vitest unit suite (
make vitest-watch) on every UI change. - Use the “Devices” tab in Chrome DevTools or Safari’s Responsive Design Mode to spot layout regressions on phones and tablets.
- BrowserStack remains free for open-source projects and is the easiest way to test on edge versions of Safari, iOS, and legacy Android without owning physical devices.
- Capture baseline screenshots for new layouts via the Playwright workflows documented in
AGENTS.mdso we can diff rendering changes over time.