netless-io

flat: Run a Live Online Classroom on Web and Desktop

Agora Flat is a TypeScript classroom client for web, Windows, and macOS, combining a collaborative whiteboard with live audio, video, messaging, and classroom tools. It suits teams building or evaluating interactive online teaching experiences.

View on GitHub Compare
Stars
6.4k
Forks
877
Stars, last 30 days
+6

Our take

Health score

40/100

How it is scored
Activity
20
Community
71
Issues
47
Pull requests
21

+6 stars in the last 30 days

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

6,444

Forks

877

Change since Nov 8, 2026: +2 stars·0 forks

Overview

Agora Flat is the web and desktop client for an online classroom, designed to bring teaching tools and live communication into a shared classroom experience. It combines a real-time whiteboard with audio and video chat, messaging, screen sharing, and classroom scheduling.

The repository contains both web and Electron clients. It is useful for exploring or extending the client experience; the README also points to separate Android and server projects for related parts of the wider platform.

Key Features

  • Interactive whiteboard with replay support.
  • Real-time audio and video chat, plus messaging.
  • Create, join, and schedule classrooms, including recurring rooms.
  • Record and replay classroom sessions, including cloud video and audio recording.
  • Share screens and use cloud storage for multimedia courseware.
  • Sign in with GitHub or WeChat.
  • Run the client as a web app or package it for Windows and macOS with Electron.

Use Cases

  • Teachers who need a shared whiteboard and live discussion space for remote classes.
  • Education teams evaluating a web or desktop client for interactive virtual classrooms.
  • Developers adapting classroom client interfaces or business logic for a project.
  • Learners and instructors who need to review recorded whiteboard work and classroom media.

Getting Started

Install dependencies and start the Electron client from the repository root:

pnpm i
pnpm start

For the web client, run pnpm start:web. See the README for packaging, Storybook, environment variables, and other setup details.

Considerations

  • This repository is a client project. The README links to a separate Flat Server and an Android client, so it should not be assumed to include every platform or backend component.
  • The README says the client can be built and run without a server, but use of the complete classroom experience may involve associated services.
  • The project states that it does not provide custom commercial requirements, deployment support, or customer support for commercial use.
  • The project is licensed under MIT. Review the license and the repository's guidance before adopting or distributing it.

Found this useful?

Share it with someone who would like flat.