HTML 77.2%
TypeScript 10.5%
Python 9.6%
JavaScript 2.5%
1import type { MetadataRoute } from 'next';2import { DESCRIPTION, SITE_NAME, TAGLINE, THEME_DARK, THEME_LIGHT } from '@/lib/site';34/**5 * Web app manifest (PWA basics). PNG icons are rendered on demand by `/icon-192.png` and `/icon-512.png` from the atlas-plate mark.6 */7export default function manifest(): MetadataRoute.Manifest {8 return {9 name: `${SITE_NAME} — ${TAGLINE}`,10 short_name: SITE_NAME,11 description: DESCRIPTION,12 id: '/',13 start_url: '/',14 scope: '/',15 display: 'standalone',16 orientation: 'any',17 background_color: THEME_DARK,18 theme_color: THEME_LIGHT,19 lang: 'en',20 dir: 'ltr',21 categories: ['reference', 'productivity', 'news'],22 icons: [23 { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any' },24 { src: '/icon-192.png', sizes: '192x192', type: 'image/png', purpose: 'any' },25 { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'any' },26 { src: '/icon-512.png', sizes: '512x512', type: 'image/png', purpose: 'maskable' },27 { src: '/apple-icon', sizes: '180x180', type: 'image/png', purpose: 'any' },28 ],29 shortcuts: [30 { 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' }] },31 { name: 'Changes', short_name: 'Changes', description: 'What changed in AI today', url: '/changes', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },32 { name: 'Frontier', short_name: 'Frontier', description: 'Who leads, on what, since when', url: '/frontier', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },33 { 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' }] },34 { name: 'Watchlist', short_name: 'Watchlist', description: 'Entities you follow, with their latest events', url: '/watchlist', icons: [{ src: '/icon-192.png', sizes: '192x192', type: 'image/png' }] },35 ],36 };37}38