FydeOS

Cloud services and app ecosystem

Cloud services, an app store, file sharing, and a community forum for over 10000 individual and enterprise users.

Period
2019 — 2023
Role
Full-stack developer (remote)
Stack
Node.jsGoMongoDBPostgreSQLReactWebRTCDiscourseAWS/S3DockerGrafana

Key numbers

Background

FydeOS is an operating system based on ChromiumOS, adapted for individual and enterprise users in China. Users need everyday apps, productivity tools, and file sharing between devices. Enterprises also need cloud services for authentication, preference sync, and device binding.

FydeOS app store home page
FydeOS app store

What I did

  • App store: A mirror of Chrome apps for users in China. A crawler continuously fetches, re-signs, and repackages over 1000 web apps and browser extensions. The store supports browsing, search, and version updates. An admin panel lets the operations team maintain app details, versions, and listing status. Direct installation of Android apps was added later.
  • FyDrop: Browser-based file sharing built on WebRTC. Devices on the same network can send files to each other without signing in. It is integrated into the FydeOS file manager as a built-in feature.
  • Community forum: A forum built on Discourse. I handled compatibility issues from upstream upgrades and developed plugins for language switching, subscription binding, and a ticketing system.
  • Enterprise management platform: Helped rewrite the backend from Node.js / MongoDB to Go / PostgreSQL.
FyDrop sending a file
Topic list on the FydeOS community forum
Topic list on the FydeOS community forum

Technical details

Account and sync service rebuild: The account, sync, and enterprise admin services each had a separate public API. The rebuild moved the account and sync services from Node.js to Go. All three services use gRPC interfaces behind a single APISIX gateway. The database moved from MongoDB to PostgreSQL. A revised data model, composite indexes, and sharding reduced database query time in the sync service by 50%.

Account and sync services rewritten in Go, with gRPC interfaces and an APISIX gateway

FyDrop peer-to-peer connections: A WebSocket signaling server groups devices by public IP so devices on the same network can find each other. Files are encrypted and sent directly over RTCDataChannel in ordered chunks. The sender waits for an acknowledgment after each batch to avoid filling the buffer. STUN discovers the public IP. A TURN relay handles connections where direct access fails.