Privacy Policy
Last updated September 9, 2026
Nostaliga is built by Dinakar Tumu (contact: dinakartumu@gmail.com). This policy describes what Nostaliga does and does not do with your data. It applies to the Nostaliga iOS and iPadOS apps and to this website.
The short version
- There is no Nostaliga account to create. Your memory timeline and imported history are stored and assembled on your device, not in a Nostaliga server database. Photos from your device's library are not uploaded.
- Connected services receive requests for the history you choose to bring in. Some authentication exchanges and movie or TV artwork lookups pass through Nostaliga's servers, as explained below.
- We do not use advertising identifiers, behavioral analytics, or cross-app tracking. Apple diagnostic reports are stored locally; Nostaliga does not automatically upload those reports to us.
- Our website and server endpoints are hosted by Vercel, which processes network requests and infrastructure logs. If you use the website's launch-notification form, we also receive the email address you submit.
Authentication through our servers
When you connect Strava, Trakt, or Swarm (Foursquare), Nostaliga sends an
authorization code to an HTTPS endpoint under
nostaliga.app/api/strava/*,
nostaliga.app/api/trakt/*, or
nostaliga.app/api/foursquare/*. For services that require
token refreshes, refresh tokens also pass through these endpoints.
The server adds the service's client secret, exchanges the code or token
with that service, and returns the response to your device. This keeps
application secrets out of the app.
Last.fm uses nostaliga.app/api/lastfm/session. Your temporary
Last.fm authorization token is sent to this endpoint, which signs a
session request with the Last.fm shared secret and returns Last.fm's
response, including your session key and username, to your device.
Listening-history requests are then made directly to Last.fm.
The legacy Spotify authorization and token-refresh endpoints have been retired. Spotify listening is available through history imports or Last.fm scrobbles instead of a direct Spotify connection.
These authentication handlers process requests in memory and do not write authorization codes, access tokens, refresh tokens, or session keys to an application database. They do not fetch your memory timeline or imported archives. The returned credentials are stored in your device's Keychain. Hosting logs are described below.
Artwork and other network requests
To display posters, backdrops, and episode images alongside Trakt watch
history, the app sends movie or TV identifiers and, when needed, season
and episode numbers to nostaliga.app/api/tmdb/artwork or
nostaliga.app/api/tmdb/still. Our server uses these values to
look up artwork from The Movie Database (TMDB). These identifiers can
reveal which titles the app is displaying; the request does not include
your Trakt credentials or the full watch-history record.
The server returns artwork URLs, and your device downloads images directly from TMDB's image service. Artwork lookup responses use a shared hosting cache configured for seven days, with up to one additional day while revalidating. See TMDB's privacy policy. Album artwork and other remote media also require requests to the relevant provider or image host, which receives ordinary network information such as your IP address and the requested resource.
Maps and Apple system services may make network requests to Apple to provide map content, music information, or song recognition. Those services are subject to Apple's privacy policy and your device settings.
Hosting and request logs
The website and server endpoints run on Vercel. Requests expose network information, including IP addresses and requested URLs, to the hosting service. Infrastructure and error logs may include request paths, parameters, response status, and diagnostic information. These logs are used to operate and troubleshoot the service, not to build advertising profiles. Log retention is governed by Vercel's service settings and policies; it is separate from the in-memory authentication processing described above. See Vercel's privacy policy.
The server source is available at github.com/dinakartumu/nostaliga-web.
What Nostaliga accesses on your device
- Photo library (with your permission) — to surface photos near the timestamps of songs, workouts, and places. Photo matching happens on-device. Photos are not uploaded, copied off-device, or transmitted.
- Apple Music activity (with your permission) — to show songs you have played. Nostaliga reads from the Apple Music system; nothing is written back without an explicit action.
- HealthKit data (with your permission) — workouts and their routes, shown alongside your music history and on maps. Nostaliga does not request step-count or sleep data. It does not upload your HealthKit records to Nostaliga's servers or use them for advertising.
- Calendar (with your permission) — to place events on your timeline alongside your music and activities. Calendar records are read and stored on-device; Nostaliga does not upload them to its servers.
- Local storage — Nostaliga keeps your imported history in an on-device SQLite database, managed by GRDB, plus local media files, preferences, artwork caches, map indexes, and widget snapshots. Stored memories remain until you remove them through the available source controls or delete the app's data. Device backups are governed by your Apple backup settings.
- Keychain — OAuth tokens for each third-party service you connect are stored in the iOS Keychain, device-only, not backed up to iCloud.
- Microphone and song recognition (with your permission) — when you start song recognition, Apple's ShazamKit listens to identify music around you. Nostaliga does not save an audio recording or send one to its own servers. Recognition is handled by Apple's service, and the identified song can be shown in the app.
- Diagnostics — the app saves performance and diagnostic reports supplied by Apple's MetricKit framework in local app storage. Nostaliga does not automatically send these files to us. Apple's own diagnostic sharing is controlled by your device settings.
Third-party services you can connect
The services below provide history or media that you choose to connect or import. Account connections use the provider's authorization flow. Authentication exchanges and artwork requests may use the Nostaliga endpoints described above; history requests otherwise go directly from your device to the relevant service. Each provider also applies its own privacy policy to the requests it receives.
| Service | What we read | Their privacy policy |
|---|---|---|
| Spotify | Listening history — via Last.fm scrobbles or the data export you import; no direct Spotify connection | spotify.com |
| Last.fm | Scrobbles | last.fm |
| Trakt | Watch history | trakt.tv |
| Swarm / Foursquare | Check-ins, venue metadata | foursquare.com |
| Strava | Activities, routes | strava.com |
| Adobe Lightroom | Catalog, asset metadata, and photo renditions in existing or development builds; not offered for new connections in the upcoming public release | adobe.com |
Integration data is used to build and display your personal memories. The artwork lookups described above send title identifiers to TMDB; Nostaliga does not publish your timeline or provide a social feed.
Imported archives
For Twitter / X, Instagram, and Facebook, Nostaliga does not connect to those services at all. Instead, you download your own data archive from each service and add it to Nostaliga yourself. The archive is unpacked and processed entirely on your device — its posts and media are kept in the local database, and nothing is uploaded or sent back to those services or to us.
This website
Everything above describes the app. This website has one place where you can choose to give us something: the notify form on the home page. If you enter your email address there, it is sent to us so we can email you once — when Nostaliga is released. We do not add you to a marketing list, sell the address, or use it for unrelated marketing, and you can ask us to delete it at any time by emailing dinakartumu@gmail.com. The form sends your address through Resend to our notification inbox, where it is retained so we can send the launch notice or handle your deletion request. Resend and our email provider process that message to deliver and store it. The website also loads fonts from Google Fonts, which receives the corresponding network requests; see Google's privacy policy. Hosting requests and logs apply even if you do not use the form.
What we do not do
- No behavioral analytics or advertising SDK.
- No automatic upload of the app's local MetricKit reports to Nostaliga.
- No advertising identifier (IDFA) is read or requested.
- No "tracking" in the sense defined by Apple's App Tracking Transparency framework.
- No selling of personal data to any party, ever.
Your control
- Disconnect a service at any time from Settings → Integrations. The OAuth token is removed from Keychain. History-deletion behavior and available controls vary by source; the app's confirmation explains what will be removed.
- Remove all data — use the disconnect and imported-history deletion controls available for each source in Settings. There is no single erase-all control. Disconnect accounts before deleting the app to remove their Keychain credentials; deleting the app removes its local database and caches, but Keychain entries can survive app deletion. Copies in device backups are managed through your Apple backup settings.
- Revoke server-side access at each connected service's website (for example, Strava → My Apps). Disconnecting in Nostaliga removes the local token; revoking on the service's site invalidates it globally.
Changes to this policy
We will post the updated policy on this page and revise the "Last updated" date above. The current policy is accessible from the app's Settings and this website.
Contact
Questions about this policy or about your data: dinakartumu@gmail.com.