Flat: Open Source Classroom Client for Web, Windows, and macOS
This repository profile is provided by osrepos.com, an open source repository discovery platform.

Summary
Flat is an open-source project by netless-io, providing Web, Windows, and macOS clients for the Agora Flat online classroom. It offers a comprehensive suite of features for real-time interactive learning environments, including video/audio chat, whiteboards, and classroom management. Built with TypeScript, Flat enables seamless virtual education experiences for modern e-learning.
Repository Information
Topics
Click on any tag to explore related repositories
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Introduction
Flat, developed by netless-io, is the open-source client for Agora Flat, designed for Web, Windows, and macOS platforms. This project provides a robust and feature-rich virtual classroom experience, enabling real-time interaction, comprehensive classroom management, and cloud recording capabilities. It's an excellent solution for anyone looking to deploy or contribute to an advanced e-learning platform, built primarily with TypeScript.
Installation
To get started with Flat, you'll first need to ensure pnpm is installed. If not, you can install it globally using npm:
npm i -g pnpm
Once pnpm is available, clone or fork the Flat repository and install its dependencies:
git clone https://github.com/netless-io/flat.git
cd flat
pnpm i
Examples
Flat offers both Electron (desktop) and Web clients. Here's how to build and run them:
Flat Electron Client
To build and run the Electron client, execute the following command from the project root:
pnpm start
You can also package your executable for distribution. Run pnpm ship to package based on your current system, or specify a system:
pnpm ship:mac
pnpm ship:win
Flat Web Client
To build and run the Web client, use this command from the project root:
pnpm start:web
Alternatively, you can navigate directly to the web client directory and start it:
cd ./web/flat-web/ && pnpm start
For UI development and component exploration, Flat provides a Storybook. You can run it locally with pnpm storybook or visit the online Storybook for a live demo.
Why Use It
Flat stands out as a comprehensive virtual classroom solution due to its powerful features:
- Real-time Interaction: Includes a multifunctional interactive whiteboard, real-time video/audio chat (RTC), and real-time messaging (RTM) for dynamic learning.
- Flexible Login: Supports login via popular platforms like GitHub and WeChat.
- Classroom Management: Easily create, join, and schedule classrooms, with support for periodic sessions.
- Recording and Replaying: Offers whiteboard replaying, cloud recording for video and audio, and messaging replaying, ensuring no lesson is lost.
- Cloud Storage: Provides integrated cloud storage for multimedia courseware.
- Screen Sharing: Facilitates easy content sharing during lessons.
Links
- GitHub Repository: netless-io/flat
- Agora Flat Homepage: flat.agora.io
- Flat Server: netless-io/flat-server
- Flat Android Client: netless-io/flat-android
- Flat Storybook: Online Demo
- Documentation: Flat Docs
Source repository
Open the original repository on GitHub.
7 counted GitHub visits