Inspiration

When my partner and I were forcibly long-distance during COVID travel restrictions, we looked for ways to stay connected in a meaningful way. One ritual we created was sharing a single photo each day — a moment we felt best captured our experience. At the end of each day, we’d exchange those snapshots. It made us feel part of each other’s lives, and over that year apart, this simple act played a big role in keeping our stories tied together.

Picking just one photo gave it such meaning. It reminded me me more of how my parents treasured their photos, where they would anticipate the development of their disposable film photos and curate the best holiday photos to slide into a coffee-table album, or stick on the fridge. It also reminded of what we've lost with digital photography's pixel-perfect cameras, reality-altering filters, and limitless space: photos have lost their soul.

1nstant was born from this experience as an attempt brings the intention, authenticity, and soul of film photography to the convenience of digital, encouraging people to take less, but treasure more photos.

I chose instant photography as the inspiration for my app because it captures the modern values of speed and simplicity while preserving what makes film photography so timeless: its imperfections, its sense of anticipation, and its tangible, physical presence.

What it does

1nstant (pronounced "One Instant") is both an instant photo camera and a daily photo journal.

The in-app camera captures Polaroid-style square photos that slowly develop over time, reacting to the “temperature” of your film (aka your phone) — making each image truly one-of-a-kind. No AI touch-ups, just prints you can caption with a handwritten note.

A photo I took using 1nstant

Fresh photos land in your Pocket: a camera roll with real-world constraints. Your Pocket only holds 10 photos (customisable with a premium sub), so when you snap a photo that will take you over the limit, the oldest photo is moved to the bin. This simple limit encourages you to look back at your shots, keep the best (or share them immediately) and let go of the rest without clogging up your storage.

You shuffle through photos in your Pocket like they're in your hand

From there, you can save or share photos, or add them to an Album. Albums act as photo journals where you can only add one photo per calendar day. Over time, they build into a beautiful, intentional record of your life (or your cat's life?), one meaningful moment at a time.

Albums, just like the ones you slide photos into

You've probably noticed from the screenshots that a key design principle of mine was to visually and conceptually represent the tangible nature of instant photography without sacrificing all the best conveniences of digital. For example, the Album covers are SVGs designed to look like those classic coffee table photo albums you can slide images into. Also the Photos viewed from your Pocket shuffle from one to the next in a custom built image carousel, as if you've pulled them out to sift through in your hand. Unfortunately this meant I had to build a lot of the apps widgets from scratch, but I believe it helps bring the core values of the app to life.

How I built it

I’d never built a mobile app before this project, but as both a photographer and a Product Owner between jobs (and hungry for a new challenge) I decided to dive in.

I chose Flutter for its strong community, multi-platform support, and approachable syntax (especially since my only coding background was in PHP). My “team” was essentially a GitHub Copilot license (paired with Claude, ChatGPT) and Google Gemini. I did some value and user mapping in Jira, mocked up prototype screens in Figma, and then turned user stories and acceptance criteria into PRDs I could feed into RooCode in VS Code. I aimed to silo features to better focus the AI agents and limit their context to only what they needed to know for a given feature set, though that was easier said than done as the project grew.

Within a week, I had a working prototype… no small feat considering I hadn’t even heard of Dart before starting! From there, I scoped a releasable MVP in Jira, set what I thought to be a generous three-month deadline, and sprinted toward it. That’s when the real challenges kicked in.

Challenges I ran into

As my Dart skills grew, so did technical debt. At first, I wasn’t properly vetting the AI-generated code, which led to lots of refactors down the line — especially around lists and widget trees. Getting the app to handle infinite calendars and long photo lists smoothly took plenty of rewrites.

Another key challenge was sticking to my goal of keeping the app account-free and offline-first. I didn’t want to build yet another social network, because that’s where authenticity gets lost. This choice reduced friction for users, but added complexity under the hood: everything had to process on-device. That meant learning about isolates, and swapping out my database solution twice as my tables and queries grew.

Accomplishments I'm proud of

The feature I’m proudest of was also the hardest: dynamic image development.

Temperature readings dynamically and uniquely change every exposure outside of ideal temperatur for instant film

At first, I used stock filters from a Dart camera plugin, but they looked flat and were heavy on CPU performance. Discovering an OpenGL package changed everything. With fragment shaders, I could simulate the slow reveal of instant film, channel by channel, while introducing effects like heat and cold damage that reads weather and battery temp data to simulate the beautifully volatile nature of film chemistry.

I also applied LUTs (familiar from my filmmaking days) to replicate the color and tonal depth of real instant film. The result? Rich, textured, soulful images. Even now, thousands of photos later, I still find myself watching them develop with the same sense of anticipation.

What I learned

Where do I begin? I learned how to build and launch an app, how to “manage” a team of AI developers without losing the plot (or my mind), and how to balance ambition with pragmatism.

With my Product Owner hat on, I also got a nice reminder of what it’s like to work on the frontline when AI couldn’t get the job done, and how easy it is for scope-creep to sneak up on you when you get obsessive about a single feature.

There are many things I’d approach differently if I started over. I’d probably choose a less ambitious first project, for one. But honestly, without AI nudging me to believe I could make something as ambitious as 1nstant, I probably never would have tried at all.

What’s next for 1nstant

Aside from an iOS release, I’ve started shaping a loose roadmap based on early feedback. The main post-launch focus is engagement and long-term value: making sure users not only enjoy the act of capturing moments, but also find meaning in building their albums.

I’ve added streaks, and plan to introduce achievement badges tied to rewards like unlockable film stocks. I also want to expand frames inspired by real-world instant film (think Instax and Polaroid) each with its own character.

For users who prefer fewer limitations, I plan to offer Premium unlocks through RevenueCat, giving them the flexibility to use the app in their own way.

Since publishing the app, my favorite thing has been when friends and family share an instant from their day — not only letting their personality shine through each photo and caption, but revealing a moment that feels honest, yet captured with intention, just like photos of days gone by.

Built With

Share this project:

Updates