Connect Nostr, integrate place photos #45

Merged
raucao merged 56 commits from feature/nostr_place_reviews into master 2026-04-22 09:32:00 +00:00
Owner

Allows users to connect their Nostr identity via Web extension, or signing app with QR code scan, or signing app on Android via intent (iOS following later).

Marco will fetch a user's profile, avatar image, configured Blossom servers, and inbox and outbox relays. All of these will be cached. The app settings have been broken up into sub sections and there is a new section for Nostr settings. Users can edit their relays (only for usage in Marco) and choose to publish photos to all available servers instead of just their main/default/first one.

Once connected, they can upload photos for places, based on our new draft NIP (kind 360, see doc/nostr).

While browsing the map, Marco fetches and caches available photo events in the background. When opening a place, it also ensures we fetch events directly by OSM ID.

When there are photos available, it displays a carousel and preloads any photos currently in view as well as the next one(s). Blurhashes are rendered while photos are loading. On desktop, it shows one photo at a time, on mobile it shows multiple smaller photos side by side. Both allow to scroll horizontally. On desktop there are chevron buttons for easy browsing, while finger scrolling is preferred on mobile.

A photo gallery with full-size/zoomed view will be added later.

refs #7
closes #43
closes #44

Allows users to connect their Nostr identity via Web extension, or signing app with QR code scan, or signing app on Android via intent (iOS following later). Marco will fetch a user's profile, avatar image, configured Blossom servers, and inbox and outbox relays. All of these will be cached. The app settings have been broken up into sub sections and there is a new section for Nostr settings. Users can edit their relays (only for usage in Marco) and choose to publish photos to all available servers instead of just their main/default/first one. Once connected, they can upload photos for places, based on our new draft NIP (kind 360, see `doc/nostr`). While browsing the map, Marco fetches and caches available photo events in the background. When opening a place, it also ensures we fetch events directly by OSM ID. When there are photos available, it displays a carousel and preloads any photos currently in view as well as the next one(s). Blurhashes are rendered while photos are loading. On desktop, it shows one photo at a time, on mobile it shows multiple smaller photos side by side. Both allow to scroll horizontally. On desktop there are chevron buttons for easy browsing, while finger scrolling is preferred on mobile. A photo gallery with full-size/zoomed view will be added later. refs #7 closes #43 closes #44
raucao added the feature label 2026-04-22 09:22:21 +00:00
raucao added 56 commits 2026-04-22 09:22:22 +00:00
Introduces a dedicated blossom service to tie everything together
Uploading multiple large files at once can fail easily
Wasn't the same between main menu and sub menus
Adds a setting to control if photos should be uploaded only to the
main/default server, or all known servers of a user.

Only upload to the main server by default, to speed up adding photos.
Shows the blurhash and fades in the image once downloaded
Can be used in gallery later
Correct color, hide while disabled
See NIP changes for reasoning. It also keeps the UI a bit cleaner and
we don't have to queue processing on mobile for mass uploads.
Also implements a short term cache for OSM place data, so we can load it
multiple times without multiplying network requests where needed
Only preload photos in view as well as the next one(s), not all of them
Reset scroll position when switching between places
All checks were successful
CI / Lint (pull_request) Successful in 36s
CI / Test (pull_request) Successful in 1m3s
Release Drafter / Update release notes draft (pull_request) Successful in 7s
fe41369754
raucao merged commit 6c5c1fea27 into master 2026-04-22 09:32:00 +00:00
raucao deleted branch feature/nostr_place_reviews 2026-04-22 09:32:07 +00:00
Sign in to join this conversation.