A simple, iOS-optimized Progressive Web App that displays a collection of applications with their icons and names. Users can tap on any app to navigate to its URL.
- iOS-native design with system fonts and native appearance
- Progressive Web App with offline support and installability
- Tab navigation between Apps and About sections
- Touch-friendly interface optimized for mobile devices
- Accessibility support including keyboard navigation and screen readers
- Dark mode support that respects system preferences
- Responsive design that works on iPhone, iPad, and desktop
- Service worker caching for fast loading and offline functionality
/
├── index.html # Main entry point
├── manifest.json # PWA manifest
├── sw.js # Service worker
├── icon.jpeg # App icon (180x180px)
├── css/
│ └── styles.css # Main stylesheet
├── js/
│ ├── app.js # Main application logic
│ └── data.js # App data configuration
└── icons/ # App icons directory
├── storystack.jpg
├── easydice.png
└── ...
- Clone or download the repository
- Add your app icons to the
icons/
directory (64x64px recommended) - Update app data in
js/data.js
with your applications:
const appsData = [
{
name: "Your App Name",
icon: "./icons/your-app-icon.jpg",
url: "https://your-app-url.com",
description: "Brief description of your app"
}
// Add more apps...
];
-
Serve the files using a local web server:
- Python:
python -m http.server 8000
- Node.js:
npx serve .
- PHP:
php -S localhost:8000
- Python:
-
Open in browser and navigate to
http://localhost:8000
- Open the app in Safari
- Tap the Share button
- Select "Add to Home Screen"
- Tap "Add" to install
- Open the app in Chrome
- Tap the menu (three dots)
- Select "Add to Home Screen"
- Tap "Add" to install
Edit js/data.js
and add new entries to the appsData
array:
{
name: "App Name",
icon: "./icons/app-icon.jpg",
url: "https://app-url.com",
description: "App description (optional)"
}
Modify css/styles.css
to customize the appearance. The CSS uses iOS design system variables for consistent theming.
Replace icon.jpeg
with your own 180x180px icon for the PWA.
- Vanilla JavaScript - No frameworks or dependencies
- CSS Grid & Flexbox - Modern responsive layout
- Service Worker - Caches static assets and app icons
- iOS Safe Area - Proper support for devices with notches
- Touch Events - Optimized for mobile interaction
- Error Handling - Graceful fallbacks for missing icons and network issues
- iOS Safari 12+
- Chrome 70+
- Firefox 65+
- Edge 79+
- First Load: ~50KB total (HTML, CSS, JS)
- Subsequent Loads: Instant loading from cache
- Icons: Lazy loaded with fallback SVG placeholders
- Offline: Full functionality when cached
To modify the app:
- Edit the relevant files
- Test in multiple browsers/devices
- Update the cache version in
sw.js
when making changes - Test PWA functionality using browser dev tools
This project is open source and available under the MIT License.