SkateSpots/public/manifest.webmanifest
shakespeare.diy e29d35f1e4 fix: restore full skate-spots source tree from misplaced src/src/ copy
The entire skate-spots codebase was accidentally copied into src/src/ and
public/public/ instead of src/ and public/ directly. This left the real
src/ directory as blank MKStack template stubs, explaining why the landing
page showed the default template instead of SkateSpots.

Changes made:
- Copied all files from src/src/ up to src/ (App.tsx, AppRouter.tsx, main.tsx,
  all pages, components, hooks, contexts, lib, i18n, test)
- Copied all files from public/public/ up to public/ (images, manifest, etc.)
- Deleted src/src/ and public/public/ nested directories
- Removed HelloWorld.tsx template stub from pages/
- Retained the previously fixed index.css (Tailwind v3 directives)

Full skate-spots feature set is now active:
- All 30+ routes (map, events, spots, coaches, marketplace, wallet, etc.)
- NWCProvider, LanguageProvider, PWAInstallPrompt, AmberCallbackHandler
- Skate community relays (goskatespots.nostr1.com, wotr.relatr.xyz, etc.)
- Outfit Variable font, Amber pre-check in main.tsx
- All hooks (useSkateSpots, useCoaches, useZaps, etc.)
- i18n support (en/es)

Co-authored-by: shakespeare.diy <assistant@shakespeare.diy>
2026-06-15 22:18:28 +07:00

139 lines
3.2 KiB
JSON

{
"name": "SkateSpots - Decentralized Skate Map",
"short_name": "SkateSpots",
"id": "/",
"description": "Discover skate spots, find coaches, join events, and connect with the skateboarding community on Nostr. Free, decentralized, censorship-resistant.",
"start_url": "/",
"scope": "/",
"display": "standalone",
"display_override": ["standalone", "minimal-ui", "browser"],
"background_color": "#000000",
"theme_color": "#ff0040",
"orientation": "portrait-primary",
"lang": "en",
"dir": "ltr",
"categories": ["sports", "social", "lifestyle", "navigation"],
"iarc_rating_id": "",
"prefer_related_applications": false,
"related_applications": [],
"icons": [
{
"src": "/images/icon-1024.png",
"sizes": "1024x1024",
"type": "image/png",
"purpose": "any"
},
{
"src": "/images/icon-maskable-1024.png",
"sizes": "1024x1024",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/images/icon.svg",
"sizes": "any",
"type": "image/svg+xml",
"purpose": "any"
}
],
"screenshots": [
{
"src": "/images/screenshot-mobile.svg",
"sizes": "390x844",
"type": "image/svg+xml",
"form_factor": "narrow",
"label": "SkateSpots mobile view - discover spots on the map"
},
{
"src": "/images/screenshot-desktop.svg",
"sizes": "1920x1080",
"type": "image/svg+xml",
"form_factor": "wide",
"label": "SkateSpots desktop view - full map experience"
}
],
"shortcuts": [
{
"name": "Map",
"short_name": "Map",
"description": "Browse skate spots on the map",
"url": "/map",
"icons": [
{
"src": "/images/icon-1024.png",
"sizes": "1024x1024",
"type": "image/png"
}
]
},
{
"name": "Events",
"short_name": "Events",
"description": "View upcoming skate events",
"url": "/events",
"icons": [
{
"src": "/images/icon-1024.png",
"sizes": "1024x1024",
"type": "image/png"
}
]
},
{
"name": "Coaches",
"short_name": "Coaches",
"description": "Find skateboarding coaches",
"url": "/coaches",
"icons": [
{
"src": "/images/icon-1024.png",
"sizes": "1024x1024",
"type": "image/png"
}
]
},
{
"name": "Wallet",
"short_name": "Wallet",
"description": "Manage your Lightning wallet",
"url": "/wallet",
"icons": [
{
"src": "/images/icon-1024.png",
"sizes": "1024x1024",
"type": "image/png"
}
]
}
],
"protocol_handlers": [
{
"protocol": "web+nostr",
"url": "/%s"
},
{
"protocol": "web+lightning",
"url": "/wallet?invoice=%s"
},
{
"protocol": "web+cashu",
"url": "/wallet?token=%s"
}
],
"share_target": {
"action": "/share",
"method": "GET",
"params": {
"title": "title",
"text": "text",
"url": "url"
}
},
"launch_handler": {
"client_mode": "navigate-existing"
},
"edge_side_panel": {
"preferred_width": 400
},
"handle_links": "preferred"
}