App configuration is defined in src/server/config.ts. It includes app metadata and an optional settings schema that allows users to configure the app through the admin UI.
config.ts
Set up the task tracker’s metadata and a configurable default view:
import type { AppConfig } from '@synthetiq/app-framework/server';
export const APP_CONFIG = {
app: {
displayName: 'Task Tracker',
description: 'Track tasks and priorities across your team',
category: 'Productivity',
},
settings: [
{
key: 'defaultView',
description: 'Default task list view',
type: 'select',
required: false,
defaultValue: 'list',
options: JSON.stringify([
{ value: 'list', label: 'List' },
{ value: 'board', label: 'Board' },
]),
},
],
} as const satisfies AppConfig;
Accessing settings
Settings are available server-side in tRPC procedures via ctx.appSettings:
getTaskView: scopedProcedure([])
.meta({ description: 'Get the configured default task view' })
.query(async ({ ctx }) => {
return { defaultView: ctx.appSettings.defaultView || 'list' };
}),
Settings are only available on the server. To expose configuration to the frontend, create a tRPC procedure that returns the needed values.
For setting types and the full configuration schema, see the App config reference.