# Flat: Open Source Classroom Client for Web, Windows, and macOS

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/netless-io-flat
Generated for open source discovery and AI-assisted research.

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.

GitHub: https://github.com/netless-io/flat
OSRepos URL: https://osrepos.com/repo/netless-io-flat

## 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.

## Topics

- agora-flat
- e-learning
- virtual-classroom
- electron
- typescript
- whiteboard
- cloud-recording
- online-classroom

## Repository Information

Last analyzed by OSRepos: Thu Dec 25 2025 16:01:09 GMT+0000 (Western European Standard Time)
Detail views: 4
GitHub clicks: 7

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## 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:

bash
npm i -g pnpm


Once `pnpm` is available, clone or fork the Flat repository and install its dependencies:

bash
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:

shell
pnpm start


You can also package your executable for distribution. Run `pnpm ship` to package based on your current system, or specify a system:

shell
pnpm ship:mac
pnpm ship:win


### Flat Web Client

To build and run the Web client, use this command from the project root:

shell
pnpm start:web


Alternatively, you can navigate directly to the web client directory and start it:

shell
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](https://netless-io.github.io/flat/ "Flat 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](https://github.com/netless-io/flat "Flat GitHub Repository")
*   **Agora Flat Homepage:** [flat.agora.io](https://flat.agora.io/ "Agora Flat Homepage")
*   **Flat Server:** [netless-io/flat-server](https://github.com/netless-io/flat-server "Flat Server GitHub Repository")
*   **Flat Android Client:** [netless-io/flat-android](https://github.com/netless-io/flat-android "Flat Android Client GitHub Repository")
*   **Flat Storybook:** [Online Demo](https://netless-io.github.io/flat/ "Flat Storybook Online Demo")
*   **Documentation:** [Flat Docs](https://github.com/netless-io/flat/tree/main/docs "Flat Documentation")