Skip to content

Desktop App: Architecture & Foundation

This is the starting point for understanding Ediky Desktop — the offline-capable, Tauri-based sibling of the Ediky website. It assumes no prior knowledge of React, Rust, Tauri, or any of the cloud services involved, and is split across five focused pages rather than one long document.

What This Covers

  1. Introduction & Product Vision — why Ediky exists, the core "one integrated workspace" insight, and why it ships as both a website and a desktop app.
  2. Frontend Architecture — React 19, Vite, and how Tauri turns that same web UI into a native desktop binary.
  3. Backend & Services — Firebase for auth and data, Judge0 self-hosted on Oracle Cloud for code execution, Cloudflare for edge hosting.
  4. Desktop Features & Data Flows — local SQLite with FTS5 search, offline mode, and two worked examples: a web submission and offline desktop browsing.
  5. Security, Deployment & FAQ — authentication, hash-chained integrity logs, how code ships to users, and answers to common student questions.

Quick Reference: Architecture Overview

diagram100%
rendering diagram…

drag to pan · ctrl / ⌘ + scroll to zoom

Key Concepts Across All Five Pages

One codebase, two deployments — the React UI is written once, Vite builds it for both platforms, and only the backend differs: serverless on web, Tauri + Rust on desktop.

Optimization for constraints — web is built for always-online, global scale, with Cloudflare edge routing and Firestore real-time sync; desktop is built offline-first, with local SQLite and native Rust OS integration.

Layered security — Firebase Auth / system-browser OAuth 2.0 with PKCE, HTTPS in transit, Firestore security rules for access control, and hash-chained audit logs for OA integrity.

Automated deployment — web ships through CI/CD straight to Cloudflare Pages in about 30 seconds; desktop builds signed installers per OS and ships them via GitHub Releases with an auto-updater.

Reading Order

If you're new to the codebase, read the five pages in order — each builds on the one before it:

  1. Start with Introduction & Product Vision for the "why."
  2. Read Frontend Architecture for React, Vite, and Tauri.
  3. Read Backend & Services for Firebase, Judge0, and Cloudflare.
  4. Read Desktop Features & Data Flows for SQLite, offline mode, and the two worked data flows.
  5. Read Security, Deployment & FAQ for how it's all kept safe and shipped.

If you only have a few minutes, the diagram above plus the comparison table on the data flows page covers the shape of the system. If you're prepping for a contribution or an interview, read all five and try redrawing the diagram from memory afterward.


→ Start here: Introduction & Product Vision

Ediky Workflow — internal engineering documentation.