Social-network is an open-source mini social network built on the MERN stack, and it is aimed at developers who want a complete, readable reference implementation of a social app with realtime chat and notifications.
What it is
Social-network is a mini social network written as the author's first web app project, and it lives squarely in the MERN stack: React and Redux with Semantic UI React on the front end, Node.js and Express on the server, MongoDB for storage, and Socket.io for realtime features. The project is JavaScript, MIT-licensed, and carries 636 stars, 137 forks and 41 open issues, with its most recent push on 15 October 2025.
The problem it solves is the undifferentiated work between wanting a social app and having one. Instead of an empty repository, you get a working follow graph, a post and comment model with likes and replies, user search, tagging with autocomplete, email verification, pagination for the home feed, user profile, hashtag page, location page, notifications, comments and replies, plus realtime notifications and chat. What it replaces is the from-scratch implementation of all of that: JWT auth, feed pagination, notification fan-out, and a Socket.io chat with seen state and activity status.
Key capabilities
- Like posts, comments and replies, and see the likes recorded against each.
- Follow and unfollow users, update user information, and search users.
- Tag people in posts and comments, with autocomplete on the tag field.
- Send verification email, gated by
ENABLE_SEND_EMAIL and configured with EMAILUSER and EMAILPASS.
- Paginate the home feed, user profile, hashtag page, location page, notifications, comments and replies.
- Deliver realtime notifications when someone likes your post, comment or reply, or tags you on a post.
- Chat with text and images over Socket.io, with a seen feature and activity status.
Who uses it and how
- Developers learning the MERN stack use it as one repository touching React, Redux, Express, MongoDB and Socket.io together, rather than five disconnected tutorials.
- Evaluators open the hosted demo on an AWS load balancer endpoint, or the secondary demo host, with no install.
- Self-hosters run it as a small private or internal instance, locally with
npm run dev or in containers with docker compose up --build.
- Teams wanting an internal social layer get the follow graph, notifications and chat as working code to extend.
Getting started
Install dependencies with npm i at the root and again inside client, create a variables.env file holding DATABASE, JWT_KEY, EMAILUSER, EMAILPASS, HOST, ENABLE_SEND_EMAIL and TEST_DATABASE, point client/src/_services/socketService.js at your host on port 5000, then run npm run dev. The alternative path is docker compose up --build.
How it compares
The facts provided list no paid products this project replaces and name no comparable tools, so social-network stands alone in this registry. Nothing here names a similar project to set beside it, so any comparison has to be made against whatever alternatives the reader already has.
When to use it — and when not to
A self-hoster must operate a MongoDB database and supply email credentials for the verification flow, along with a JWT secret and a reachable host for the Socket.io connection; the README's manual step of editing socketService.js confirms the project is oriented toward local development rather than turnkey deployment. The README documents installation and Docker Compose only, with no guidance on moderation tooling, scaling, backups or upgrades, and 41 open issues remain outstanding. Anyone who needs a hardened, supported platform with operational documentation and a release cadence should look elsewhere, but a developer who wants a working, readable MERN social app under the MIT licence will find one here.