Overview
Stelify is a music streaming and artist collaboration platform purpose-built for the Tunisian music ecosystem. Unlike global streaming giants that often overlook regional artists, Stelify provides a dedicated space where Tunisian musicians can showcase their work, build their audience, and connect with fans and fellow artists. With a growing catalog of over 8,100 songs from 149 registered artists, the platform has established itself as a meaningful hub for local music discovery. The project is live in production, representing a real deployment serving actual users.
Key Features
Music Streaming
The streaming engine delivers audio playback with a full-featured player interface including play/pause, skip, seek, volume control, queue management, and shuffle/repeat modes. The audio player persists across page navigation, allowing continuous listening while browsing. Tracks are streamed adaptively based on connection quality, with preloading of the next track in queue to eliminate gaps between songs. The streaming architecture handles concurrent users with efficient resource utilization through Redis-based session management and CDN-compatible asset delivery.
- Persistent Player - Audio playback continues uninterrupted across page transitions with a fixed bottom player bar
- Queue Management - Add tracks to queue, reorder, remove, and save queues as playlists
- Adaptive Streaming - Quality adjustment based on network conditions with preloading for gapless playback
- Browse and Discover - Explore music by genre, mood, popularity, release date, and curated collections
Artist Profiles
Each artist has a dedicated profile page that serves as their home on the platform. Profiles display the artist's biography, discography, total views and likes, social media links, and upcoming events. Artists can customize their profile with a cover image, avatar, and featured tracks. View and like counts are tracked per track and aggregated at the profile level, providing artists with visibility into their audience engagement. The profile system supports verified artist badges to distinguish official accounts from fan pages.
Event Listings
Artists can promote upcoming performances, concerts, and appearances through the events feature. Event listings include venue details, date and time, ticket information, and a description. Events appear on both the artist's profile and in a platform-wide events calendar, helping fans discover live music opportunities. Past events are archived with photos and setlists when provided by the artist.
Track Library
The track library provides users with a personal space to organize their favorite music. Users can like tracks to add them to their library, create custom playlists, and access their listening history. The library interface supports sorting by recently added, most played, and alphabetical order. Playlist sharing generates unique links that other users can follow to discover the curated collections.
Contact System
A built-in contact system enables communication between artists, fans, and platform administrators. Artists can receive messages from fans and industry contacts through their profile, with notification preferences controlling how and when they are alerted. The contact system also handles platform support requests and feedback submissions.
Technical Implementation
Stelify is architected as a Turborepo monorepo containing the main Next.js 15 application, shared component libraries, and utility packages. The data layer uses Prisma ORM with PostgreSQL, modeling the relationships between artists, tracks, albums, playlists, users, events, and engagement metrics. MinIO provides S3-compatible object storage for audio files, album artwork, artist photos, and user avatars. Redis handles session caching, rate limiting, playback state synchronization, and real-time engagement counter updates. Socket.IO powers real-time features including live listener counts and notification delivery.
- Turborepo monorepo with shared packages for consistent code reuse across applications
- Next.js 15 with App Router for server-rendered pages and streaming UI
- Prisma ORM with PostgreSQL for music catalog data modeling and engagement tracking
- MinIO for S3-compatible audio file and image storage
- Redis for session management, caching, rate limiting, and real-time counters
- Socket.IO for real-time notifications and live engagement features
Deployment and Infrastructure
Stelify is deployed on self-hosted infrastructure using Coolify as the deployment platform. The entire application stack runs as Docker containers orchestrated by Coolify, with Traefik serving as the reverse proxy and handling automatic SSL certificate provisioning via Let's Encrypt. PostgreSQL, Redis, and MinIO each run as dedicated Coolify-managed services with persistent volumes and automated backup schedules. The deployment pipeline triggers automatically on pushes to the main branch, building optimized Docker images and performing zero-downtime rolling updates. Server management includes monitoring resource utilization, managing Docker volumes, and maintaining Traefik routing configurations across multiple services.
Purpose and Context
Stelify was developed to give Tunisian artists a platform of their own in an industry dominated by global streaming services that prioritize established international acts. By focusing specifically on the local music scene, Stelify can offer features and curation tailored to regional tastes while providing artists with better visibility and engagement tools than they would receive as small fish in the vast oceans of Spotify or Apple Music. The project demonstrates production-grade full-stack development with real-time streaming infrastructure, self-hosted DevOps with Coolify and Docker, and the ability to build and maintain a live product serving actual users.



