🔥 Features
- Decentralized identity + content distribution over Ethereum
- Open backend, anyone can run their own servers
- Custom multi-threaded, glTF-based game engine
- VRM avatar support
- Visual editor for creating spaces
📦 What's inside?
This turborepo uses Yarn as a package manager. It includes the following apps / packages:
Apps
- client: the main website used to access the Wired
- docs: a documentation website
- host: dockerized server for hosting spaces
Packages
- contracts: generated contract types
- engine: a multi-threaded 3D game engine
- eslint-config-custom: custom eslint config used throughout the repo
- protocol: types describing the interface between client and host
- tsconfig: tsconfigs used throughout the repo
Utilities
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
🐋 Docker
The client can be run locally using Docker. To do so, run the following command:
yarn docker:prod
This will start the client on port 3000. You can then access it at http://localhost:3000.
To stop the client, run the following command:
yarn docker:stop
⚙️ Development
Install
To install all apps and packages, run the following command:
yarn install
⚠️ If you run into issues installing, it's probably mediasoup. Follow the steps on their installation guide to get it to work (pay attention to the versions very carefully). Mediasoup tends to be easier to install on Linux, so if you're on Windows, consider using Windows Subsystem for Linux (WSL).
Build
To build all apps and packages, run the following command:
yarn build
Develop
To work on the client, you will need to use Docker to run services it relies on (such as the database). To do so, run the following command:
yarn docker:dev
If you don't need that, you can run all apps and packages in development mode using the following command:
yarn dev