Overview
Arkly is a personal media archive. It is mobile-first, built in Flutter, and concerned with a simple failure of modern software: we save enormous amounts of photos and video, then never really look at them again.
The problem
Default galleries and cloud lockers are good at intake and bad at attention. Media disappears into dates, albums and search. The original reason you kept something — that it was worth seeing again — gets lost in storage semantics. I wanted an archive that behaves more like a place you visit than a backup you hope you will never need.
The idea
The product should make revisiting the default. That means the archive is organised around looking: scrolling, collecting, returning to things you care about. The media already on the phone is the starting point. The software should respect that these files are personal, heavy and easy to mishandle.
Product / design decisions
Arkly is a phone product first, because that is where the media lives and where looking actually happens. The early design treats originals with caution — references and metadata rather than a second, hungry copy of someone's life. Video is not a second-class citizen sitting under a photo grid; it has to be as easy to enjoy as an image. Collections exist to make meaning, not to recreate folders.
Engineering
The client is Flutter and Dart. Spring Boot sits in the wider architecture for the server-side pieces of the product. On device, the hard problems are media access, performance with large libraries, and a scrolling experience that stays fluid when the files are videos rather than thumbnails. A personal archive also has to be boring in the right ways: it should not surprise you by moving, duplicating or deleting originals.
Challenges
Phones are hostile environments for this kind of software. Permissions, large files, incomplete simulator data, and the difference between a photo and a video all show up immediately. The product also has to draw a line between 'a nicer gallery' and 'an archive you return to'. That line is design, not a library.
What I learned
Storage is not the same as memory. If the interface only files things away, people will not come back. I also learned that media products are won or lost on trust: once software feels careless with originals, it does not get a second chance.
Current status
Early, in active development. There is no public store listing to share yet. This case study will grow as the product does.
Links
Repository links are on GitHub where the code is public. I am not publishing internal or employer code here.