Deckup loads one configuration file from the project root. Supported filenames are:
deckup.config.tsdeckup.config.jsdeckup.config.mjsdeckup.config.mtsdeckup.config.cjsdeckup.config.cts
The configuration file must default-export an object. Only one supported config file can exist in a project; Deckup reports an error when it finds more than one.
Use defineConfig() for type checking and editor completion:
import { defineConfig } from "deckup";
export default defineConfig({
port: 4321,
theme: "google-basic",
integrations: {
tailwind: {
optimize: { minify: false },
},
},
astro: {
vite: {
resolve: {
alias: { "@slides": "/absolute/path/to/slides" },
},
},
},
});Options
| Field | Type | Description |
|---|---|---|
port |
number |
Default development server port. CLI --port wins. |
theme |
string |
Fallback built-in, installed, or npm: theme. |
integrations |
{ tailwind?: DeckupTailwindOptions | false } |
Known Deckup built-ins. Tailwind is enabled when omitted. |
astro |
AstroInlineConfig subset |
Additional supported Astro configuration. |
port
Set the default port used by deckup open:
export default defineConfig({
port: 3000,
});The --port CLI option takes precedence over this value.
When neither is set, Deckup uses port 4321.
theme
Set the fallback theme used when a deck does not declare one in its static metadata:
export default defineConfig({
theme: "minimal",
});Deck metadata takes precedence over this value.
When neither is set, Deckup uses default.
See the Theme reference for built-in, installed, and registry themes.
integrations
Deckup provides built-in integrations that are configured separately from Astro integrations. Tailwind CSS v4 is currently the only built-in integration.
integrations.tailwind
Tailwind is enabled when integrations.tailwind is omitted, so Astro and MDX decks can use utility classes without installing packages or importing CSS.
Pass an @tailwindcss/vite options object to configure its Vite plugin:
export default defineConfig({
integrations: {
tailwind: {
optimize: { minify: false },
},
},
});Set it to false to remove Deckup’s built-in Tailwind plugins and generated stylesheet:
export default defineConfig({
integrations: {
tailwind: false,
},
});Built-in plugins run before plugins from astro.vite.plugins.
Manual Tailwind plugins in that list are not de-duplicated.
This option applies to the Deckup CLI; projects that host @deckup/astro configure styling in their own Astro setup.
astro
Use astro to pass supported Astro inline configuration to Deckup.
For example, install and register an Astro integration:
import react from "@astrojs/react";
import { defineConfig } from "deckup";
export default defineConfig({
astro: {
integrations: [react()],
},
});Deckup owns the Astro options required to provide the slide runtime and consistent development and build behavior.
The following fields are therefore not available under astro:
rootsrcDirconfigFileoutputserveroutDirlogLeveldevToolbar
Nested astro.vite.root is ignored as well.
Use the Deckup CLI options for server and output settings.
See the React and Vue guides for complete integration examples.