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

apk-builder-web

v1.0.0

Published

Convert any website URL or ZIP file into an Android APK — run it locally or deploy it anywhere

Downloads

94

Readme

APK Builder – Web to Android APK Converter

Convert any website URL or ZIP file containing HTML/CSS/JS into an installable Android APK.


Features

| Feature | Description | |---|---| | 🌐 URL → APK | Wrap any live website in a native Android WebView | | 📦 ZIP → APK | Package your local web app ZIP (must contain index.html) | | ⬇️ Offline mode | Download & bundle a website for offline use | | ⚙️ Custom config | App name, package ID, version, orientation, status-bar color | | 🎨 Custom icon | Upload a PNG icon (512×512 recommended) | | 📲 Dual output | Direct APK download or Android Studio project ZIP | | 🔴 Real-time log | Live build output via Socket.io |


Quick Start

Prerequisites

| Requirement | Notes | |---|---| | Node.js ≥ 18 | nodejs.org | | Java JDK 17+ | Required for Gradle | | Android SDK | Part of Android Studio |

Without Java/Android SDK the tool still works — it generates an Android Studio project ZIP you can open and build manually.


1. Install & Run

Windows:

install.bat

macOS / Linux:

chmod +x install.sh && ./install.sh

Manual:

npm install
node server.js

Open http://localhost:3000 in your browser.


2. Set up Android SDK (for direct APK building)

  1. Install Android Studio
  2. Open Android Studio → SDK Manager → Install Android SDK Platform 34
  3. Set ANDROID_HOME environment variable:
    • Windows: %LOCALAPPDATA%\Android\Sdk
    • macOS: ~/Library/Android/sdk
    • Linux: ~/Android/Sdk
  4. Add Gradle to PATH (Android Studio bundles it at <studio>/plugins/gradle/lib/gradle-launcher-*.jar)

3. Build an APK

  1. Open http://localhost:3000
  2. Choose Web URL or ZIP File tab
  3. Fill in app name, package name (e.g. com.yourname.appname)
  4. Click Build APK
  5. Watch the real-time build log
  6. Download the APK or the Android Studio project

Project Structure

APK BUILDER/
├── server.js              ← Express + Socket.io server
├── package.json
├── public/
│   ├── index.html         ← Web UI
│   ├── style.css
│   └── script.js
├── utils/
│   ├── buildApk.js        ← Android project generator + Gradle runner
│   ├── webScraper.js      ← Website downloader (offline mode)
│   └── zipHandler.js      ← ZIP extractor
├── templates/
│   └── android/           ← Android project template
│       ├── app/
│       │   ├── build.gradle
│       │   └── src/main/
│       │       ├── AndroidManifest.xml
│       │       ├── assets/www/    ← web files placed here
│       │       ├── java/          ← MainActivity.java (generated)
│       │       └── res/
│       ├── build.gradle
│       ├── settings.gradle
│       ├── gradle.properties
│       └── gradlew / gradlew.bat
├── uploads/               ← Temporary upload storage (auto-created)
└── builds/                ← Build outputs (auto-created)
    └── <buildId>/
        ├── app-debug.apk  ← Built APK (if Gradle available)
        └── project.zip    ← Android Studio project

How It Works

  1. ZIP/URL source → web files extracted/downloaded to a temp folder
  2. Android project created from the template with app settings applied
  3. Web files copied into app/src/main/assets/www/
  4. MainActivity.java generated to load file:///android_asset/www/index.html (or the live URL in online mode)
  5. Gradle builds the APK if Android SDK is available
  6. APK (or project ZIP) served for download

Deploying to Another Machine / Server

# On the target machine
git clone <this-repo>   # or copy the folder
npm install
node server.js

Set PORT env var to change the port:

PORT=8080 node server.js

FAQ

Q: The APK installs but shows a blank screen.
A: Make sure your web app works from index.html at the root of the ZIP. Paths must be relative.

Q: I see "Gradle not found" in the log.
A: That's fine — download the project ZIP, open in Android Studio, and click ▶ Run.

Q: How do I sign the APK for release / Play Store?
A: The debug APK is self-signed. For release, open the project in Android Studio → Build → Generate Signed Bundle/APK.

Q: Can I run this on a VPS/server?
A: Yes. Without Android SDK on the server, users always get a project ZIP. With Android SDK installed server-side (e.g. via sdkmanager), you get full APK builds.


License

MIT