Version: 1.1 Date: 04.10.2025 Status: Active
Let's face it - keeping track of everyone in your life is hard. This document outlines Freundebuch, a digital friendship book designed for real people, not sales teams.
We're building a web application that takes your basic address book and transforms it into a relationship management tool. Think of it as having a personal assistant who remembers everyone you know, when you last talked, and when you should reach out again.
The app works great for individuals or families who want to stay better connected with the people in their lives. Plus, it syncs seamlessly with your phone and other devices through standard CalDAV/CardDAV interfaces.
See brand.md for our brand guidelines and terminology.
Primary Goals:
- An address book that actually helps you maintain relationships, not just store phone numbers
- Tools to help you remember to stay in touch with the people who matter
- Multi-user support so families can manage contacts together
- Seamless sync with your existing devices using CalDAV/CardDAV
- A web app you can host yourself or use our hosted version
Secondary Goals:
- Make it intuitive - you shouldn't need a tutorial to get started
- Keep your data private and under your control
- Easy migration from Google Contacts, Apple Contacts, or whatever you're using now
- Flexible deployment whether you're technical or not
- Enterprise sales tools - this isn't for managing leads or pipelines
- Complex automation workflows - we're keeping it simple and focused
- Business tool integrations - this is for your personal life, not work
- Native mobile apps - our responsive web app works great on phones for now
- Social media integration - maybe later, but not part of the initial plan
- Friend Management - Your address book, but with all the context you actually need
- Encounter Management - Track encounters and build the history of your relationships
- Reminder System - Never forget to reach out again
- Categorization & Organization - Organize contacts your way with circles and tags
- Multi-User Management - Share contacts with family or housemates
- CalDAV/CardDAV Interface - Sync seamlessly with your phone, computer, and other devices
- Import/Export - Move your data in and out easily - no lock-in
- Activity Timeline - See your relationship history at a glance
- Dashboard & Insights - Get the big picture of your social network
- Search Functionality - Find anyone or anything, fast
What it does: This is your contact database on steroids. We're storing way more than just phone numbers and email addresses.
What you get:
- All the basics (name, address, phone, email)
- The good stuff:
- Profile pictures so you remember faces
- Birthdays and important dates (no more forgotten anniversaries!)
- How and where you met (was it that conference in 2019?)
- Their interests and hobbies (great conversation starters)
- What they do for work
- Social media profiles if you want them
- Custom fields for whatever else matters to you
- Multiple addresses, phone numbers, and emails per person
- Map relationships between contacts (partners, kids, siblings, coworkers)
- Add notes whenever you think of something important
Why it's different: We care about the context and story of your relationships, not just the data points.
Description: Documentation and tracking of relationship history with each person.
Scope:
- Encounter Log:
- Manual recording of meetings, calls, messages
- Date, type, notes for each encounter
- Attachments (photos, documents)
- Last Encounter:
- Automatic display of last contact
- Time span since last contact
- Relationship Quality:
- Contact frequency tracking
- Optional categorization (close friend, acquaintance, etc.)
- Shared Experiences:
- Linking events/activities with multiple people
- Photo albums for shared experiences
Description: Proactive support for contact maintenance through intelligent reminders.
Scope:
- Automatic Reminders:
- "Person X not contacted for Y days/weeks"
- Configurable thresholds per contact or circle
- Birthday reminders (configurable lead time)
- Manual Reminders:
- "Contact X again on [date]"
- Recurring reminders (e.g., monthly)
- Reminder Channels:
- In-app notifications
- Email notifications
- Optional: Browser push notifications
- Snooze & Dismiss:
- Postpone reminders or mark as done
Description: Flexible organization of contacts according to various criteria.
Scope:
- Circles:
- Predefined circles (family, friends, work, club, neighbors)
- Custom circles
- Hierarchical circles (e.g., Friends > School Friends)
- One contact can belong to multiple circles
- Tags:
- Free tag assignment (e.g., #Hiking, #Cooking, #Tech)
- Tag cloud for quick navigation
- Tag-based filters
- Favorites:
- Marking especially important contacts
- Quick access to favorites
- Archiving:
- Archive contacts (not delete)
- Separate view for active/archived contacts
Description: Shared use of the friend database within families or households.
Scope:
- User Accounts:
- Registration and authentication
- Password management
- Profile management
- Family/Group Spaces:
- Creation of shared workspaces
- Invitation of members
- Role-based permissions (admin, member, read-only)
- Contact Ownership:
- Personal contacts (visible only to one user)
- Shared contacts (visible to all group members)
- Conflict resolution for simultaneous editing
- Activity Tracking:
- Who created/edited which contact
- Change history
Description: Standards-compliant interfaces for synchronization with external applications.
Scope:
- CardDAV:
- Full vCard support (RFC 6350)
- Synchronization of contacts with:
- Smartphone address books (iOS, Android)
- Desktop applications (Thunderbird, Outlook, etc.)
- Other CardDAV clients
- Bidirectional synchronization
- Conflict handling
- CalDAV:
- iCalendar support (RFC 5545)
- Synchronization of:
- Birthdays as calendar events
- Reminders as tasks/appointments
- Encounter history as calendar entries (optional)
- Multiple calendars (e.g., "Birthdays", "Meetings")
- Authentication:
- Basic Auth, OAuth 2.0
- App-specific passwords
Description: Easy migration from and to other systems.
Scope:
- Import:
- vCard (.vcf) - single and multi-import
- CSV import with field mapping
- Google Contacts export
- Apple Contacts export
- Deduplication assistant after import
- Export:
- Full export as vCard
- Selective export (individual contacts, circles)
- CSV export for further processing
- Backup function (complete data export incl. metadata)
- Data Cleansing:
- Duplicate detection
- Merge function for duplicate contacts
- Validation of data formats (email, phone, etc.)
Description: Chronological display of all encounters and events.
Scope:
- Per-Contact Timeline:
- All encounters in chronological order
- Birthdays, anniversaries
- Notes with timestamp
- Filter by encounter type
- Global Timeline:
- Overview of all activities across all contacts
- Filter by date, person, type
- "Today", "This Week", "This Month" views
- Visualization:
- Timeline view
- Calendar view
- List view
- Quick Entry:
- Quick-add for new encounters
- Templates for frequent encounter types
Description: Overviews and statistics for contact maintenance.
Scope:
- Dashboard Widgets:
- Upcoming birthdays (next 30 days)
- Overdue contacts ("Haven't seen in a long time")
- Contact statistics (total, new this week/month)
- Activity overview (encounters this week)
- Top contacts (by encounter frequency)
- Insights:
- Contact frequency analysis
- Circle distribution (pie chart)
- Encounter trends (temporal development)
- Identify "neglected" contacts
- Personalization:
- Widget arrangement customizable
- Selectable metrics
- Time period filters
Description: Powerful search across all contact data.
Scope:
- Full-Text Search:
- Search across name, notes, tags, circles
- Fuzzy search (typo-tolerant)
- Autocomplete during input
- Advanced Filters:
- Combined filters (circle + tag + time period)
- Saved searches/filters
- "Last contacted" filter
- Birthday time period
- Sorting:
- By name (A-Z)
- By last encounter
- By creation date
- By encounter frequency
- Result Preview:
- Contact card with most important info
- Highlighting of search terms
Frontend:
- Modern web technology (React, Vue, Svelte or similar)
- Responsive design (mobile-first)
- Progressive Web App (PWA) capabilities optional
- Offline capability (Service Worker) as future extension
Backend:
- RESTful API or GraphQL
- Authentication & authorization (JWT, session-based)
- CalDAV/CardDAV server component
- Database (PostgreSQL, MySQL or similar)
Deployment:
- Docker-based for easy installation
- Configurable for FOSS (self-hosting) or SaaS
- Environment variables for configuration
- Reverse proxy compatible (nginx, Traefik)
- End-to-end encryption of sensitive notes (optional)
- HTTPS-only
- GDPR compliance (data export, deletion)
- Audit log for all data changes
- Rate limiting
- CORS configuration
- Input validation & sanitization
- Page load time < 2 seconds
- Search results < 500ms
- Support for at least 10,000 contacts per user
- Optimistic UI updates
- Lazy loading of lists
- Caching strategy
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Last 2 major versions
- Mobile browsers (iOS Safari, Chrome Mobile)
Protocols & Standards:
- vCard 4.0 (RFC 6350) - CardDAV
- iCalendar (RFC 5545) - CalDAV
- WebDAV (RFC 4918) - basis for CalDAV/CardDAV
- OAuth 2.0 (RFC 6749) - authentication
Optional Integrations:
- Email delivery (SMTP) for notifications
- Gravatar for profile pictures
- Geocoding service for addresses (Google Maps, OpenStreetMap)
API Endpoints (Examples):
/api/contacts- CRUD for contacts/api/encounters- encounter tracking/api/reminders- reminder management/api/circles- circle management/api/users- user management/caldav/- CalDAV endpoint/carddav/- CardDAV endpoint
Data Model Relationships:
- User → Contacts (1:n)
- User → Circles (1:n)
- Contact → Encounters (1:n)
- Contact → Reminders (1:n)
- Contact → Circles (n:m)
- Contact → Tags (n:m)
- Circle → Users (n:m) - for multi-user
Import Formats:
- vCard (.vcf)
- CSV
- JSON (for backup/restore)
Export Formats:
- vCard (.vcf)
- CSV
- JSON
- PDF (for printing individual contacts or lists)
Let's start with the basics that make this useful:
- Feature 1: Friend Management (the core database)
- Feature 4: Categorization (organize with circles & tags)
- Feature 10: Search (find what you need)
- Feature 5: Multi-User (authentication and basic setup)
Now we add the features that make staying in touch easier:
- Feature 2: Encounter Management (track your encounters)
- Feature 3: Reminder System (never forget to reach out)
- Feature 8: Activity Timeline (see the full history)
- Feature 9: Dashboard (get the big picture)
Finally, let's make it work with everything else:
- Feature 6: CalDAV/CardDAV (sync with your devices)
- Feature 7: Import/Export (move data in and out)
- Feature 9: Dashboard (enhanced insights)
- Performance tuning (make it fast!)
Bring back the original Freundebuch experience:
- Self-Service Friend Pages (let friends fill out their own pages)
- See Epic 13 for details
- Multi-tenant from day one, or add it later?
- How should the SaaS pricing work?
- What's the best backup strategy?
- Hard delete contacts or soft delete (archive)?
- Which languages should we support initially?
- CalDAV: Calendaring Extensions to WebDAV - protocol for calendar synchronization
- CardDAV: vCard Extensions to WebDAV - protocol for contact synchronization
- Circle: A way to organize friends in Freundebuch (replaces traditional "groups")
- FOSS: Free and Open Source Software
- Freundebuch: German for "Friendship Book" - a childhood tradition digitized for adults
- MVP: Minimum Viable Product
- Page: A friend's profile in your Freundebuch
- PWA: Progressive Web App
- SaaS: Software as a Service
- vCard: Electronic business card format
End of Document