Live Demo: https://chat-feature-pi.vercel.app/
Nebula is a modern, real-time messaging service built with React and Firebase Realtime Database. It features a high-end "Glassmorphism" UI, dynamic group creation, and instant cloud synchronization.
- Secure Group Isolation: Users enter a specific
Room IDto join private communication channels. - Real-time Synchronization: Powered by Firebase listeners for sub-second message delivery.
- Modern Glass UI: A premium dark-mode aesthetic using CSS backdrop-filters and gradients.
- Responsive Design: Optimized for desktop, tablet, and mobile browsers.
- Auto-Scroll Engine: Smart message container that follows the latest conversation.
- Frontend: React.js (Hooks & Functional Components)
- Backend: Firebase Realtime Database (Serverless)
- Styling: Modern CSS3 (Flexbox, Glassmorphism, Keyframe Animations)
- Deployment: Vercel / Firebase Hosting
-
Clone the repository
git clone [https://github.com/yourusername/nebula-chat.git](https://github.com/yourusername/nebula-chat.git) cd nebula-chat -
Install dependencies
npm install
-
Firebase Configuration Create a
firebase.jsfile in thesrcdirectory and add your credentials:// src/firebase.js import { initializeApp } from "firebase/app"; import { getDatabase } from "firebase/database"; const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_PROJECT.firebaseapp.com", databaseURL: "https://YOUR_PROJECT.firebaseio.com", projectId: "YOUR_PROJECT", storageBucket: "YOUR_PROJECT.appspot.com", messagingSenderId: "YOUR_ID", appId: "YOUR_APP_ID" }; const app = initializeApp(firebaseConfig); export const db = getDatabase(app);
-
Run the application
npm start
To protect your service, ensure your Firebase Realtime Database rules are configured to support group-based paths:
{
"rules": {
"groups": {
"$roomID": {
".read": "true",
".write": "true",
"$messageID": {
".validate": "newData.hasChildren(['author', 'message', 'time'])"
}
}
}
}
}