seemore

Features

Every page arrives with its full text in it. There is no placeholder and no loading skeleton. Pages start to load as soon as you point at a link. Add, rename, retitle, reorder or delete a file, and the running preview updates at once, with no restart and no full reload.

Search works with no server to run and nothing to pay for. If your site grows past what a no-server index can carry, the build tells you and names the alternatives.

Edit from the page

While the preview is running, the page is also an editor. Double-click any paragraph, heading, list item, quote or table cell, and it opens in place with that block's Markdown source: **bold** stays **bold**, links stay links. Fix the text and press Save: seemore writes the change straight back to the file, and the page hot-reloads exactly as it does for an edit made in your editor. seemore writes nothing until you say so. Clicking away closes the editor without saving. Once you have typed something, the editor stays open rather than discarding your text.

It works the same in the code editor extension, whose panel runs the same dev server.

Inline editing is for local previews only. seemore build output is static, so nothing is emitted there.

PDF viewer

Reference a PDF with image syntax, and it opens inline in the browser's own viewer, with a download link underneath. A sibling file or a remote URL both work:

![sample document](https://pdfobject.com/pdf/sample.pdf)

Download sample document

Diagrams

A ```mermaid or ```d2 code fence renders live in the browser, no build step or external service.

Mermaid

graph TD;
  A[Markdown] --> B[seemore];
  B --> C[Static site];

D2

Markdown -> seemore -> Static site

Image zoom

Click any content image to zoom in, on by default. Turn it off with 'content.image.zoom': false.

placeholder

Page actions

An Actions button above every page holds actions for the page you are reading:

  • Copy as Markdown: puts the page's own Markdown on your clipboard, ready to paste into an AI chat, an issue or another document. It is the source, not a transcription of the rendered page: a GitHub alert is still > [!NOTE], a diagram is still a ```mermaid fence, and an .mdx page's components come across as the JSX the author wrote.
  • Export as HTML: writes the page alone into one self-contained HTML file, with styles inlined, images embedded, and diagrams kept. It opens offline, from a double-click, ready to share. The same export runs from the CLI as npx seemore export <file>, which writes the file next to the Markdown (or into --out <dir>). Printing that file, or the live page, strips away all chrome and never splits content across a page break, so the browser's own "Save as PDF" turns it into a PDF.

Actions are enabled per site, in the order they should appear, on the pageActions key in seemore.config.ts.

Exported files keep the theme toggle, code copy buttons, click-to-zoom and an "On this page" list. They leave out the sidebar, navbar and search. Like the site, an exported file opens in the reader's own OS theme, not the one used at export time, and remembers the reader's toggle choice from then on. Remote images (for example, GitHub URLs) stay remote. Everything local gets embedded.

Password protection

Put the whole site behind one shared password, with no server and no accounts. Set auth: true in seemore.config.ts, build with a SEEMORE_PASSWORD, and the output locks itself behind a password screen. See password protection for the full setup, including how long a visitor stays unlocked.

Feature flags

A set of switches for readers who want fine control, set on the features key in seemore.config.ts. Name a flag and set it true to turn it on, false to turn it off.

// seemore.config.ts
export default {
  features: {
    'navigation.path': true,               // off by default → this turns it on
    'navigation.instant.prefetch': false,  // on by default → this turns it off
  },
};

Every flag you do not name keeps its default value. You only ever name the ones you are changing.

FlagDefaultEffect
navigation.instant.prefetchonLoad the target page on hover
navigation.instant.previewoffHover popover showing the target page
navigation.footeronPrevious and next page links. The footer key controls the site footer.
navigation.toponBack-to-top button
navigation.pathoffBreadcrumbs
navigation.sectionsoffTop-level entries as sidebar groups
navigation.pruneoffRender only the visible subtree
toc.followonKeep the active heading visible
toc.integrateoffMerge the table of contents into the sidebar
content.code.copyonCopy button on code blocks
content.action.editon with editLinkEdit-this-page link
content.editon (dev only)Double-click a block to edit its Markdown in place
content.image.zoomonClick-to-zoom on content images
search.suggestonInline query completion
search.highlightonHighlight the query on the page you land on
social.cardsoffPer-page OG images (needs takumi-js. Cannot use with auth)

Incompatible combinations show a config error with the conflicting options and a fix. social.cards cannot be used with password protection, because social cards are public images.

Edit this page

© 2026 seemore. MIT Licensed.