npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@geastack/android

v0.1.1

Published

Native Android build target for GeaStack apps: compiles apps to native code and renders them with real Android views, no WebView, without Gradle.

Readme

Android target

Builds GeaStack apps into native Android APKs. geatsc compiles the app to C++, the NDK builds it into a native library, and each component node is rendered as a real Android view (FrameLayout, TextView, ImageView, ScrollView, ...) through JNI. There is no WebView and no JavaScript engine on the device.

targets/android/build-android.sh css-3d-cube debug
targets/android/build-android.sh css-3d-cube device

debug builds and signs the APK under targets/android/dist/<app-id>/. device also installs and launches it through adb.

The target uses the Android SDK command-line tools directly (aapt2, javac, d8, zipalign, and apksigner) so it does not require Gradle.

Useful environment overrides:

  • GEA_ANDROID_SERIAL: adb serial for the target board.
  • GEA_ANDROID_ADB: adb binary to use when multiple Android SDKs are installed.
  • GEA_ANDROID_NDK / GEA_ANDROID_CMAKE: NDK and CMake to use (default: the latest installed in the SDK).
  • GEA_ANDROID_ABI: native ABI to build (default arm64-v8a).
  • GEA_ANDROID_MIN_SDK: minimum SDK level (default 23).
  • GEA_ANDROID_PACKAGE_NAME: Java package name (default: derived from the app id).
  • GEA_ANDROID_SCREEN_ORIENTATION: activity orientation (default portrait).
  • GEA_ANDROID_DEVICE_PIXEL_RATIO: CSS pixel ratio (default 1.5).
  • GEA_ANDROID_BUILD_JOBS: parallel native compile jobs (default 4).
  • GEA_ANDROID_KEYSTORE, GEA_ANDROID_KEYSTORE_PASS, GEA_ANDROID_KEY_ALIAS, GEA_ANDROID_KEY_PASS: signing key (default: the Android debug keystore).
  • GEA_ANDROID_DEBUG_VIEW_BOUNDS=1: outline every native view's bounds.

The build fails if the generated Java or native sources reference a WebView.

License

Apache-2.0 (see LICENSE). You can ship closed-source products built on it. 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 [email protected] for commercial terms, support and hosted builds.