Friend Notes helps you stay close to the people who matter most.
Track friends, birthdays, meetings/events, and gift ideas in one private, local-first app.
Friend Notes is built for people who want a lightweight personal CRM without complexity.
It turns scattered mental notes into a simple, searchable workflow on iPhone.
Friend Notes is designed as a personal relationship manager that stays lightweight and practical in daily life.
- Build and maintain a clear friend database with name, nickname, birthday, tags, favorites, and personal profile context.
- Store rich friend-specific notes in structured categories like hobbies, food preferences, music, movies/series, and free-text notes.
- Keep relationship history alive by adding entries and context over time instead of losing details in chats or memory.
- Plan meetings and events with exact date/time, participants, type, and notes so plans are visible and easy to manage.
- Create events directly in context of a friend or from the calendar flow.
- Track everything in two planning modes: calendar view for date-based planning and upcoming list for near-term priorities.
- Capture gift ideas globally and per friend, including notes and links, and mark items as completed once gifted.
- Configure reminder behavior for birthdays, meetings, events, long time no see, and post-meeting follow-ups.
- Open the right screen directly from notifications via deep-link routing.
- Manage reusable global friend tags centrally in settings and assign them quickly across profiles.
- Use the app fully offline with local data persistence and local notifications.
- Switch between German and English with built-in localization.
Swift+SwiftUISwiftDatafor persistenceUserNotificationsfor local remindersXCTestfor unit testsLocalizable.strings+ lightweightL10nhelper for localization
The app follows a feature-first SwiftUI architecture with a clear separation of concerns:
Domain: core models (Friend,Meeting,GiftIdea,FriendEntry) and localization helperFeatures: screen-level UI grouped by business feature (Friends,Calendar,Gifts,Meetings,Settings)Services: cross-cutting services such as notification scheduling/routingUI: reusable components and visual theme primitivesApp: app entry point and support utilities
Key decisions:
- Local-first data model with
SwiftData(no backend dependency). - Shared notification scheduler that rebuilds reminders from persisted models + global settings.
- Centralized global settings via
@AppStorage.
- macOS with Xcode 26.2+
- iOS Simulator or device with iOS 26.2+
- Open the iOS project:
cd apps/Friend\ Notes open "Friend Notes.xcodeproj"
- Select the Friend Notes scheme.
- Select an iPhone simulator/device.
- Build and run (
Cmd + R).
- In Xcode:
Cmd + U - Test target:
Friend NotesTests
friend-notes/
├─ apps/
│ └─ Friend Notes/
│ ├─ Friend Notes.xcodeproj
│ ├─ Friend Notes/ # iOS app source
│ │ ├─ App/ # App entry + app-level support
│ │ ├─ Domain/ # Models + localization
│ │ ├─ Features/ # Feature modules (Friends/Calendar/Gifts/...)
│ │ ├─ Services/ # Notification and other services
│ │ └─ UI/ # Shared UI components + theme
│ └─ Friend NotesTests/ # Unit tests
├─ assets/
│ └─ design/ # Logo/icon source files and exports
├─ docs/
│ └─ screenshots/ # App screenshots used in docs
├─ README.md
└─ LICENSE
- Create friends in the Friends tab.
- Add profile context (tags, birthday, notes, interests).
- Schedule meetings/events via Calendar or from a friend profile.
- Track gift ideas in Gifts and assign them to friends.
- Configure reminder behavior in Settings.
- No API keys or external services are required.
- Notifications require user permission at runtime.
- Global notification behavior is configured in app settings.
- Global friend tags are managed centrally in settings and reused across profiles.
This project is licensed under the terms of the LICENSE file.


