📄 mdseal

About mdseal

mdseal (mdseal.dev) converts and seals documents, on a sovereign server and under a free licence: Markdown or HTML → PDF, slide deck PDF (16:9) or PowerPoint (PPTX), then signature and protection of the PDF. No data is sent to any external service — everything is rendered here.

This tool was first called docme. The name changed when the seal became what mattered: converting is a commodity, sealing is not. The account below is docme’s, and it remains true — one does not rewrite an origin.

Where mdseal comes from

From two pages. RestoTrax — the restaurant software of the ecosystem — carries a help page and an about page written in Markdown (pages/aide.md, pages/a-propos.md), rendered on screen by @mostajs/markdown-html. On screen, all was well. They then had to be handed to someone — an operator, an accountant, a trainer — and a screen cannot be handed over. That need, and nothing more ambitious, produced this chain.

What was learnt along the way deserves writing down here, because it is the trap one falls into once: documentation that is written and documentation that is generated by the code are not handed over with the same tool.

Generated by the codeWritten in Markdown
What it iswhat the software is: composed modules, API, exportswhat was thought: studies, audits, plans, decisions, articles
Its sourcepackage.json, llms.txt, the file headers — never a handa versioned .md, written
On screen@mostajs/docs-ui@mostajs/markdown-html
To hand overwe regenerate itmdseal, this very page

docs-ui escapes everything it receives: it expects data, not prose. Handing it a written guide would display it character by character, tags and all — that is not a shortcoming, it is its nature. Symmetrically, a list of modules copied out by hand is wrong from the next module onward, and nobody notices. The house rule drew its §9.bis from this, where docme is named the canonical chain for written documentation.

Technology — composition, not reinvention

mdseal is a plain interface on top of the @mostajs/* ecosystem, assembled by composition:

BrickRole
@mostajs/markdown-htmlMarkdown → HTML (zero dependencies)
@mostajs/doc-themes + @mostajs/palettethemes with checked contrast (source: palette.amia.fr)
@mostajs/doc-exportorchestration (the thin core) — and, since 0.2.1, the doc-export command
@mostajs/doc-driver-chromeHTML → PDF (headless Chrome)
@mostajs/doc-driver-pandocMarkdown → PPTX (pandoc)
@mostajs/pdf-sign + @mostajs/pdf-sign-uiPAdES signature and AES-256 permissions (pyhanko engine)
@mostajs/api-keys + @mostajs/subscriptions-planAPI keys, plans, quotas and invoicing
@mostajs/i18nFrench, English, Arabic — with right-to-left

The core is dependency-free; the heavy engines (browser, pandoc, pyhanko) are interchangeable drivers — we adopt the best tool in the world for a given need, and never reinvent it. The signature is the latest example: mdseal knows neither PKCS#7 nor PAdES, it asks a module that does.

Author & licence

Designed and built by Dr Hamid MADANI <drmdh@msn.com>. Free software under the AGPL-3.0-or-later licence.