Funlet
A quick mobile game built to load fast and keep working offline. It runs as a PWA in the browser and comes with store packaging files.
What does it do?
Funlet is designed for one-handed, short-session play on a phone. It's written
entirely with web technologies; thanks to manifest.json and a
service worker it can be installed to the home screen and still run
offline.
To make store submission painless, the game ships with the parts that usually take the most time: icons in 25 sizes, store screenshots, copy-paste store texts and the privacy policy both stores require.
Highlights
- Plays offline — after the first load the service worker caches everything.
- Lightweight — no libraries, no framework, single-file game logic.
- Store kit ready — icons, screenshots and texts sit in the repo.
- PWA + packaging — PWABuilder can generate an Android AAB and an Xcode project for iOS.
Technical notes
The manifest.json declares store screenshots and icon sets,
sw.js caches static files for offline play, and the privacy
policy lives in its own HTML file because the stores want a URL.
funlet/
├─ index.html → the game itself (PWA)
├─ manifest.json → app name, icons, screenshot definitions
├─ sw.js → offline support
├─ icons/ → 25 sizes (Android + iOS)
├─ screenshots/ → store listing images
├─ store-listing.md → store copy (Turkish)
└─ privacy-policy.html → privacy policy
A real signed.aabor.ipacan't be produced in this environment — that needs the Android SDK, Xcode and an Apple account. The remaining step is feeding the live URL to PWABuilder. Android takes about 15 minutes; iOS needs a Mac and a paid Apple Developer membership.
Screenshots
What I learned
Shipping a web game to the stores is as much about packaging as it is about code — icons, texts and the privacy policy all get reviewed. I wrote up the whole process in this blog post.