import type { MetadataRoute } from 'next'; import { DESCRIPTION, SITE_NAME, TAGLINE, THEME_DARK, THEME_LIGHT } from '@/lib/site'; export default function manifest(): MetadataRoute.Manifest { return { name: `${SITE_NAME} — ${TAGLINE}`, short_name: SITE_NAME, description: DESCRIPTION, id: '/', start_url: '/', scope: '/', display: 'standalone', orientation: 'any', background_color: THEME_DARK, theme_color: THEME_LIGHT, lang: 'en', dir: 'ltr', categories: ['business', 'reference', 'news'], // PNGs generated by scripts/build-icons.mjs from the mark geometry (`pnpm icons`). icons: [ { src: '/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' }, { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' }, { src: '/icon-512-maskable.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' }, { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any' }, ], shortcuts: [ { name: 'Live feed', short_name: 'Live', description: 'Structured corporate events as they are detected', url: '/live' }, { name: 'Companies', short_name: 'Companies', description: 'Monitored companies directory', url: '/companies' }, { name: 'Rankings', short_name: 'Rankings', description: 'Most active, fastest hiring, most AI-active…', url: '/rankings' }, { name: 'Watchlist', short_name: 'Watchlist', description: 'Companies you follow', url: '/watchlist' }, ], }; }