Skip to content

This project is an interactive collaboration platform that blends the best of Figma, Notion, and a real-time music experience. Users can create shared workspaces called Rooms, collaborate live, organize notes, manage tasks, and listen to music together β€” all within a highly customizable interface.

License

Notifications You must be signed in to change notification settings

SmallCakekoo/Mune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🎡 Mune - Collaborative Workspace with Integrated Music Player

License: MIT React TypeScript

Mune is a highly interactive React web application that combines the collaborative features of Figma and Notion with an integrated music streaming experience. It's designed as a comprehensive solution for creative teams who want to brainstorm, organize tasks, and enjoy music together in real-time.

✨ Features

  • 🎨 Visual Canvas - Interactive whiteboard with zoom, pan, and collaboration
  • πŸ“ Smart Notes - Rich text notes and to-do lists for project organization
  • 🎡 Synchronized Music - Deezer-powered music playback across all room participants
  • πŸ‘₯ Real-time Collaboration - Live presence indicators
  • 🎨 Customizable Themes - Multiple themes with dark/light mode
  • πŸ“± Fully Responsive - Optimized for mobile, tablet, and desktop

πŸ“ Project Structure -- Mune

mune/
β”œβ”€β”€ .github/                 # GitHub Actions workflows and templates.
β”œβ”€β”€ node_modules/            # Installed project dependencies.
β”œβ”€β”€ public/                  # Static assets (icons, images, root index.html).
└── src/                     # Application source code
    β”œβ”€β”€ assets/              # Multimedia files (images, fonts, etc.).
    β”œβ”€β”€ components/          # Reusable UI components.
    β”œβ”€β”€ context/             # Global state management using the Context API.
    β”œβ”€β”€ hooks/               # Custom React hooks for reusable logic.
    β”œβ”€β”€ pages/               # Components representing complete routes or views.
    β”œβ”€β”€ routes/              # Application route configuration.
    β”œβ”€β”€ services/            # Modules to interact with external APIs.
    β”œβ”€β”€ styles/              # Global or modular style files.
    β”œβ”€β”€ types/               # TypeScript type definition files.
    β”œβ”€β”€ utils/               # Auxiliary utility functions.
    β”œβ”€β”€ App.css
    β”œβ”€β”€ App.tsx              # Main application component.
    β”œβ”€β”€ index.css
    └── main.tsx             # Application entry point.
β”œβ”€β”€ .env                     # Environment variables (You won't see this on GitHub.)
β”œβ”€β”€ .gitignore               # Files and directories to be ignored by Git.
β”œβ”€β”€ .prettierrc              # Prettier formatter configuration.
β”œβ”€β”€ CODE_OF_CONDUCT.md       # Code of Conduct.
β”œβ”€β”€ commitlint.config.js     # Configuration for commit message linting.
β”œβ”€β”€ CONTRIBUTING.md          # Guide for contributing to the project.
β”œβ”€β”€ eslint.config.js         # ESLint linter configuration.
β”œβ”€β”€ index.html               # Main HTML file.
β”œβ”€β”€ LICENSE                  # Project license.
β”œβ”€β”€ package-lock.json        # Dependency lock file.
β”œβ”€β”€ package.json             # Project metadata and command scripts.
β”œβ”€β”€ postcss.config.js        # PostCSS configuration (typically for Tailwind).
β”œβ”€β”€ README.md                # Project documentation.
β”œβ”€β”€ SECURITY.md              # Security disclosure policy.
β”œβ”€β”€ tailwind.config.js       # Tailwind CSS configuration.
β”œβ”€β”€ tsconfig.app.json        # TypeScript configuration for the application.
β”œβ”€β”€ tsconfig.json            # Base TypeScript configuration.
β”œβ”€β”€ tsconfig.node.json       # TypeScript configuration for Node/build environments.
└── vite.config.ts           # Vite bundler configuration.

🧩 Backend & Core Services

πŸ”₯ Firebase

  • Firebase Authentication
    User login, signup, and session management.

  • Firestore Database
    Stores Rooms, notes, playlists, user data, real-time states.

  • Firebase Storage
    Uploads for profile images, Room assets, etc.


πŸ›  Development Stack

⚑ Build & Tooling

Dependency Description
Vite Dev server & bundler
TypeScript Static typing
PostCss CSS processing
Autoprefixer CSS processing
TailwindCSS 4 Utility-first styling
@vitejs/plugin-react React integration

🧹 Quality & Automation

Dependency Description
ESLint Code linting
TypeScript ESLint TS-aware lint rules
Prettier Code formatting
Commitlint Validates commit messages
Lint-Staged Runs tools on staged files
Husky Pre-commit & pre-push hooks

πŸš€ Git Workflow

  • Conventional commits\
  • Branch workflow (feature/, fix/, hotfix/, experiment/)\
  • Pre-commit hooks for lint, type-check, and formatting

πŸ“¦ Key Dependencies

Essential Dependencies

Dependency Description
React 19 UI library
React Router v7 Routing system
Redux Toolkit Global state management
Firebase Auth, DB, storage
Framer Motion Animations
@dnd-kit Drag & drop interactions
Zod Schema validation
Axios HTTP requests
UUID Unique IDs
React Hook Form Form handling
react-zoom-pan-pinch Canvas zoom

🎨 Styling & UI Utilities

Dependency Description
TailwindCSS 4 Utility-first styles
clsx Conditional class names utility
tailwind-merge Utility to merge Tailwind CSS classes without conflict
@tabler/icons-react Extensive and customizable icon set

πŸ§ͺ Dev Dependencies

Dependency Description
ESLint Code linting
eslint-plugin-react-hooks Hooks specific rules
eslint-plugin-react-refresh Fast refresh support
Husky Git hooks management
Lint-Staged Runs scripts on staged files
Commitlint Commit message validation
TypeScript Static type system
Vite Application bundler

βš™οΈ Useful Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run lint         # Run ESLint
npm run lint:fix     # Fix lint issues
npm run type-check   # Validate TypeScript
npm run preview      # Preview production build

πŸš€ Quick Start

Prerequisites

  • Node.js 23 or 18+
  • npm or yarn
  • Firebase account
  • Deezer API credentials

Installation

# Clone the repository
git clone https://github.com/your-username/mune.git

# Navigate to project directory
cd mune

# Install dependencies
npm install

# Set up environment variables
touch .env

# Start development server
npm run dev

Environment Variables

Create a .env file with:

VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
VITE_DEEZER_APP_ID=your_deezer_app_id

πŸ› οΈ Tech Stack

  • Frontend: React 19, TypeScript, Vite
  • Styling: Tailwind CSS v4, Framer Motion
  • Backend: Firebase (Auth, Firestore, Storage)
  • Real-time: WebSockets, Firebase Realtime Updates
  • Music: Deezer API

🀝 Contributing

Once this project is finished, you can contribute afterwards. So we welcome contributions! Please read our Β¨Contributing Guidelines and Code of Conduct first.

And this one here is the Developer Conduct Guidelines: DEVELOPER_CODEOFCONDUCT.md

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ›‘οΈ Security

Please report any security issues by following our Security Policy.

πŸ“ž Support

Create an issue
Message me on Discord (smallcakeko)

About

This project is an interactive collaboration platform that blends the best of Figma, Notion, and a real-time music experience. Users can create shared workspaces called Rooms, collaborate live, organize notes, manage tasks, and listen to music together β€” all within a highly customizable interface.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages