I built a small mobile app that shows you all the photos and videos you took on this exact calendar day across past years.
I started working on it after realizing that I almost never revisit my photo library. I take thousands of photos, but most of them just sit there. Existing “On This Day” features worked, but they always felt tied to cloud uploads, accounts, and algorithmic resurfacing — which didn’t sit well with me for something as personal as memories.
So I wanted to explore a different approach.
Ayer is fully local-first: • 100% on-device (no cloud, no sync) • No account, no login • No analytics, no tracking • Zero network calls — airplane mode works
The idea is very simple: you pick a date (or open the app today) and you see what you captured on that same day in previous years. Sometimes it’s joyful, sometimes it’s heavy, sometimes it’s completely ordinary — but revisiting memories by date gives them context rather than ranking them by “importance”.
A few details that might interest this crowd: • It handles large photo libraries (30k+ photos) smoothly • Navigation is date-first, not feed-based • Optional “then vs now” collages are generated locally • Built with React Native, using system photo APIs only
This isn’t meant to replace Apple Photos, Google Photos, or Lightroom. It’s more like a quiet, focused space that sits alongside them, designed for reflection rather than optimization.
If anyone is curious, it’s available on iOS and Android: https://www.chapiware.com/ayer/
I’d genuinely love feedback — especially from people who care about local-first software, privacy trade-offs, or performance with large datasets.
Thanks for reading.
samwellx•1mo ago
chapiware•1mo ago
Media assets are treated as immutable entities, and all the date-based navigation is built on top of lightweight indexes derived from capture timestamps (day/month/year). That way the same asset can appear across multiple views without duplication or recomputation.
It also keeps memory usage predictable when dealing with large libraries, since views are essentially projections rather than separate collections.
The main constraint is that everything has to stay fast and incremental, because it’s all happening on-device with no background preprocessing or server-side help.
Curious if you’ve used a similar approach elsewhere — it felt like the simplest way to keep things both flexible and cheap