Skip to content

dctmfoo/withful

Repository files navigation

withful

License: MIT Platform App Store

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.

What it does

  • 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.

Architecture

  • 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 (see docs/localization/).
  • XcodeGen — the Xcode project is generated from project.yml.

Build

make gen         # generate withful.xcodeproj from project.yml (XcodeGen)
make test-unit   # build + run unit tests on a simulator

Signing: 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 ID

then 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).

Agent governance

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.

Privacy

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.

Naming

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.

Related work

Part of a portfolio of consumer apps and agent-governance tooling built with Codex and Claude Code:

License

MIT © 2026 dctmfoo

About

withful: family moments — shipped App Store family journal (175 countries, en/fr/zh; SwiftData+CloudKit, 5 widget surfaces, App Intents) built end-to-end with OpenAI Codex and Claude Code as governed agents

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors