1import type { MetadataRoute } from 'next';2import { DESCRIPTION, SITE_NAME } from '@/lib/site';34/**5 * Web app manifest (PWA basics). Colours mirror the light theme tokens in globals.css (`--canvas`), matching the6 * `themeColor` declared in the root layout. PNG icons are rendered on demand by `/icon-192.png` and `/icon-512.png`.7 */8export default function manifest(): MetadataRoute.Manifest {9 return {10 name: SITE_NAME,11 short_name: SITE_NAME,12 description: DESCRIPTION,13 id: '/',14 start_url: '/',15 scope: '/',16 display: 'standalone',17 orientation: 'any',18 background_color: '#f6f6f3',19 theme_color: '#f6f6f3',20 lang: 'en',21 dir: 'ltr',22 categories: ['reference', 'productivity'],23 icons: [24 { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any' },25 { src: '/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' },26 { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' },27 { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' },28 { src: '/apple-icon', sizes: '180x180', type: 'image/png', purpose: 'any' },29 ],30 shortcuts: [31 { name: 'Models', short_name: 'Models', description: 'Every AI model with parameters, context, openness and prices', url: '/models', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },32 { name: 'Changes', short_name: 'Changes', description: 'What changed in AI today', url: '/changes', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },33 { name: 'Compare', short_name: 'Compare', description: 'Compare 2–6 entities side by side', url: '/compare', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },34 { name: 'Prices', short_name: 'Prices', description: 'AI Price Index — USD per 1M tokens', url: '/prices', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },35 ],36 };37}38