withful is a gentle, private family-moments journal for iPhone and iPad. You notice the time you spend with the people who matter most — kids, partner, parents, a friend — protect it, and do a little more of it. Reminders invite, never nag; insights encourage, never score.
It is shipped on the App Store ("withful: family moments",
App Store ID 6782300577), live in 175 countries and localized in English,
French, and Simplified Chinese.
Built end-to-end by coding agents. withful was designed and implemented with OpenAI Codex and Claude Code operating as governed contributors under an explicit agent contract (
AGENTS.md): tests-as-contract, per-slice checkpoints, receipt-driven localization, and session journals. This repository is the real production source, published as a portfolio artifact of agent-assisted software delivery.
- Quick, warm logging of moments with the people in your life.
- Reflection, not scorekeeping — a "You" tab that grows with your history.
- Gentle reminders that invite you to reach out, tuned per relationship.
- On-device intelligence for cadence nudges and "on this day" resurfacing.
- SwiftUI app targeting iOS 26 (iPhone + iPad), ~36K lines of Swift.
- SwiftData + private CloudKit — your data lives only in your own iCloud; there is no app backend and no analytics of your family data.
- WidgetKit — four home/lock-screen widgets (Family Glance, Person Glance, Reminders Today, Quick Log) plus a Control Center quick-log control.
- App Intents — a Siri/Shortcuts person entity so you can log by voice and deep-link into a person.
- Localization pipeline — a string-catalog (
.xcstrings) workflow with per-locale verification receipts (seedocs/localization/). - XcodeGen — the Xcode project is generated from
project.yml.
make gen # generate withful.xcodeproj from project.yml (XcodeGen)
make test-unit # build + run unit tests on a simulatorSigning: DEVELOPMENT_TEAM ships unset, and no signing is needed for the
simulator lanes above. To build to your own device or archive, put your values
in an untracked Makefile.local at the repo root (picked up automatically,
gitignored — never committed):
APPLE_TEAM_ID := XXXXXXXXXX # your Apple Developer Team IDthen make install-device. One-off env vars work too
(APPLE_TEAM_ID=XXXXXXXXXX make install-device), or add your team to the
target in Xcode. The TestFlight/App Store lanes additionally expect the
maintainer's provisioning-profile UUIDs and App Store Connect IDs in
Makefile.local — forks distributing their own build supply their own.
Requires Xcode 26+ and XcodeGen
(brew install xcodegen).
The repo carries the working discipline that made autonomous, high-trust agent delivery possible:
AGENTS.md— the operating contract both Codex and Claude Code follow (voice, identity, tests-as-contract, checkpointing)..claude/hooks/— session-journal hooks that keep a durable record of what changed and why.docs/localization/— the receipt-driven localization runbook and per-locale verification receipts.make release-readiness/make test-unit— the gates every change passes before it lands.
Family data lives only in the user's own iCloud (SwiftData + private CloudKit) — there is no server that sees it. This repository contains no real user data: every fixture person, screenshot, and demo name (Mia, Noah, Hazel) is fictional.
The app was developed under the working name FamilyTime and shipped as
withful. You may still see the internal project folder name in a few local
paths; the product, module, bundle, and all user-facing surfaces are withful.
Part of a portfolio of consumer apps and agent-governance tooling built with Codex and Claude Code:
dctmfoo/gaurava— shipped iOS appdctmfoo/intelli-expense— receipt/expense app with an agent write bridgedctmfoo/stepback— coaching app with an agent write bridgedctmfoo/workspace-bootstrap— agent-governance patterns (Codex + Claude Code in parity)
MIT © 2026 dctmfoo