Files
warmbly/docs
Skylinerffm97andClaude Opus 5.5 c433a483ec fix(unibox): make Mark as unread stick, and let it reach a sent-only conversation
useMarkSeen invalidated every ["unibox"] query after an unread, including the body queries ["unibox", "email", id]. A body GET marks the message read server side (GetByID), so the still-mounted reader undid the unread. Bodies never change once synced, so the unread path now skips them.

MarkSeenByThreads skipped every sent copy, so a conversation with no received message could not be marked unread at all. It now falls back to the newest sent copy when nothing was received. Received mail still wins, drafts never turn unread, and explicit ids and folder sweeps keep refusing sent and draft copies.

Herkunft: [Claude]

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 15:31:48 +02:00
..
2026-01-30 18:07:06 +01:00
2026-01-30 18:07:06 +01:00
2026-01-30 18:07:06 +01:00
2026-01-30 18:07:06 +01:00
2026-01-30 18:07:06 +01:00

Warmbly docs

The documentation site served at docs.warmbly.com, built with Next.js and Fumadocs. Content lives in content/docs/ as MDX, split into three sidebar sections:

  • guides/: how every part of the product works
  • learn/: cold email and deliverability fundamentals
  • api/: API reference (authentication, permissions, endpoints, error codes)

Development

pnpm install
pnpm dev          # dev server on :3000
pnpm types:check  # mdx + route types + tsc
pnpm lint         # eslint

Static export

pnpm build writes the entire site to out/ as a fully static export, servable from any static host or CDN. Search runs client-side from a prebuilt index (/api/search), OG images are generated at build time, and every page has a raw-Markdown mirror under /llms.mdx/docs/ plus llms.txt / llms-full.txt indexes.

Serving notes: the export uses trailing-slash URLs (guides/mailboxes/index.html), and the custom 404 page is emitted as 404.html. Configure your host to serve it for unknown paths.

Conventions

  • Frontmatter title is the page H1; do not repeat it as a # heading in the body. Set a lucide icon per page via the icon field.
  • A folder becomes a sidebar tab when its meta.json sets "root": true.
  • Avoid em dashes in prose; use a period, comma, colon, or parentheses.