Started working on a simple app to record Win. Tension. Gratitude. I do this via pen and paper and always wanted a simple app that captures the same thing on my phone.
One sentence per day removes the friction. The constraint is the product.
One-tap daily journal. Capture the day in Win · Tension · Gratitude.
Started working on a simple app to record Win. Tension. Gratitude. I do this via pen and paper and always wanted a simple app that captures the same thing on my phone.
One sentence per day removes the friction. The constraint is the product.






I just got 1day Journal ready for App Store review.
1day is a small iOS app for daily reflection. The core interaction is intentionally narrow: open the app, answer a few prompts, and move on with the day. No feed, no social layer, no complicated dashboard. The product is basically a quiet writing surface with enough structure to make starting easy.
The current build includes the parts I wanted for a real first release:
The app started as a simple journaling prototype, but the release version became a full small-product exercise: persistence, privacy, widgets, iCloud, app metadata, screenshots, App Store review requirements, and all the little submission details that only show up once you are actually trying to ship.
The app is built with SwiftUI and SwiftData. XcodeGen generates the Xcode project from project.yml, which keeps project configuration reviewable instead of burying every change inside the Xcode UI.
The app uses:
I also added a small gated screenshot harness for App Store assets. It launches real app views with seeded sample data when a screenshot-only environment variable is set. That made the screenshots repeatable without adding fake paths to the normal app flow.
Getting the app ready for review was more than pressing Archive.
I had to add privacy manifests, verify export compliance, generate the Xcode project, build for simulator, archive for iOS, and upload to App Store Connect. The first upload attempt failed because Apple had account contracts waiting to be accepted. Once those were accepted, the archive uploaded and started processing.
The metadata pass had its own checklist:
I created static support and privacy pages in the repo so the App Store listing has stable public URLs. I also wrote a submission copy file with all the fields I needed to paste into App Store Connect.
One annoying detail: screenshots from current simulators are not always dimensions App Store Connect accepts for a given upload slot.
The raw iPhone 17 Pro Max screenshots came out as 1320x2868. App Store Connect wanted one of:
So I generated upload-ready copies at 1284x2778 from the captured screenshots and kept the originals as reference assets. This is exactly the kind of thing that feels trivial until it blocks the submit button.
The app does not try to solve journaling as a giant system. It tries to make one daily reflection easier to start and easier to keep private.
That constraint made a lot of product decisions clearer. The writing screen is quiet. The prompts are simple. The calendar exists so entries can be revisited, not so the app can become an analytics dashboard. The privacy posture is straightforward: entries live on the device, and iCloud sync uses the user's Apple account if they turn it on.
There are a few things I would like to keep improving after review:
For now, the important milestone is that 1day Journal has crossed from "project" into "submitted product."
That is always a different kind of finish line.
The earlier milestone was the point where 1day stopped feeling like a thin prototype and started behaving like an app I could actually use every day.
Build 7 added iCloud sync across devices, daily reminders, custom prompts, the Win · Tension · Gratitude prompt set, and a redesigned radial timer control. Those changes mattered because they moved the app beyond the writing surface itself. The product now had memory, rhythm, and a small amount of personal fit.
Build 6 set up the foundation right before that: a streak counter, calendar entry dots, double-tap editing, a smoother saved indicator, and auto-resume for incomplete entries. None of those are giant features on their own. Together, they made the app feel less fragile.
That version was useful because it made progress visible. The calendar showed that entries were accumulating. The streak made daily use legible. Auto-resume made it safer to start even if I only had a minute.
The learning from that phase was simple: for a journaling app, reliability is part of the emotional design. A quiet interface is not enough if the app forgets where you were, makes past entries hard to find, or creates doubt about whether the writing was saved.