Configuration
Configuration is optional. A folder with no config file builds correctly in the browser, in your code editor, and when built for publishing. To change settings, create seemore.config.ts next to your content:
// seemore.config.ts
export default {
title: 'My Docs',
description: 'Everything about the thing.',
favicon: './favicon.svg',
base: '/my-repo/',
theme: 'ocean',
css: './custom.css',
features: { 'navigation.path': true, 'navigation.instant.preview': true },
nav: [{ text: 'GitHub', link: 'https://github.com/you/repo' }],
footer: { text: '© 2026' },
editLink: { base: 'https://github.com/you/repo/edit/main/docs' },
search: 'static', // or { provider: 'orama-cloud', endpoint, apiKey } / { provider: 'algolia', appId, apiKey, indexName }
pageActions: ['copy-markdown', 'export-html'],
exclude: ['drafts/**'],
include: ['.notes'], // dot folders, build/, dist/ and similar are skipped unless listed here
auth: true,
};theme picks one of the twelve built-in colour presets. See the Themes page for screenshots of each. For anything else, put your own CSS in css. seemore appends it last, so it wins. See the features page for the full list of feature flags.
Which files are included
Every .md and .mdx file under the content folder becomes a page, except in folders that are almost never documentation: dot folders such as .github, node_modules, dist, build, out, vendor, target, venv, deps, Pods and bower_components.
exclude skips more, using glob patterns relative to the content folder. include brings back something those defaults skip, as a folder name or a glob. exclude still wins over include:
exclude: ['drafts/**'],
include: ['.notes', 'build/reports/**'],This only applies inside the content folder. Running npx seemore .github/docs works without any config.
Search
The default search: 'static' needs no setup, no server and no account. seemore builds the index from your Markdown and queries it in the browser, in a Web Worker. search.suggest completes your query inline. search.highlight carries the query onto the page you land on (?h=…), so search-result links are shareable.
Hosted indexes are a drop-in swap whenever you want one: Orama Cloud (@orama/core) or Algolia (algoliasearch). Each needs only its own SDK installed:
search: { provider: 'algolia', appId: '…', apiKey: '…', indexName: '…' },Hosted search cannot be combined with auth: the provider would receive the page text in plain text.
Page actions
pageActions decides what the Actions button above every page holds, in order. The default is
both actions. An empty array removes the button:
pageActions: ['copy-markdown', 'export-html'], // the defaultThe features page explains what each action does, and everything an exported file keeps.
Site footer
footer adds a footer below every page. text is one line of text. links is a list of links
after the text. Both are optional. If you do not set footer, the site has no footer:
footer: {
text: '© 2026 Acme',
links: [{ text: 'GitHub', link: 'https://github.com/you/repo' }],
},Password protection
auth protects the whole built site with one password. Set the password in the
SEEMORE_PASSWORD environment variable when you build. Do not put it in this file.
auth: true, // remember for 1 day
auth: { remember: '7d' }, // '12h' or '7d'
auth: { id: 'acme-handbook', remember: '7d' }, // keep access after changing the site titleSetup is on the publishing page.