eApps is the unified hub for the entire EoS ecosystem. It merges content from eOffice, EoStudio, EoSim, eServiceApps, and eBrowser into a single repository with a beautiful app store served via GitHub Pages at embeddedos-org.github.io/eApps.
| Component | Hosted On |
|---|---|
| App Store frontend | GitHub Pages (embeddedos-org.github.io/eApps/) |
| App catalog | data/apps.json in this repo (auto-updated by CI) |
| Binary releases | GitHub Releases (.exe .dmg .apk .zip .xpi .vsix etc.) |
| Auto-update manifests | GitHub Pages (updates/chrome-updates.xml, updates/firefox-updates.json) |
| Docker images | Docker Hub (embeddedos/eosim) |
| VS Code extension | VS Code Marketplace (optional, via VSCE_PAT secret) |
| iOS apps | TestFlight (via IOS_CERTIFICATE secret) |
graph TD
subgraph Sources["Source Categories"]
EXT["🧩 Browser Extensions<br/><code>extensions/</code>"]
DSK["🖥️ Desktop Apps<br/><code>desktop-apps/</code>"]
MOB["📱 Mobile Apps<br/><code>mobile-apps/</code>"]
SVC["☁️ Service Apps<br/><code>service-apps/</code>"]
NAT["⚙️ Native/Embedded<br/><code>apps/</code>"]
WEB["🌐 Web Apps<br/><code>browser/</code>"]
end
subgraph Shared["Shared Code"]
SHR["🔗 shared/<br/>js · flutter · libs · python"]
end
EXT --> SHR
DSK --> SHR
MOB --> SHR
SVC --> SHR
NAT --> SHR
WEB --> SHR
subgraph CICD["CI/CD — GitHub Actions"]
BLD["Build & Test"]
PKG["Package Artifacts"]
REL["Create GitHub Releases"]
UPD["Auto-update apps.json"]
end
EXT --> BLD
DSK --> BLD
MOB --> BLD
SVC --> BLD
NAT --> BLD
BLD --> PKG --> REL --> UPD
subgraph Artifacts["Release Artifacts"]
ZIP[".zip / .crx / .xpi<br/>Extension releases"]
EXE[".exe / .dmg / .AppImage<br/>Desktop releases"]
APK[".apk / .aab<br/>Android releases"]
TF["TestFlight<br/>iOS beta"]
DCK["Docker images<br/>Service deploys"]
end
REL --> ZIP
REL --> EXE
REL --> APK
REL --> TF
REL --> DCK
subgraph Hub["Marketplace Hub"]
JSON["📋 data/apps.json<br/>Central metadata catalog"]
PAGE["🏪 GitHub Pages<br/>index.html · Filter · Download<br/>embeddedos-org.github.io/eApps/"]
end
UPD --> JSON --> PAGE
subgraph Users["End Users"]
USR["👤 Browse · Download · Install"]
end
PAGE --> USR
style Sources fill:#1a3a5c,stroke:#58a6ff,color:#e6edf3
style Shared fill:#2a4a3c,stroke:#3fb950,color:#e6edf3
style CICD fill:#4a3a1c,stroke:#d29922,color:#e6edf3
style Artifacts fill:#2a2a2a,stroke:#8b949e,color:#e6edf3
style Hub fill:#3a2a4c,stroke:#bc8cff,color:#e6edf3
style Users fill:#1c3a2a,stroke:#3fb950,color:#e6edf3
eApps/
├── index.html # Marketplace website (GitHub Pages entry)
├── css/marketplace.css # Marketplace styles
├── js/marketplace.js # Dynamic app grid from apps.json
├── data/
│ └── apps.json # Single source of truth for ALL listings
│
├── extensions/ # Browser & editor extensions (from eOffice)
│ ├── browser/chrome/
│ ├── browser/firefox/
│ ├── safari/
│ ├── vscode/
│ ├── jetbrains/
│ ├── obsidian/
│ ├── slack/
│ ├── raycast/
│ ├── github/
│ ├── google-workspace/
│ └── office365/
│
├── desktop-apps/ # Desktop applications
│ ├── eoffice/ # Electron (from eOffice/desktop)
│ ├── eostudio/ # Python/Tk (from EoStudio)
│ ├── eosim/ # Python/QEMU simulator (from EoSim)
│ └── ebrowser/ # C/SDL2 (from eBrowser)
│
├── mobile-apps/ # Mobile applications
│ ├── eride/ # Flutter (from eServiceApps)
│ ├── esocial/
│ ├── etrack/
│ ├── etravel/
│ └── ewallet/
│
├── service-apps/ # Backend services
│ ├── backend/ # Firebase backend (from eServiceApps)
│ └── eoffice-server/ # Node.js server (from eOffice)
│
├── shared/ # Reusable code across platforms
│ ├── js/ # JavaScript utilities
│ ├── flutter/ # Dart packages
│ ├── libs/ # C libraries
│ └── python/ # Python packages
│
├── apps/ # Native LVGL apps (original eApps)
│ ├── efiles/ echat/ emusic/ evideo/ ...
│ └── (40+ native apps)
│
├── core/ # Native shared core (C)
├── cmake/ # CMake toolchains
├── port/ # Platform ports (SDL2, Android, iOS, Web, EoS)
├── tests/ # Native app tests
│
├── .github/workflows/
│ ├── deploy-marketplace.yml # Deploy marketplace to GitHub Pages
│ ├── release-app.yml # Tag-based release with auto apps.json update
│ └── ci-native.yml # CI for native C apps
│
└── docs/
├── architecture.md # This file
├── adding-apps.md
├── platform-guide.md
└── porting-guide.md
- Developer pushes code → relevant folder in
eApps(orshared/) - GitHub Actions builds, tests, and packages automatically
- Artifacts are uploaded to GitHub Releases (
.exe,.dmg,.apk,.zip, etc.) data/apps.jsonis auto-updated with the new version by CI- GitHub Pages re-deploys the marketplace with the latest catalog
- Users visit
embeddedos-org.github.io/eApps/, browse, filter, and download
| Original Repo | Merged Into | Category |
|---|---|---|
| eOffice | extensions/, desktop-apps/eoffice/, service-apps/eoffice-server/ |
Extensions, Desktop, Service, Web |
| EoStudio | desktop-apps/eostudio/ |
Desktop |
| EoSim | desktop-apps/eosim/ |
Desktop, Simulator |
| eServiceApps | mobile-apps/, service-apps/backend/ |
Mobile, Service |
| eBrowser | desktop-apps/ebrowser/ |
Desktop |
| eApps (original) | apps/, core/, cmake/, port/ |
Native/Embedded |
# Inside the eApps repo:
# Merge eServiceApps
git remote add eServiceApps https://github.com/embeddedos-org/eServiceApps.git
git fetch eServiceApps
git merge eServiceApps/main --allow-unrelated-histories --no-edit
# Reorganize files into service-apps/ and mobile-apps/
# Merge eOffice
git remote add eOffice https://github.com/embeddedos-org/eOffice.git
git fetch eOffice
git merge eOffice/main --allow-unrelated-histories --no-edit
# Reorganize into extensions/, desktop-apps/eoffice/, service-apps/eoffice-server/
# Merge EoStudio
git remote add EoStudio https://github.com/embeddedos-org/EoStudio.git
git fetch EoStudio
git merge EoStudio/main --allow-unrelated-histories --no-edit
# Move into desktop-apps/eostudio/
# Merge EoSim
git remote add EoSim https://github.com/embeddedos-org/EoSim.git
git fetch EoSim
git merge EoSim/main --allow-unrelated-histories --no-edit
# Move into desktop-apps/eosim/
# Merge eBrowser
git remote add eBrowser https://github.com/embeddedos-org/eBrowser.git
git fetch eBrowser
git merge eBrowser/main --allow-unrelated-histories --no-edit
# Move into desktop-apps/ebrowser/