Core Features
Posts and Feed
Users create text posts with optional image or video attachments. Images are resized and compressed server-side. Videos are transcoded to multiple resolutions. The news feed shows posts from followed users, ranked by a scoring algorithm that considers recency, engagement (likes + comments), and the viewer's interaction history with the poster. Infinite scroll loads more posts as the user scrolls down. Pull-to-refresh fetches the latest content.
Real-Time Messaging
1:1 and group messaging with real-time delivery via WebSocket. Messages support text, images, videos, and file attachments. Read receipts show who has seen each message. Typing indicators show when someone is composing. Message search finds conversations by keyword. Group chats support up to 256 members with admin controls (add/remove members, mute, pin messages).
Notifications
Push notifications for likes, comments, follows, messages, and mentions. In-app notification feed shows all activity in a timeline. Notification batching groups multiple likes on the same post ("John and 5 others liked your post") to prevent notification spam. Users configure which notification types they want via settings. Delivered via Firebase Cloud Messaging on mobile and Web Push API on desktop.
User Profiles
Profiles show bio, profile picture, cover photo, post count, follower count, following count, and a grid of their posts. Users can set profiles as public or private. Private profiles require follow approval before their posts appear in the follower's feed. Profile editing supports bio, links, and profile/cover photo upload with cropping.