full code how to create downloadable app step by step for beginners
faulink-app/ ← Root folder ya website/app
│
├── index.php ← Homepage ya website
├── style.css ← CSS yako
├── app.js ← JavaScript yako
├── manifest.json ← App info
├── service-worker.js ← Offline support
│
├── icons/ ← Folder ya icons
│ ├── icon-192.png
│ └── icon-512.png
│
└── other-pages/ ← Optional: pages kama about.php, contact.php
├── about.php
└── contact.php
1. index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Faulink</title>
<!-- CSS -->
<link rel="stylesheet" href="/style.css">
<!-- Manifest -->
<link rel="manifest" href="/manifest.json">
</head>
<body>
<h1>Karibu Faulink.com App!</h1>
<p>Hii ni PWA yako tayari kufanya download.</p>
<!-- JavaScript -->
<script src="/app.js"></script>
<!-- Register Service Worker -->
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(() => console.log('Service Worker Registered'))
.catch(err => console.log('Service Worker Failed', err));
}
</script>
</body>
</html>
2. style.css
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 50px;
}
h1 {
color: #0d6efd;
}
p {
font-size: 18px;
}
3. app.js
console.log("Faulink PWA is running!");
4. manifest.json
{
"name": "Faulink",
"short_name": "Faulink",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#0d6efd",
"icons": [
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
5. service-worker.js
self.addEventListener('install', e => {
e.waitUntil(
caches.open('faulink-cache').then(cache => cache.addAll([
'/',
'/index.php',
'/style.css',
'/app.js'
]))
);
});
self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request).then(response => response || fetch(e.request))
);
});
6. icons folder
Folder: icons/
Files inside:
icon-192.png → small app icon
icon-512.png → large app icon
Notes:
Use any PNG image for icons.
Icons must exist else PWA won’t install.
7. Optional pages folder
other-pages/
about.php
contact.php
Example about.php:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>About Faulink</title>
<link rel="stylesheet" href="/style.css">
<link rel="manifest" href="/manifest.json">
</head>
<body>
<h1>About Faulink</h1>
<p>Hii ni page ya About.</p>
</body>
</html>
✅ How to Test Locally
Open folder ya faulink-app kwenye browser (Chrome recommended).
Press F12 → Lighthouse → Run Progressive Web App audit.
Check kama:
“Add to Home Screen” inapatikana
Offline mode inafanya kazi
Loading speed ni fast
8. Next Steps (Optional: Hybrid App / Android/iOS)
Follow the Capacitor steps nilizokupa kwenye guide ya awali.
Copy faulink-app folder kama your web source.
Then build Android APK au iOS app.
💡 Tips for Beginners:
Save manifest.json, service-worker.js, na icons kwenye root folder.
Save style.css na app.js kwenye root folder (au subfolder kama unataka).
Link them correctly kwenye HTML / PHP pages.
Test offline na Chrome DevTools.