Mayaverse is a collaborative platform for developers built using Next.js and TypeScript, designed to create and manage virtual spaces. It leverages a monorepo structure with Turborepo for efficient development and build processes.
Ensure you have the following installed:
Clone the repository and install the dependencies:
git clone https://github.com/jsndz/mayaverse.git
cd mayaverse
npm installTo start the development server, run:
cd mayaverse
npm run dev- Create .env files for all the service is
mayaverse/apps - Create a Postgres database and .env in
mayaverse/packages/db. - You need to setup TURN servers to for video calls. You can setup TURN servers for free in https://dashboard.metered.ca/dashboard/.
- Set them up in constants.ts
- Open http://localhost:3000 in your browser to access the application.
- User Authentication: Signup and Signin functionality.
- Virtual Spaces: Create and manage virtual spaces.
- Real-Time Chat: Chat with people in your virtual space. Powered by WebSockets.
- Video chat: One to One Video chat available.
- Minimalistic UI: Designed using Tailwind CSS.
- Type Safety: Ensured with TypeScript.
- Next.js: A React framework for server-side rendering and static site generation.
- TypeScript: A strongly typed programming language that builds on JavaScript.
- Prisma: ORM for database management.
- WebSocket: Enables real-time communication.
- Tailwind CSS: A utility-first CSS framework for styling.
mayaverse/
├── apps/
│ ├── client/ # Frontend application
│ ├── http/ # HTTP server
│ └── ws/ # WebSocket server
├── packages/
│ ├── db/ # Database package
│ ├── eslint-config/ # ESLint configurations
│ ├── typescript-config/ # TypeScript configurations
│ └── ui/ # UI components
└── turbo.json # Turborepo configuration
npm run dev- Start the development server.npm build- Build the application for production.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -m "Add new feature"). - Push to the branch (
git push origin feature-branch). - Open a pull request.
For major changes, please open an issue first to discuss the proposed modifications.



