Skip to main content
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.