ULink
A personal showcase of the systems behind a modern social platform: multimedia publishing, relationships and privacy, stories and reels, and realtime messaging, built on a vanilla-JS frontend rather than a framework.
Social Model
Privacy as a first-class relationship state
Public and private accounts, followers and follow requests, blocking, muting, restricting and close-friend tagging.
Every relationship state feeds directly into what a viewer can see: the feed, discovery and messaging all respect it rather than treating privacy as a single global toggle.
Publishing
Posts, reels and stories
Posts
Up to 10 images/videos per post with captions, location, carousel behavior, filters, likes, comments, replies and saves.
Reels
A vertical, viewport-based browsing experience with play/pause, looping, likes and comments; no algorithmic recommendation engine.
Stories
Image/video with text overlays, 24-hour expiry, navigation, deletion and highlights.
Realtime Messaging
The strongest technical piece of ULink
One-to-one and group conversations with persistent history, delivered over an authenticated WebSocket connection layered on SQLite persistence.
Discovery
Chronological, relationship-aware, not algorithmic
The feed is chronological and respects each viewer's relationship and privacy state.
Discovery covers an explore grid, account search, post search, caption/location search and hashtag-style caption search: simple creator discovery, not algorithmic ranking. Persistent, realtime notifications cover likes, comments and follows; messaging has its own separate unread/live behavior.
Profile
Posts, reels and account control in one place
Account settings cover profile details, privacy, password and account deletion from a single settings panel.
Stack
Technology
Frontend
Backend
Database & Realtime
Auth & Media