Real-Time Peer Support Platform for Mental Wellness
A role-based mental wellness platform built in-house, where every interaction depends on secure, instant chat.

3
User Role Types
100%
Real-Time Chat Delivery
JWT
Secured WebSocket Auth
Why a Listening Platform Needed to Be Built, Not Bought
Mental health support has a gap that sits below the level most people call a crisis. Plenty of people are not in emergency territory. They need someone who will listen, without judgement, without a diagnosis attached, and without the cost or waiting list that comes with formal therapy. Most existing platforms force a binary choice: a clinical system with intake forms and licensed providers, or an unstructured forum with no accountability and no real connection between two people.
Lissnify was built to sit in that middle space on purpose. The product connects people seeking emotional support, called Seekers, with trained Listeners through a role-based platform covering discovery, connection requests, live conversation, community discussion, and feedback. It is explicit throughout that this is peer support, not a replacement for professional care or emergency services.
Akoode built Lissnify end-to-end as an internal product. Role-based onboarding for seekers, listeners, and administrators. Listener discovery by support category. A connection-request workflow. Private real-time chat over secured WebSockets. A community space, a full notification system, ratings and feedback, and an administrative CMS for running the platform day to day.
3
Role-Based Experiences
Seeker, Listener, and Administrator dashboards built on one shared data model.
100%
Real-Time Message Delivery
Chat, presence, and notifications all run over the same authenticated WebSocket layer.
JWT
Secured Sockets
Every chat and notification connection resolves a verified user at the protocol level.
Full CMS
Platform Operations
Administrators manage users, connections, categories, blogs, and testimonials without engineering support.
Project Info
Client
Confidential, India
Industry
Mental Health and Wellness
Use Case
Peer-to-Peer Emotional Support Platform
Solution
Full-Stack Web Application with Real-Time Communication
Engagement
Internal Product Development
What Challenges Do Peer Support Platforms Face in Delivering Trustworthy Real-Time Conversation?
A platform like Lissnify lives or dies on one interaction: a Seeker and a Listener talking in real time, both trusting the conversation is private, responsive, and actually reaching the other person. Underneath that simple requirement sits a set of problems a typical CRUD web app never has to solve. Getting authentication, presence, and message delivery wrong does not just create a bug. It erodes the trust the entire product depends on.
Real-Time Connections, Not Just REST Calls
Standard request-response APIs cannot deliver chat that feels alive. The platform needed persistent, authenticated WebSocket connections that identify exactly which user is on each socket.
Role Access Without Role Friction
Seekers, listeners, and administrators needed different dashboards and permissions, but the connection, messaging, and notification systems had to serve all three without splitting into separate codebases.
Presence and Delivery Users Trust
A support conversation depends on knowing if the other person is online, has seen a message, and that a notification actually arrived. Getting this wrong breaks trust fast.
A Connection Flow That Feels Safe
A Seeker-Listener connection carries emotional weight, unlike a marketplace match. The request, accept, and chat lifecycle needed clear states without feeling like a support ticket queue.
A platform that lets people send messages is solving a messaging problem. One that lets two people trust they are actually being heard, in real time, by the right person, is solving a different problem entirely.
What We Set Out To Build
The brief covered a complete peer-support product where almost every meaningful interaction, a connection request, a chat message, a notification, a rating, needed to happen live and be trustworthy enough for an emotionally sensitive context. Five objectives anchored the build.
Build Authenticated Chat Infrastructure
Implement Django Channels WebSocket chat with JWT middleware that resolves the connecting user from their token, tying every message to a verified identity from the first packet.
Design a Role-Based Platform
Deliver distinct dashboards and permissions for Seekers, Listeners, and Administrators without fragmenting the underlying data and service layer.
Implement a Trustworthy Connection Flow
Build the request, accept, reject, and accepted-connection lifecycle with duplicate-request detection, so reaching out to a Listener feels deliberate rather than transactional.
Deliver Presence and Live Notifications
Track online and offline state via heartbeat, persist per-message read status, and broadcast real-time notifications over a dedicated channel so users never wonder if they were heard.
Ship a Full Administrative CMS
Give administrators dashboard analytics, user and connection management, and full content control over categories, blogs, and testimonials, so the platform runs without engineering involvement.
Turning a Sensitive Use Case Into a Reliable Real-Time Platform
Akoode built Lissnify as a Next.js and Django application with Django Channels powering the real-time layer, PostgreSQL for persistence, and Redis as the production channel layer. Chat, presence, and notifications were all designed around the same authenticated WebSocket foundation rather than three separate implementations.
Role Mapping
Seeker, Listener, and Administrator journeys were mapped before development began, shaping how onboarding, dashboards, and permissions would diverge while sharing one backend data model.
JWT Socket Layer
A custom JWT WebSocket middleware resolves the authenticated user at connection time for both chat and notification sockets, so each endpoint only ever serves verified users.
Connection Lifecycle
The Connections model tracks pending, accepted, and rejected states end to end, with duplicate-request detection and a direct path from an accepted connection into a chat room.
Presence and Delivery
Heartbeat-based presence, per-user message read tracking, and a dedicated notification consumer broadcasting to a private channel group give every user live, trustworthy conversation state.
Admin CMS and QA
A separate admin authentication flow powers dashboard analytics, user and connection oversight, and full CRUD over categories, blogs, and testimonials, tested before integration across roles.
What Makes This System Powerful
Hightlight 01
Authenticated Real-Time Chat Over Django Channels
Chat is the product's central nervous system. Every Seeker-Listener conversation runs over a persistent WebSocket connection authenticated by JWT, with messages persisted to PostgreSQL and broadcast instantly to room participants. The interface updates without a page reload, and clients reconnect gracefully when a connection drops.
- JWT middleware resolves the connecting user from the token before any message is accepted
- Messages persist to the database and broadcast live to all room participants
- Reconnection and error handling keep conversations resilient on unstable networks

Hightlight 02
Read Receipts and Unread State Users Can Rely On
Knowing a message has actually been seen matters more in a support conversation than almost anywhere else. Lissnify tracks read status per user, per message, with mark-one and mark-all-read events delivered live and backed by REST fallback endpoints.
- Per-user, per-message read status stored with live and REST-based updates.
- Unread message counts surface per conversation room.
- Mark-one and mark-all read actions sync instantly across the chat interface.

Hightlight 03
Live Presence and Notification Delivery
A dedicated notification WebSocket broadcasts to each authenticated user's private channel the moment something changes: a new message, an accepted connection, a system update. Combined with heartbeat-based presence tracking, users get an accurate, real-time picture of who is online.
- Notification consumer broadcasts privately and instantly to the relevant user.
- Heartbeat updates drive accurate online and offline presence across discovery and chat.
- Toast notifications and an unread-count bell surface activity without a page refresh.

Hightlight 04
Role-Based Dashboards Built on One Shared Data Model
Seekers, Listeners, and Administrators each get a dashboard shaped around what they need to do, without fragmenting the backend into three disconnected systems.
- Seeker dashboard centres on discovery, connection requests, and feedback.
- Listener dashboard surfaces incoming requests, connected Seekers, and session statistics.
- Administrator CMS provides analytics, user management, and full content control.

Built With Advanced Real-Time and Full-Stack Web Technologies
The platform needed authenticated real-time communication, not just a standard REST backend. Django Channels handled WebSocket infrastructure natively within the Django ecosystem. Redis served as the production channel layer for message broadcasting across connections. PostgreSQL gave the platform reliable persistence for chat history, connection state, and read receipts.
Key Challenges in Building Real-Time Trust Into a Sensitive Platform
Lissnify combined authenticated real-time messaging, live presence, and a connection workflow carrying real emotional stakes. Each feature asked more of the architecture than a typical messaging app, and every solution had to hold up under the expectation that the platform is reliable when someone reaches out for support.

Authenticating Sockets Without Re-Login
Standard JWT auth is built for HTTP request cycles, not persistent sockets. A chat socket needed to know who was connected for the life of that connection.
Our Approach
A custom JWT WebSocket middleware resolves and attaches the authenticated user at the protocol level, so every message on that socket is scoped to a verified identity.
Read State Across REST and Sockets
Chat history loads through REST while live updates arrive over WebSocket. Keeping read status consistent across both paths risked state drifting out of sync.
Our Approach
Read status was modelled as a persisted, per-user, per-message record, with REST as source of truth on load and WebSocket applying incremental updates after.
Presence Without Stale Online Users
A user who closes their laptop without logging out should not appear online indefinitely. Naive presence systems either ping too aggressively or go stale.
Our Approach
A heartbeat-based presence system runs alongside scheduled commands that detect and mark stale sessions offline, keeping the signal genuinely accurate.
A Connection Flow That Feels Human
Requests needed real states and duplicate protection without feeling like a support ticket. The workflow had to be reliable and still feel light.
Our Approach
The Connections model tracks pending, accepted, and rejected states with duplicate detection at the request layer, keeping the path to chat deliberately short.
What Changed After Implementation
Lissnify launched as a complete, role-based peer-support platform where real-time communication is not a bolted-on feature but the foundation the entire product is built around. Seekers discover Listeners by category, send a connection request, and move into a live, trustworthy conversation. Listeners manage incoming requests and support sessions from a dedicated dashboard. Administrators run the platform's content, users, and analytics without engineering involvement.
No reliable way to know if a support message had actually been delivered or read
Presence indicators that go stale the moment a user disconnects without logging out
Connection requests with no structure, risking duplicates and unclear status
Three user roles needing three different experiences from one fragmented codebase
Per-message, per-user read receipts modelled as persisted records, not client-side flags
Heartbeat-driven presence with scheduled stale-session cleanup commands
A tracked request lifecycle, pending, accepted, rejected, with duplicate detection built in
Seeker, Listener, and Administrator dashboards built on one shared, JWT-authenticated data model
Live and REST-backed read receipts confirm every message was actually seen
Online status stays genuinely accurate with automated stale-session cleanup
A structured, duplicate-safe request flow from connection to conversation
One backend serving three genuinely different, purpose-built role experiences
LiveChat Across All Connections
Real-time delivery for every Seeker-Listener conversation on the platform.
JWTAuthenticated Sockets
Every chat and notification connection resolves a verified identity at the protocol level
3Role-Based Dashboards
Seeker, Listener, and Administrator, built on one shared data model.
Use Cases of Real-Time Chat Architecture in Peer Support and Two-Sided Platforms
The authenticated WebSocket chat layer, presence system, and role-based connection workflow built for Lissnify generalise to any platform where trust depends on knowing a message was sent, received, and read in real time.
Peer Support and Community Mental-Health Platforms
Products connecting people for emotional or peer support, where conversation reliability is part of the duty of care.
Telehealth and Coaching Marketplaces
Two-sided platforms matching a seeker with a provider, where request-accept flow and live chat both need to feel secure.
Customer Support and Helpdesk Tools
Products needing authenticated live chat with read receipts and presence, without building socket infrastructure from scratch
Marketplace and Service-Booking Apps
Two-sided platforms where a connection request lifecycle gates access to direct communication between parties.
Internal Tools With Role-Based Dashboards
Products serving multiple distinct user types from one backend, where each role needs a different view of the same live data.
Community Platforms Needing Verified Presence
Any product where knowing whether another user is genuinely online or has read a message affects trust in the platform itself.
Why Businesses Choose Akoode Technologies for Software Development
Akoode builds real-time, trust-sensitive platforms where live interaction is core to the product, not a secondary feature. The team covers architecture design, WebSocket infrastructure, role-based system design, and administrative tooling within one delivery team. Projects range from internal products like Lissnify to client platforms requiring the same real-time reliability standards.
Authentication Designed for Sockets, Not Bolted On
The JWT WebSocket middleware on Lissnify was built at the protocol level from the start, rather than retrofitted onto an existing REST authentication system after chat was already in progress.
Trust-Sensitive Product Thinking
A mental wellness platform cannot treat read receipts, presence, and notification delivery as nice-to-haves. Each was a reliability requirement during architecture design, the same way Akoode treats real-time constraints on any consumer product.
One Backend, Three Genuinely Different Experiences
Seeker, Listener, and Administrator roles were designed against a single shared data model from the outset, avoiding the fragmentation that comes from building role-based features as afterthoughts.
Full-Stack Ownership From Architecture to CMS
The same team that designed the WebSocket chat architecture also built the administrative CMS, analytics dashboards, and content tools needed to run the platform day to day.