Skip to content
← Public packages

@kody/mailroom

Offline-first PWA for your Kody mailbox: sent and received threads, copy-prompt for agents, no send.

src/ui/manifest.ts

32 lines · 970 B · TypeScript
export function mailroomManifest(appBasePath: string) {
	const root = appBasePath.endsWith('/') ? appBasePath : `${appBasePath}/`
	const icon = (file: string, sizes: string, purpose: 'any' | 'maskable') => ({
		src: `${root}${file}`,
		sizes,
		type: 'image/png' as const,
		purpose,
	})
	return {
		name: 'Mailroom',
		short_name: 'Mailroom',
		description: 'Your Kody mailbox: received and sent threads, offline, no send.',
		lang: 'en',
		dir: 'ltr',
		start_url: root,
		scope: root,
		id: '/packages/mailroom',
		display: 'standalone',
		display_override: ['standalone', 'minimal-ui'],
		prefer_related_applications: false,
		orientation: 'any',
		background_color: '#eef1f0',
		theme_color: '#12813f',
		categories: ['productivity', 'utilities'],
		icons: [
			icon('pwa-192.png', '192x192', 'any'),
			icon('pwa-512.png', '512x512', 'any'),
			icon('pwa-192-maskable.png', '192x192', 'maskable'),
			icon('pwa-512-maskable.png', '512x512', 'maskable'),
		],
	}
}