Example Gea apps, used by the simulator and all targets.
See the codeExample applications and tools for GeaStack.
This repo is the app gallery used by the simulator, embedded targets, GeaOS,
Apple targets, the VS Code/Cursor extension, and marketing demos. Each example
is a small package with a gea manifest in package.json.
| Path | Purpose |
|---|---|
apps/* | Gea apps. Most are TSX apps targeting web, ESP32, and/or GeaOS. |
apps/*/package.json | App manifest, target compatibility, scripts, and launcher metadata. |
tools/dialer-browser | Small browser-side helper tool for dialer workflows. |
package.json | Workspace marker for the examples collection. |
docs | Catalog and contribution guidance. |
Run checks for an individual example:
cd apps/watch
npm install
npm run check
npm run build
Some examples also carry tests, mostly guarding a layout or a device setup that
nothing else would catch -- npm test in the app folder runs them.
The web loop is driven from the simulator, which is a separate repository:
geastack/simulator. Its scripts read
apps out of an app project root, which they take from GEA_APPS_ROOT -- this
repo, or your own. There is no default, so set it or pass --app-dir; nothing
assumes the two checkouts sit next to each other.
cd /path/to/simulator
GEA_APPS_ROOT=/path/to/examples ./targets/web/dev-web.mjs watch # development loop
GEA_APPS_ROOT=/path/to/examples ./targets/web/build-web.sh watch # build for web
./targets/web/dev-web.mjs --app-dir /path/to/examples/apps/watch # or name one app
Flash a compatible board through the Gea CLI:
npx gea flash watch --board <alias>
npx gea flash watch --board <alias> --monitor
Every buildable app should have a package.json with a gea field:
{
"gea": {
"id": "watch",
"name": "Watch",
"entry": "index.tsx",
"runtime": "gea",
"targets": {
"web": true,
"esp32": true,
"geaos": true
}
}
}
The manifest is consumed by the simulator, embedded board scripts, GeaOS, Apple targets, and the IDE extension. Keep it accurate.
MIT (see LICENSE). Use it, change it, ship closed-source products on it, no
strings attached. The only GeaStack code under a different license is the
embedded board support (targets and @geastack/chips, GPL-3.0-only):
shipping closed-source firmware through those needs a commercial license.
Contact contact@geastack.com for commercial terms, support and hosted builds.
6 commits
TypeScript
61.6%
C++
21.2%
JavaScript
9.0%
C
2.8%
Objective-C++
2.6%
CSS
2.3%
Example Gea apps, used by the simulator and all targets.
See the codeExample applications and tools for GeaStack.
This repo is the app gallery used by the simulator, embedded targets, GeaOS,
Apple targets, the VS Code/Cursor extension, and marketing demos. Each example
is a small package with a gea manifest in package.json.
| Path | Purpose |
|---|---|
apps/* | Gea apps. Most are TSX apps targeting web, ESP32, and/or GeaOS. |
apps/*/package.json | App manifest, target compatibility, scripts, and launcher metadata. |
tools/dialer-browser | Small browser-side helper tool for dialer workflows. |
package.json | Workspace marker for the examples collection. |
docs | Catalog and contribution guidance. |
Run checks for an individual example:
cd apps/watch
npm install
npm run check
npm run build
Some examples also carry tests, mostly guarding a layout or a device setup that
nothing else would catch -- npm test in the app folder runs them.
The web loop is driven from the simulator, which is a separate repository:
geastack/simulator. Its scripts read
apps out of an app project root, which they take from GEA_APPS_ROOT -- this
repo, or your own. There is no default, so set it or pass --app-dir; nothing
assumes the two checkouts sit next to each other.
cd /path/to/simulator
GEA_APPS_ROOT=/path/to/examples ./targets/web/dev-web.mjs watch # development loop
GEA_APPS_ROOT=/path/to/examples ./targets/web/build-web.sh watch # build for web
./targets/web/dev-web.mjs --app-dir /path/to/examples/apps/watch # or name one app
Flash a compatible board through the Gea CLI:
npx gea flash watch --board <alias>
npx gea flash watch --board <alias> --monitor
Every buildable app should have a package.json with a gea field:
{
"gea": {
"id": "watch",
"name": "Watch",
"entry": "index.tsx",
"runtime": "gea",
"targets": {
"web": true,
"esp32": true,
"geaos": true
}
}
}
The manifest is consumed by the simulator, embedded board scripts, GeaOS, Apple targets, and the IDE extension. Keep it accurate.
MIT (see LICENSE). Use it, change it, ship closed-source products on it, no
strings attached. The only GeaStack code under a different license is the
embedded board support (targets and @geastack/chips, GPL-3.0-only):
shipping closed-source firmware through those needs a commercial license.
Contact contact@geastack.com for commercial terms, support and hosted builds.
6 commits
TypeScript
61.6%
C++
21.2%
JavaScript
9.0%
C
2.8%
Objective-C++
2.6%
CSS
2.3%