Upload Your Files
Drop in your ZIP — HTML, CSS, JS and assets. Any framework, any engine.
Upload your ZIP — HTML, CSS & JS and all — and download a production-ready APK or AAB. No Android Studio, no native code. Works with any framework or game engine.
Works with any HTML5 project
Three simple steps. Drop in your web project, configure it, and download a store-ready app — no Android Studio, no Xcode, no native code.
Drop in your ZIP — HTML, CSS, JS and assets. Any framework, any engine.
Set your app name, icon and orientation, then build. We wrap it in a real native shell.
Download a signed APK or AAB, ready to publish to Google Play. iOS coming soon.
Everything you need to ship a commercial-grade mobile app.
Easily customize orientation, status bar colors, and fullscreen mode. Perfect your app's look with simple configuration options.
Your entire app is embedded in the binary. No network required. Launches instantly, works offline by default.
Access native features like AdMob monetization, vibration feedback, persistent storage, and in-app browser. More plugins coming soon.
Export signed and unsigned APKs plus Android App Bundles (.aab) — ready to install or publish straight to Google Play.
A clean JavaScript bridge with full TypeScript definitions — autocomplete, inline docs, and compile-time safety out of the box.
Honest, predictable pricing with a generous free tier. Pay only for what you need, cancel anytime — no lock-in.
Build unlimited apps and games and ship them straight to the Google Play Store — all for just $3/month. No Android Studio, no surprises.
Build as many apps as you want — no per-app fees.
Signed .aab bundles, ready to publish to Google Play.
Upload your ZIP and get a real binary in minutes.
Cancel anytime. Your code stays 100% yours.
Phaser, Three.js, Pixi.js, React — anything HTML5.
Production APK & AAB, signed and release-ready.
One clean, type-safe API sits between your web code and the native platform. Pick a capability, hit Run, and watch the bridge fire.
import { Vibration } from '@yandeu/js-bridge/lib/plugins/vibration.js' // Buzz once (500ms) Vibration.vibrate() // Custom pattern: [wait, buzz, wait, buzz] await Vibration.vibrateWithPattern([0, 500, 100, 500])
import { Ads } from '@yandeu/js-bridge/lib/plugins/ads.js' // Point at your rewarded ad unit Ads.rewarded.setAdUnitId('ca-app-pub-XXXX/WWWW') const loaded = await Ads.rewarded.load() if (loaded) await Ads.rewarded.show()
import { WebView } from '@yandeu/js-bridge' // Read live device + package details const device = await WebView.deviceInfo() const pkg = await WebView.packageInfo() console.log(device.data.android?.model, pkg.data.version)
import { WebView } from '@yandeu/js-bridge' // Save data that survives app restarts await WebView.persistentStorage.setItem('token', 'abc123xyz') // Read it back later const token = await WebView.persistentStorage.getItem('token')
Early access pricing during Public Beta.
Forever free
Billed $36.00 yearly
Billed monthly
* All prices are exclusive of VAT
While we expand our list of plugins, lock in the Developer plan for just $57 per year (normally $192/year). Apply the coupon code during checkout.
USD57
EUR57
Apply at checkout on app.html2app.dev/subscriptions for yearly subscriptions.
html2app started as a love letter to a tool I lost — and a mission to make shipping HTML5 games to mobile feel effortless again. Here's how it came to be.
I started learning JavaScript, following countless Phaser.js tutorials and building little games for fun. Along the way I discovered Intel XDK, PhoneGap Build, and Cocoon.io — services for wrapping HTML5 games into native apps.
Cocoon.io was my favorite. ZIP your game, tweak a few settings, hit build — and suddenly your creation was running on your phone. No Xcode. No Android Studio. Just pure, effortless game development.
When Ludei shut down the service, it felt like losing a good friend. Shipping an HTML5 game now meant wrestling with Capacitor configs, hunting for compatible plugins, and — for iOS — buying a Mac.
I built html2app to bring that feeling back — a tribute to the golden era when building with Phaser and shipping to mobile felt genuinely fun. From May 2022 through 2025 it was completely free, built on Capacitor.
As demand grew, the platform evolved to Flutter and infrastructure costs grew with it. Basic features now start at $3/month to keep builds fast and reliable for everyone.
The Developer Plan ($19/month) isn't an upgrade to the old platform — it's a different experience, with a full plugin ecosystem and advanced capabilities the old service never had. During beta you can lock in Developer for just $57/year — a 70% discount.
If you share those nostalgic feelings about the Phaser + Cocoon.io days, welcome home. Let's make shipping HTML5 games to mobile fun again.
html2app is still in beta, and there's much more to come. I'd love for you to join me on this journey as we work together to make building and publishing HTML5 games (and apps!) pleasant again.
Most HTML-to-app services quietly hold your signing key and app ID hostage. The day you want to leave, you can't — you'd have to publish a brand-new app and abandon every review, rating, and install you earned. html2app is built the opposite way.
You bring your own signing key and choose your own app ID, so your app's identity is yours from the very first build. Outgrow us? Move to a custom Capacitor, Flutter, or native Kotlin/Java setup and keep shipping updates to the exact same Google Play listing. Your app outlives html2app.
Bring your own keystore. We never hold your app's identity, so you can sign and ship builds yourself — with or without us.
You pick the package name. It's the master key to your store listing — today, and ten years from now.
Move to Capacitor, Flutter, or fully native whenever you like and keep updating the same listing. No new app, no lost reviews, no migration tax.
If html2app disappeared tomorrow, your published app keeps running and updating. You rely on us for convenience — never for survival.
You stay because html2app is the easiest way to ship — never because you're trapped.
No vapourware. Here's exactly what's live today, what we're building right now, and what's further out — so you always know where we're investing.
Subscribing gets you the features that are live right now, as they are — stable, working builds today, not promises about tomorrow.
The native plugin ecosystem is growing fast. On the way:
It needs dedicated Apple hardware and signing, so we're treating it as a serious long-term goal — not an empty promise.
Platform stability is always priority #1. Reliable builds and compatibility with the latest Android and Flutter releases come before any new feature.
About "Coming Soon": these features are in active development, aren't included in your current subscription, and don't come with delivery dates. The mobile ecosystem moves fast — if something breaks upstream, we'll do our best to fix it and always be upfront about what's working and what's not.