Pawpress shipped today on both stores. One daily photo of your pet becomes a magazine-style cover with a mood reading. No timeline, no follows, no comments. The press just opens the next blank spread when you arrive.
Most pet apps default to the feed pattern — endless scroll, social comparison, more dopamine, less keepsake. Pawpress is the opposite: a slow ritual, one cover per day, archived by date, worth flipping back to a year from now.
What's in the first issue
- One photo → AI reads body language → one of ten moods earns a headline
- Ten moods to read against: joyful, cozy, curious, sleepy, dramatic, mischievous, zen, melancholy, grumpy, longing
- A magazine-style cover with a pull-quote in the pet's "voice", dated and filed
- Multiple pets supported — each one runs its own publication
- Three free readings per day. No paywall. No ads.
- Anonymous sign-in by default. Photos stay in your private archive; delete the issue, delete the photo.
The framing decision that took the longest was treating the cover as a keepsake rather than a post. A post wants engagement; a keepsake wants to be re-opened months later. Everything else — the typography, the issue numbering, the deadpan voice that refuses baby-talk — falls out of that one choice.
What the build looked like
The hard parts weren't the AI. The OpenAI Vision call is around six seconds end-to-end and the prompt fits on one page. The hard parts were:
- Voice. Every other pet app defaults to "hooman" and exclamation marks. Getting the model to write like a magazine column — dry, observed, occasionally absurd — took more prompt iterations than the vision logic itself. "I was not consulted on breakfast. Please notify my office." over "OMG I'm hungry!!"
- Anti-feed UX. No social, no profile, no follows. Just the home masthead and your back-issues grid. Resisting the urge to add a community layer was the actual product work.
- Cover quality. A watercolor-style illustration, magazine typography, tabular figures, a real type scale with a 64pt Display weight for the mood headline. The cover has to be screenshot-worthy on its own — that's the whole loop.
- Quota. Three readings per local day per user, atomic counter in Firestore so racing taps across pets can't overflow. We track local-day instead of UTC so a user can't bypass the limit by hopping timezones.
- App Check. Play Integrity on Android, App Attest on iOS, enforced server-side. The OpenAI key lives in Google Secret Manager and never ships in the binary.
Available now
English and Russian at launch, with more languages on the way.
Next
For a daily ritual the only metric that matters early is return rate — do readers come back tomorrow? Watching that. Everything else is noise.