{ "name": "SnowWatcher - Ski Resort Conditions", "short_name": "SnowWatcher", "description": "Real-time ski resort conditions, weather, and snow reports for winter sports enthusiasts", "start_url": "/", "display": "standalone", "background_color": "#667eea", "theme_color": "#667eea", "orientation": "portrait-primary", "scope": "/", "lang": "en", "categories": ["sports", "weather", "travel", "lifestyle"], "icons": [ { "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkyIiBoZWlnaHQ9IjE5MiIgdmlld0JveD0iMCAwIDE5MiAxOTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxOTIiIGhlaWdodD0iMTkyIiByeD0iMjQiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8xXzEpIi8+CjxwYXRoIGQ9Ik05NiA0OEM3OC4zIDQ4IDY0IDYyLjMgNjQgODBWMTQ0QzY0IDE2MS43IDc4LjMgMTc2IDk2IDE3NkMxMTMuNyAxNzYgMTI4IDE2MS43IDEyOCAxNDRWODBDMTI4IDYyLjMgMTEzLjcgNDggOTYgNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNODAgODBIMTEyVjE0NEg4MFY4MFoiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTg4IDg4SDEwNFYxMzZIODhWODhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNODggOTZIMTA0VjEwNEg4OFY5NloiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTg4IDExMkgxMDRWMTIwSDg4VjExMloiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTg4IDEyOEgxMDRWMTM2SDg4VjEyOFoiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTY0IDY0SDgwVjgwSDY0VjY0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTExMiA2NEgxMjhWODBIMTEyVjY0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTcyIDQ4SDg4VjY0SDcyVjQ4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTEwNCA0OEgxMjBWNTZIMTA0VjQ4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTY0IDgwSDcyVjE0NEg2NFY4MFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0xMjAgODBIMTI4VjE0NEgxMjBWODBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNTYgNjRINjRWNzJINTZWNjRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTI4IDY0SDEzNlY3MkgxMjhWNjRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDggNTZINTZWNjRINDhWNTZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTM2IDU2SDE0NFY2NEgxMzZWNTZaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDAgNDhINDhWNTZINDBWNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTQ0IDQ4SDE1MlY1NkgxNDRWNDhaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzFfMSIgeDE9IjAiIHkxPSIwIiB4Mj0iMTkyIiB5Mj0iMTkyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM2NjdlZWEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzY0YmEyIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPHN2Zz4K", "sizes": "192x192", "type": "image/svg+xml", "purpose": "any maskable" }, { "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiByeD0iNjQiIGZpbGw9InVybCgjZ3JhZGllbnQwX2xpbmVhcl8xXzEpIi8+CjxwYXRoIGQ9Ik0yNTYgMTI4QzE5Mi4zIDEyOCAxNDQgMTc2LjMgMTQ0IDI0MFYzODRDMjE0IDE0MS43IDI5OS43IDQ2OSAyNTYgNDY5QzMxMi4zIDQ2OSAzNjggNDE0LjcgMzY4IDM4NFYyNDBDMzY4IDE3Ni4zIDMxOS43IDEyOCAyNTYgMTI4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTIxMyAzMjBIMjk5VjM4NEgyMTNWMzIwWiIgZmlsbD0iIzY2N2VlYSIvPgo8cGF0aCBkPSJNMjM0IDMzMEgyNzhWMzY0SDIzNFYzMzBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjM0IDM0MEgyNzhWMzQ4SDIzNFYzNDBaIiBmaWxsPSIjNjY3ZWVhIi8+CjxwYXRoIGQ9Ik0yMzQgMzU2SDI3OFYzNjRIMjM0VjM1NloiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTIzNCAzNzJIMjc4VjM4MEgyMzRWMzcyWiIgZmlsbD0iIzY2N2VlYSIvPgo8cGF0aCBkPSJNMTQ0IDI0MEgyMTNWMzIwSDE0NFYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjk5IDI0MEgzNjhWMzIwSDI5OVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTkyIDIxM0gyMTNWMjQwSDE5MlYyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjk5IDIxM0gzMjBWMjQwSDI5OVYyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTQ0IDI0MEgxOTJWMzIwSDE0NFYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzIwIDI0MEgzNjhWMzIwSDMyMFYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTQ5IDI0MEgxNTdWMjQ4SDE0OVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzU1IDI0MEgzNjNWMjQ4SDM1NVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTI4IDIxM0gxNDlWMjQwSDEyOFYyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzYzIDIxM0gzODRWMjQwSDM2M1YyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTA3IDIxM0gxMTVWMjQwSDEwN1YyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzk3IDIxM0g0MDVWMjQwSDM5N1YyMTNaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTI4IDI0MEgxMzZWMzIwSDEyOFYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzc2IDI0MEgzODRWMzIwSDM3NlYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTE1IDI0MEgxMjNWMjQ4SDExNVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzg5IDI0MEgzOTdWMjQ4SDM4OVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMTE1IDI0MEgxMjNWMjQ4SDExNVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzg5IDI0MEgzOTdWMjQ4SDM4OVYyNDBaIiBmaWxsPSJ3aGl0ZSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzFfMSIgeDE9IjAiIHkxPSIwIiB4Mj0iNTEyIiB5Mj0iNTEyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiM2NjdlZWEiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzY0YmEyIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPHN2Zz4K", "sizes": "512x512", "type": "image/svg+xml", "purpose": "any maskable" } ], "screenshots": [ { "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI3MjAiIHZpZXdCb3g9IjAgMCAxMjgwIDcyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjEyODAiIGhlaWdodD0iNzIwIiBmaWxsPSJ1cmwoI2dyYWRpZW50MF9saW5lYXJfMV8xKSIvPgo8dGV4dCB4PSI2NDAiIHk9IjM2MCIgZmlsbD0id2hpdGUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSI0OCIgZm9udC13ZWlnaHQ9ImJvbGQiIHRleHQtYW5jaG9yPSJtaWRkbGUiPlNub3dXYXRjaGVyPC90ZXh0Pgo8dGV4dCB4PSI2NDAiIHk9IjQyMCIgZmlsbD0id2hpdGUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIyNCIgdGV4dC1hbmNob3I9Im1pZGRsZSI+U2tpIFJlc29ydCBDb25kaXRpb25zPC90ZXh0Pgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJncmFkaWVudDBfbGluZWFyXzFfMSIgeDE9IjAiIHkxPSIwIiB4Mj0iMTI4MCIgeTI9IjcyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjNjY3ZWVhIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc2NGJhMiIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=", "sizes": "1280x720", "type": "image/svg+xml", "form_factor": "wide", "label": "SnowWatcher Dashboard" } ], "shortcuts": [ { "name": "View Conditions", "short_name": "Conditions", "description": "Check current ski resort conditions", "url": "/#conditions", "icons": [ { "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTIiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTQ4IDI0QzM2LjMgMjQgMjQgMzYuMyAyNCA0OFY2NEMyNCA3NS43IDM2LjMgODggNDggODhDNjEuNyA4OCA3MiA3NS43IDcyIDY0VjQ4QzcyIDM2LjMgNjEuNyAyNCA0OCAyNFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0zNiA0MEg2MFY2NEgzNlY0MFoiIGZpbGw9IiM2NjdlZWEiLz4KPC9zdmc+Cg==", "sizes": "96x96" } ] }, { "name": "Suggest Resort", "short_name": "Suggest", "description": "Suggest a new ski resort", "url": "/#suggest", "icons": [ { "src": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iOTYiIHZpZXdCb3g9IjAgMCA5NiA5NiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9Ijk2IiBoZWlnaHQ9Ijk2IiByeD0iMTIiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTQ4IDI0QzM2LjMgMjQgMjQgMzYuMyAyNCA0OFY2NEMyNCA3NS43IDM2LjMgODggNDggODhDNjEuNyA4OCA3MiA3NS43IDcyIDY0VjQ4QzcyIDM2LjMgNjEuNyAyNCA0OCAyNFoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik00NCA0MEg1MlY0OEg0NFY0MFoiIGZpbGw9IiM2NjdlZWEiLz4KPHBhdGggZD0iTTQ4IDQ0VjUyIiBzdHJva2U9IiM2NjdlZWEiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPgo=", "sizes": "96x96" } ] } ], "related_applications": [], "prefer_related_applications": false }