Reading that fits you
Choose a text size, readable font, relaxed spacing, bionic emphasis, and a page width that is comfortable on your screen.
- Text size: Default, Large, Larger
- Page width: Relative or fixed
- Readable font and relaxed spacing
M-Press gives you rich components, private search, reader accessibility controls, versioned releases, and safe AI-assisted translation in one fast Go binary. No Node.js. No MDX. No framework. Even this page is Markdown!
Documentation should not begin with a package manager, a framework upgrade, and a lockfile conflict. M-Press keeps the authoring model deliberately small: one Go binary, one YAML file, and ordinary Markdown.
# Hello world
This site was built from Markdown.
site:
title: My Project
description: My first M-Press site.
build:
contentDir: docs
outputDir: site
Readers expect tabs, steps, terminals, diagrams, code annotations, file trees, and responsive navigation. Authors should not need MDX or a JavaScript package for each one. Write a clear keyword such as @terminal, @steps, or @note. M-Press turns it into an accessible, interactive component.
$ mpress build
Built 60 pages in 47 ms
@terminal{title="Build the documentation" language=bash frame=macos}
$ mpress build
Built 60 pages in 47 ms
@endKeep the source readable in every editor.
Generate static HTML with one command.
@steps
### Write Markdown
Keep the source readable in every editor.
### Build the site
Generate static HTML with one command.
@end@note{type=tip title="Included by default"}
The component, its theme, and its browser behaviour ship with M-Press.
@end@filetree
docs/
index.md Landing page
guide.md Product guide
mpress.yaml Site configuration
@endCreate a complete site with one binary.
See every component included with M-Press.
@cards{cols=2}
[Start a project](/tutorials/first-site/)
Create a complete site with one binary.
---
[Explore components](/components/)
See every component included with M-Press.
@end
@linkcard{title="Read the authoring guide" href="/authoring/" description="Learn the small set of Markdown conventions." icon="book-open"}
@end@container{display=grid|columns=2|gap=.75rem}
@tip[Static output]
The complete layout is generated as HTML.
@end
@info[Responsive]
Columns collapse cleanly on smaller screens.
@end
@endfunc main() { mpress.Build()}1Start with a regular Go entry point.
2Build the complete static site.
@explained
```go
func main() { // (1)
mpress.Build() // (2)
}
```
(1) Start with a regular Go entry point.
(2) Build the complete static site.
@end@qr{url="https://m-press.me" size="150" label="Open the M-Press website"}
@end| Installation | Published | Today |
| Configuration | Published | Yesterday |
| First project | In review | 2 days ago |
| Deployment | Published | 3 days ago |
| Accessibility | Draft | 5 days ago |
| Components | Published | 1 week ago |
@table{header search filter sort paginate column-separators page-size=4}
| Page | Status | Updated |
| Installation | Published | Today |
| Configuration | Published | Yesterday |
| First project | In review | 2 days ago |
| Deployment | Published | 3 days ago |
| Accessibility | Draft | 5 days ago |
| Components | Published | 1 week ago |
@endOne presentation cannot suit every reader. The accessibility menu is enabled by default and stores each visitor’s preferences only in their browser. Site owners do not receive health or preference data.
Slow builds break concentration. M-Press watches your content, rebuilds automatically, and refreshes the browser. The same binary also checks links, audits quality, edits configuration, exports production files, and prepares deployment.
60 pages · 82 output files · 47 to 66 ms
One binary, complete tooling
Development server, configuration editor, checks, Lighthouse, ZIP export, deployment helpers, migration, translation, and version capture are ready from the same command.
Translations become risky when code fences, component syntax, and links are treated as ordinary prose. Versions become confusing when old pages quietly change. M-Press models both concerns directly.
The development site exposes the work that is usually hidden across scripts and services. Edit every supported setting with a structured form, inspect the generated file tree, run checks, review build performance, start a Lighthouse audit, export a ZIP, and prepare deployment without leaving the documentation.
The importer brings across pages, supported components, navigation, languages, frontmatter, public assets, and configuration. It writes a report for every pattern that needs a human decision.
Create a working M-Press project. Accessibility, versions, translations, search, checks, components, and production optimisation are ready from the first build.