Refactor: Extract shared code into reusable modules
- Create $lib/types.ts with AuthorProfile type (uses Pick from lexicon types)
- Create $lib/server/profiles.ts with fetchProfile, fetchProfiles, getProfileOrFallback
- Create $lib/utils/formatting.ts with formatTimeAgo (compact option), getDomain
- Update all route files to use shared profile helpers
- Update Svelte components to use shared formatting utilities
This eliminates duplicate code across:
- 4 files with profile fetching logic
- 4 files with AuthorProfile/UserProfile interfaces
- 2 files with formatTimeAgo implementations
- 2 files with getDomain implementations
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>