A personal app catalog for your iPhone — inspired by Naval's post about AI coding agents delivering one-shot custom apps straight to your phone.
- Native iOS look — pure black OLED dark mode, SF fonts, iOS-style rounded icons and pill buttons
- Personal app catalog — list your custom-built apps with icons, versions, build numbers, and dates
- One-tap launch — Open buttons link to your PWAs, TestFlight builds, websites, or URL schemes
- Installable PWA — add to iPhone home screen via Safari, launches fullscreen like a native app
- Offline support — service worker caches everything, works without internet
- Pull to refresh — swipe down to reload the app manifest
- Zero dependencies — vanilla JavaScript, no frameworks, no build step
- Simple manifest — add or remove apps by editing a single
apps.jsonfile
Serve the directory with any static file server:
# Python
python3 -m http.server 8000
# Node
npx serve .
# PHP
php -S localhost:8000Then open http://localhost:8000 in your browser.
- Open the URL in Safari
- Tap Share → Add to Home Screen
- AppShelf appears as a standalone app with its own icon
Edit apps.json to add your apps:
{
"name": "AppShelf",
"build": 1,
"apps": [
{
"id": "my-app",
"name": "My App",
"version": "1.0",
"build": 1,
"date": "2026-03-25, 18:00",
"icon": "icons/apps/my-app.png",
"url": "https://my-app.example.com",
"type": "pwa"
}
]
}Push the change — users get the updated list on next refresh.
npm testDesigned for Safari on iPhone (PWA standalone mode). Works in any modern browser with ES modules and service worker support.
Read the story behind this project: Naval Said "Make Your Own App Store" — So I Did
