{"name":"Flat: Open Source Classroom Client for Web, Windows, and macOS","description":"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","url":"https://osrepos.com/repo/netless-io-flat","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/netless-io-flat","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/netless-io-flat.md","json":"https://osrepos.com/repo/netless-io-flat.json","topics":["agora-flat","e-learning","virtual-classroom","electron","typescript","whiteboard","cloud-recording","online-classroom"],"keywords":["agora-flat","e-learning","virtual-classroom","electron","typescript","whiteboard","cloud-recording","online-classroom"],"stars":null,"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.","content":"## Introduction\n\nFlat, 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.\n\n## Installation\n\nTo get started with Flat, you'll first need to ensure `pnpm` is installed. If not, you can install it globally using npm:\n\nbash\nnpm i -g pnpm\n\n\nOnce `pnpm` is available, clone or fork the Flat repository and install its dependencies:\n\nbash\ngit clone https://github.com/netless-io/flat.git\ncd flat\npnpm i\n\n\n## Examples\n\nFlat offers both Electron (desktop) and Web clients. Here's how to build and run them:\n\n### Flat Electron Client\n\nTo build and run the Electron client, execute the following command from the project root:\n\nshell\npnpm start\n\n\nYou can also package your executable for distribution. Run `pnpm ship` to package based on your current system, or specify a system:\n\nshell\npnpm ship:mac\npnpm ship:win\n\n\n### Flat Web Client\n\nTo build and run the Web client, use this command from the project root:\n\nshell\npnpm start:web\n\n\nAlternatively, you can navigate directly to the web client directory and start it:\n\nshell\ncd ./web/flat-web/ && pnpm start\n\n\nFor 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.\n\n## Why Use It\n\nFlat stands out as a comprehensive virtual classroom solution due to its powerful features:\n\n*   **Real-time Interaction:** Includes a multifunctional interactive whiteboard, real-time video/audio chat (RTC), and real-time messaging (RTM) for dynamic learning.\n*   **Flexible Login:** Supports login via popular platforms like GitHub and WeChat.\n*   **Classroom Management:** Easily create, join, and schedule classrooms, with support for periodic sessions.\n*   **Recording and Replaying:** Offers whiteboard replaying, cloud recording for video and audio, and messaging replaying, ensuring no lesson is lost.\n*   **Cloud Storage:** Provides integrated cloud storage for multimedia courseware.\n*   **Screen Sharing:** Facilitates easy content sharing during lessons.\n\n## Links\n\n*   **GitHub Repository:** [netless-io/flat](https://github.com/netless-io/flat \"Flat GitHub Repository\")\n*   **Agora Flat Homepage:** [flat.agora.io](https://flat.agora.io/ \"Agora Flat Homepage\")\n*   **Flat Server:** [netless-io/flat-server](https://github.com/netless-io/flat-server \"Flat Server GitHub Repository\")\n*   **Flat Android Client:** [netless-io/flat-android](https://github.com/netless-io/flat-android \"Flat Android Client GitHub Repository\")\n*   **Flat Storybook:** [Online Demo](https://netless-io.github.io/flat/ \"Flat Storybook Online Demo\")\n*   **Documentation:** [Flat Docs](https://github.com/netless-io/flat/tree/main/docs \"Flat Documentation\")","metrics":{"detailViews":4,"githubClicks":7},"dates":{"published":null,"modified":"2025-12-25T16:01:09.000Z"}}