Native apps written in TypeScript and CSS

Hacker News by 3 min read 53x views
Native apps written in TypeScript and CSS

Share Post

Example applications and tools for GeaStack.

This repo is the app exhibition used by the simulator, embedded targets, GeaOS, Apple targets, the VS Code/Cursor extension, and promotion demos. Each example is a small bundle alongside 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, mark 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 idiosyncratic example:

cd apps/watch npm install npm run check npm run build

Some examples additionally transport tests, mostly guarding a layout or a equipment setup that nothing alternatively would capture -- npm test in the app directory runs them.

The web iteration is driven from the simulator, which is a distinct repository: geastack/simulator. Its scripts read apps out of an app project root, which they obtain from GEA_APPS_ROOT -- this repo, or your own. There is no default, so set it or continue --app-dir; nothing assumes the two checkouts sit next to all other.

cd /path/to/simulator GEA_APPS_ROOT=/path/to/examples ./targets/web/dev-web.mjs observe # betterment loop GEA_APPS_ROOT=/path/to/examples ./targets/web/build-web.sh observe # build for web ./targets/web/dev-web.mjs --app-dir /path/to/examples/apps/watch # or name one app

Flash a compatible commission through the Gea CLI:

npx gea flash observe --board <alias> npx gea flash observe --board <alias> --monitor

Every buildable app should have a package.json alongside 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 commission scripts, GeaOS, Apple targets, and the IDE extension. Keep it accurate.

  • Keep examples small and focused. A fine example proves one behavior clearly.
  • Prefer shared example APIs complete target-specific hacks inner examples.
  • Add tests for examples alongside non-trivial logic, physics, or parsing.
  • Update the catalog docs whenever adding, renaming, hiding, or changing target compatibility for an app.

MIT (see LICENSE). Use it, alter it, container closed-source products on it, no strings attached. The lone GeaStack code under a distinct licence is the embedded commission assistance (targets and @geastack/chips, GPL-3.0-only): shipping closed-source firmware through those needs a business license. Contact [email protected] for business terms, assistance and hosted builds.

Other Article Hacker News
Close Right Ads
Close Left Ads